hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
changeset 29195 7d6208ea1775
parent 29188 b40701883668
child 30429 c980154ed1a3
--- a/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Mon Mar 02 10:09:33 2015 -0800
+++ b/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Mon Mar 02 10:31:52 2015 -0800
@@ -1409,15 +1409,17 @@
 
 // Jump if ((*counter_addr += increment) & mask) satisfies the condition.
 void InterpreterMacroAssembler::increment_mask_and_jump(Address counter_addr,
-                                                        int increment, int mask,
-                                                        Register scratch, bool preloaded,
-                                                        Condition cond, Label* where) {
+                                                        int increment, Address mask,
+                                                        Register scratch, Register scratch2,
+                                                        bool preloaded, Condition cond,
+                                                        Label* where) {
   if (!preloaded) {
     ldrw(scratch, counter_addr);
   }
   add(scratch, scratch, increment);
   strw(scratch, counter_addr);
-  ands(scratch, scratch, mask);
+  ldrw(scratch2, mask);
+  ands(scratch, scratch, scratch2);
   br(cond, *where);
 }