Mercurial > hg > truffle
comparison src/cpu/sparc/vm/interp_masm_sparc.cpp @ 1783:d5d065957597
6953144: Tiered compilation
Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation.
Reviewed-by: kvn, never, phh, twisti
author | iveresov |
---|---|
date | Fri, 03 Sep 2010 17:51:07 -0700 |
parents | e9ff18c4ace7 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1782:f353275af40e | 1783:d5d065957597 |
---|---|
2429 } else { | 2429 } else { |
2430 pop(state); | 2430 pop(state); |
2431 } | 2431 } |
2432 #endif // CC_INTERP | 2432 #endif // CC_INTERP |
2433 } | 2433 } |
2434 | |
2435 // Jump if ((*counter_addr += increment) & mask) satisfies the condition. | |
2436 void InterpreterMacroAssembler::increment_mask_and_jump(Address counter_addr, | |
2437 int increment, int mask, | |
2438 Register scratch1, Register scratch2, | |
2439 Condition cond, Label *where) { | |
2440 ld(counter_addr, scratch1); | |
2441 add(scratch1, increment, scratch1); | |
2442 if (is_simm13(mask)) { | |
2443 andcc(scratch1, mask, G0); | |
2444 } else { | |
2445 set(mask, scratch2); | |
2446 andcc(scratch1, scratch2, G0); | |
2447 } | |
2448 br(cond, false, Assembler::pn, *where); | |
2449 delayed()->st(scratch1, counter_addr); | |
2450 } |