Mercurial > people > andrew > aarch32 > hotspot
changeset 9028:5173c028f74c
8169576: aarch32: JDI works incorrectly when handling MethodExitEvent
Reviewed-by: enevill
author | snazarki |
---|---|
date | Mon, 14 Nov 2016 12:46:43 +0300 |
parents | a9b89cd22711 |
children | ad0ce4e6fc1b |
files | src/cpu/aarch32/vm/frame_aarch32.cpp |
diffstat | 1 files changed, 3 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/aarch32/vm/frame_aarch32.cpp Wed Nov 09 12:38:46 2016 +0300 +++ b/src/cpu/aarch32/vm/frame_aarch32.cpp Mon Nov 14 12:46:43 2016 +0300 @@ -653,15 +653,13 @@ intptr_t* tos_addr; if (method->is_native()) { - // TODO : ensure AARCH64 does the same as Intel here i.e. push d0 then r0 - // Prior to calling into the runtime to report the method_exit the possible - // return value is pushed to the native stack. If the result is a jfloat/jdouble - // then ST0 is saved before EAX/EDX. See the note in generate_native_result tos_addr = (intptr_t*)sp(); if (type == T_FLOAT || type == T_DOUBLE) { - // This is times two because we do a push(ltos) after pushing XMM0 + // This is times two because we do a push(ltos) after pushing D0 // and that takes two interpreter stack slots. +#ifdef HARD_FLOAT_CC tos_addr += 2 * Interpreter::stackElementWords; +#endif } } else { tos_addr = (intptr_t*)interpreter_frame_tos_address();