comparison src/cpu/x86/vm/c1_MacroAssembler_x86.cpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 716a2c5c0656 fd8114661503
children ab906cea36f7
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
154 154
155 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) { 155 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
156 assert_different_registers(obj, klass, len); 156 assert_different_registers(obj, klass, len);
157 if (UseBiasedLocking && !len->is_valid()) { 157 if (UseBiasedLocking && !len->is_valid()) {
158 assert_different_registers(obj, klass, len, t1, t2); 158 assert_different_registers(obj, klass, len, t1, t2);
159 movptr(t1, Address(klass, Klass::prototype_header_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes())); 159 movptr(t1, Address(klass, Klass::prototype_header_offset()));
160 movptr(Address(obj, oopDesc::mark_offset_in_bytes()), t1); 160 movptr(Address(obj, oopDesc::mark_offset_in_bytes()), t1);
161 } else { 161 } else {
162 // This assumes that all prototype bits fit in an int32_t 162 // This assumes that all prototype bits fit in an int32_t
163 movptr(Address(obj, oopDesc::mark_offset_in_bytes ()), (int32_t)(intptr_t)markOopDesc::prototype()); 163 movptr(Address(obj, oopDesc::mark_offset_in_bytes ()), (int32_t)(intptr_t)markOopDesc::prototype());
164 } 164 }
387 inline_cache_check(receiver, ic_klass); 387 inline_cache_check(receiver, ic_klass);
388 } 388 }
389 389
390 390
391 void C1_MacroAssembler::verified_entry() { 391 void C1_MacroAssembler::verified_entry() {
392 if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
393 // Verified Entry first instruction should be 5 bytes long for correct
394 // patching by patch_verified_entry().
395 //
396 // C1Breakpoint and VerifyFPU have one byte first instruction.
397 // Also first instruction will be one byte "push(rbp)" if stack banging
398 // code is not generated (see build_frame() above).
399 // For all these cases generate long instruction first.
400 fat_nop();
401 }
392 if (C1Breakpoint)int3(); 402 if (C1Breakpoint)int3();
393 // build frame 403 // build frame
394 verify_FPU(0, "method_entry"); 404 verify_FPU(0, "method_entry");
395 } 405 }
396 406