Mercurial > hg > truffle
diff src/cpu/x86/vm/templateTable_x86_64.cpp @ 3275:bbe95b4337f1
7036960: TemplateTable::fast_aldc in templateTable_x86_64.cpp uses movptr instead of load_klass
Reviewed-by: kvn, iveresov
author | twisti |
---|---|
date | Mon, 18 Apr 2011 06:50:57 -0700 |
parents | 38fea01eb669 |
children | 08ccee2c4dbf |
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateTable_x86_64.cpp Mon Apr 18 01:33:28 2011 -0700 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp Mon Apr 18 06:50:57 2011 -0700 @@ -427,7 +427,7 @@ Label L_done, L_throw_exception; const Register con_klass_temp = rcx; // same as cache const Register array_klass_temp = rdx; // same as index - __ movptr(con_klass_temp, Address(rax, oopDesc::klass_offset_in_bytes())); + __ load_klass(con_klass_temp, rax); __ lea(array_klass_temp, ExternalAddress((address)Universe::systemObjArrayKlassObj_addr())); __ cmpptr(con_klass_temp, Address(array_klass_temp, 0)); __ jcc(Assembler::notEqual, L_done); @@ -438,7 +438,7 @@ // Load the exception from the system-array which wraps it: __ bind(L_throw_exception); - __ movptr(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT))); + __ load_heap_oop(rax, Address(rax, arrayOopDesc::base_offset_in_bytes(T_OBJECT))); __ jump(ExternalAddress(Interpreter::throw_exception_entry())); __ bind(L_done);