src/cpu/x86/vm/c1_MacroAssembler_x86.cpp

changeset 3574
fd8114661503
parent 3391
069ab3f976d3
child 4037
da91efe96a93
     1.1 --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp	Wed Feb 15 16:29:40 2012 -0800
     1.2 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp	Wed Feb 15 21:37:49 2012 -0800
     1.3 @@ -381,6 +381,16 @@
     1.4  
     1.5  
     1.6  void C1_MacroAssembler::verified_entry() {
     1.7 +  if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
     1.8 +    // Verified Entry first instruction should be 5 bytes long for correct
     1.9 +    // patching by patch_verified_entry().
    1.10 +    //
    1.11 +    // C1Breakpoint and VerifyFPU have one byte first instruction.
    1.12 +    // Also first instruction will be one byte "push(rbp)" if stack banging
    1.13 +    // code is not generated (see build_frame() above).
    1.14 +    // For all these cases generate long instruction first.
    1.15 +    fat_nop();
    1.16 +  }
    1.17    if (C1Breakpoint)int3();
    1.18    // build frame
    1.19    verify_FPU(0, "method_entry");

mercurial