diff options
author | iveresov <none@none> | 2010-09-03 17:51:07 -0700 |
---|---|---|
committer | iveresov <none@none> | 2010-09-03 17:51:07 -0700 |
commit | 87513824325dab09a5efe50e3e5e3d18d8de9979 (patch) | |
tree | 3fb74b1d4da7ce8abe7aa59d5b6f4e4b5acbc1e7 /src/cpu/x86/vm/interp_masm_x86_64.cpp | |
parent | 6e3bccca5d29879ac22500910b6ecaa150329775 (diff) | |
download | jdk8u_hotspot-87513824325dab09a5efe50e3e5e3d18d8de9979.tar.gz |
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
Diffstat (limited to 'src/cpu/x86/vm/interp_masm_x86_64.cpp')
-rw-r--r-- | src/cpu/x86/vm/interp_masm_x86_64.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cpu/x86/vm/interp_masm_x86_64.cpp b/src/cpu/x86/vm/interp_masm_x86_64.cpp index 50b0b4cd8..6392742aa 100644 --- a/src/cpu/x86/vm/interp_masm_x86_64.cpp +++ b/src/cpu/x86/vm/interp_masm_x86_64.cpp @@ -1480,3 +1480,17 @@ void InterpreterMacroAssembler::notify_method_exit( NOT_CC_INTERP(pop(state)); } } + +// 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) { + if (!preloaded) { + movl(scratch, counter_addr); + } + incrementl(scratch, increment); + movl(counter_addr, scratch); + andl(scratch, mask); + jcc(cond, *where); +} |