comparison src/cpu/x86/vm/c1_MacroAssembler_x86.cpp @ 4947:fd8114661503

7125136: SIGILL on linux amd64 in gc/ArrayJuggle/Juggle29 Summary: For C2 moved saving EBP after ESP adjustment. For C1 generated 5 byte nop instruction first if needed. Reviewed-by: never, twisti, azeemj
author kvn
date Wed, 15 Feb 2012 21:37:49 -0800
parents 069ab3f976d3
children 33df1aeaebbf da91efe96a93
comparison
equal deleted inserted replaced
4946:69333a2fbae2 4947:fd8114661503
379 inline_cache_check(receiver, ic_klass); 379 inline_cache_check(receiver, ic_klass);
380 } 380 }
381 381
382 382
383 void C1_MacroAssembler::verified_entry() { 383 void C1_MacroAssembler::verified_entry() {
384 if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
385 // Verified Entry first instruction should be 5 bytes long for correct
386 // patching by patch_verified_entry().
387 //
388 // C1Breakpoint and VerifyFPU have one byte first instruction.
389 // Also first instruction will be one byte "push(rbp)" if stack banging
390 // code is not generated (see build_frame() above).
391 // For all these cases generate long instruction first.
392 fat_nop();
393 }
384 if (C1Breakpoint)int3(); 394 if (C1Breakpoint)int3();
385 // build frame 395 // build frame
386 verify_FPU(0, "method_entry"); 396 verify_FPU(0, "method_entry");
387 } 397 }
388 398