8171807: 8170761 fix should be applied to ARM code after 8168503
authorkvn
Wed, 21 Dec 2016 08:15:10 -0800
changeset 42912 2e9f2cc24de3
parent 42909 e440bfad5d9a
child 42913 83423be5b483
8171807: 8170761 fix should be applied to ARM code after 8168503 Reviewed-by: roland
hotspot/src/cpu/arm/vm/sharedRuntime_arm.cpp
--- a/hotspot/src/cpu/arm/vm/sharedRuntime_arm.cpp	Wed Dec 21 11:51:57 2016 +0300
+++ b/hotspot/src/cpu/arm/vm/sharedRuntime_arm.cpp	Wed Dec 21 08:15:10 2016 -0800
@@ -453,7 +453,7 @@
       }
       break;
     case T_LONG:
-      assert(sig_bt[i+1] == T_VOID, "missing Half" );
+      assert((i + 1) < total_args_passed && sig_bt[i+1] == T_VOID, "missing Half" );
       // fall through
     case T_ARRAY:
     case T_OBJECT:
@@ -478,7 +478,7 @@
       }
       break;
     case T_DOUBLE:
-      assert(sig_bt[i+1] == T_VOID, "missing Half" );
+      assert((i + 1) < total_args_passed && sig_bt[i+1] == T_VOID, "missing Half" );
       if (fp_reg < FPR_PARAMS) {
         FloatRegister r = as_FloatRegister(fp_reg);
         regs[i].set2(r->as_VMReg());
@@ -532,7 +532,7 @@
 #ifndef __ABI_HARD__
     case T_DOUBLE:
 #endif // !__ABI_HARD__
-      assert(sig_bt[i+1] == T_VOID, "missing Half" );
+      assert((i + 1) < total_args_passed && sig_bt[i+1] == T_VOID, "missing Half" );
       if (ireg <= 2) {
 #if (ALIGN_WIDE_ARGUMENTS == 1)
         if(ireg & 1) ireg++;  // Aligned location required