Blob Blame History Raw
--- openjdk/hotspot/src/cpu/aarch32/vm/frame_aarch32.cpp	2016-11-11 13:43:39.000000000 +0300
+++ openjdk/hotspot/src/cpu/aarch32/vm/frame_aarch32.cpp	2016-11-11 13:43:39.000000000 +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();