Mercurial > hg > truffle
diff src/cpu/x86/vm/c1_CodeStubs_x86.cpp @ 2389:c10b82a05d58
Merge
author | trims |
---|---|
date | Fri, 25 Mar 2011 18:04:45 -0700 |
parents | 32f7097f9d8f |
children | d86923d96dca e1162778c1c8 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Fri Mar 25 17:26:33 2011 -0700 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Fri Mar 25 18:04:45 2011 -0700 @@ -313,10 +313,13 @@ } assert(_obj != noreg, "must be a valid register"); Register tmp = rax; - if (_obj == tmp) tmp = rbx; + Register tmp2 = rbx; __ push(tmp); + __ push(tmp2); + __ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); __ get_thread(tmp); - __ cmpptr(tmp, Address(_obj, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); + __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); + __ pop(tmp2); __ pop(tmp); __ jcc(Assembler::notEqual, call_patch);