Mercurial > hg > truffle
diff src/cpu/x86/vm/templateInterpreter_x86_64.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Sun Apr 13 17:43:42 2008 -0400 @@ -664,7 +664,7 @@ // work registers const Register method = rbx; - const Register t = r12; + const Register t = r11; // allocate space for parameters __ get_method(method); @@ -844,6 +844,7 @@ __ andq(rsp, -16); // align stack as required by ABI __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans))); __ movq(rsp, r12); // restore sp + __ reinit_heapbase(); __ bind(Continue); } @@ -891,6 +892,7 @@ __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages))); __ movq(rsp, r12); // restore sp __ popaq(); // XXX only restore smashed registers + __ reinit_heapbase(); __ bind(no_reguard); } @@ -1360,6 +1362,7 @@ // rdx: return address/pc that threw exception __ restore_bcp(); // r13 points to call/send __ restore_locals(); + __ reinit_heapbase(); // restore r12 as heapbase. // Entry point for exceptions thrown within interpreter code Interpreter::_throw_exception_entry = __ pc(); // expression stack is undefined here @@ -1658,6 +1661,7 @@ __ andq(rsp, -16); // align stack as required by ABI __ call(RuntimeAddress(Interpreter::trace_code(t->tos_in()))); __ movq(rsp, r12); // restore sp + __ reinit_heapbase(); }