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);