Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_CodeStubs_x86.cpp @ 2464:d86923d96dca
7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043)
Summary: Fix -XX:+VerifyOops
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Fri, 08 Apr 2011 17:03:31 -0700 |
parents | 32f7097f9d8f |
children | 5d046bf49ce7 |
comparison
equal
deleted
inserted
replaced
2463:3f49d30f8184 | 2464:d86923d96dca |
---|---|
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 Register tmp2 = rbx; | 316 Register tmp2 = rbx; |
317 __ push(tmp); | 317 __ push(tmp); |
318 __ push(tmp2); | 318 __ push(tmp2); |
319 __ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); | 319 // Load without verification to keep code size small. We need it because |
320 // begin_initialized_entry_offset has to fit in a byte. Also, we know it's not null. | |
321 __ load_heap_oop_not_null(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); | |
320 __ get_thread(tmp); | 322 __ get_thread(tmp); |
321 __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); | 323 __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); |
322 __ pop(tmp2); | 324 __ pop(tmp2); |
323 __ pop(tmp); | 325 __ pop(tmp); |
324 __ jcc(Assembler::notEqual, call_patch); | 326 __ jcc(Assembler::notEqual, call_patch); |