Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
2374:661c46a8434c | 2389:c10b82a05d58 |
---|---|
311 if (CommentedAssembly) { | 311 if (CommentedAssembly) { |
312 __ block_comment(" being_initialized check"); | 312 __ block_comment(" being_initialized check"); |
313 } | 313 } |
314 assert(_obj != noreg, "must be a valid register"); | 314 assert(_obj != noreg, "must be a valid register"); |
315 Register tmp = rax; | 315 Register tmp = rax; |
316 if (_obj == tmp) tmp = rbx; | 316 Register tmp2 = rbx; |
317 __ push(tmp); | 317 __ push(tmp); |
318 __ push(tmp2); | |
319 __ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); | |
318 __ get_thread(tmp); | 320 __ get_thread(tmp); |
319 __ cmpptr(tmp, Address(_obj, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); | 321 __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); |
322 __ pop(tmp2); | |
320 __ pop(tmp); | 323 __ pop(tmp); |
321 __ jcc(Assembler::notEqual, call_patch); | 324 __ jcc(Assembler::notEqual, call_patch); |
322 | 325 |
323 // access_field patches may execute the patched code before it's | 326 // access_field patches may execute the patched code before it's |
324 // copied back into place so we need to jump back into the main | 327 // copied back into place so we need to jump back into the main |