--- 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);
}