src/cpu/x86/vm/interp_masm_x86_64.cpp

changeset 2138
d5d065957597
parent 1934
e9ff18c4ace7
child 2314
f95d63e2154a
equal deleted inserted replaced
2137:f353275af40e 2138:d5d065957597
1478 call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), 1478 call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit),
1479 r15_thread, c_rarg1); 1479 r15_thread, c_rarg1);
1480 NOT_CC_INTERP(pop(state)); 1480 NOT_CC_INTERP(pop(state));
1481 } 1481 }
1482 } 1482 }
1483
1484 // Jump if ((*counter_addr += increment) & mask) satisfies the condition.
1485 void InterpreterMacroAssembler::increment_mask_and_jump(Address counter_addr,
1486 int increment, int mask,
1487 Register scratch, bool preloaded,
1488 Condition cond, Label* where) {
1489 if (!preloaded) {
1490 movl(scratch, counter_addr);
1491 }
1492 incrementl(scratch, increment);
1493 movl(counter_addr, scratch);
1494 andl(scratch, mask);
1495 jcc(cond, *where);
1496 }

mercurial