src/cpu/sparc/vm/sharedRuntime_sparc.cpp

changeset 6723
0bf37f737702
parent 6558
2100bf712e2a
child 6876
710a3c8b516e
child 7210
318cc6fdae90
     1.1 --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Mon Jun 09 15:42:31 2014 -0700
     1.2 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Tue Apr 01 09:36:49 2014 +0200
     1.3 @@ -3355,13 +3355,16 @@
     1.4    Register        O4array_size       = O4;
     1.5    Label           loop;
     1.6  
     1.7 -  // Before we make new frames, check to see if stack is available.
     1.8 -  // Do this after the caller's return address is on top of stack
     1.9 +#ifdef ASSERT
    1.10 +  // Compilers generate code that bang the stack by as much as the
    1.11 +  // interpreter would need. So this stack banging should never
    1.12 +  // trigger a fault. Verify that it does not on non product builds.
    1.13    if (UseStackBanging) {
    1.14      // Get total frame size for interpreted frames
    1.15      __ ld(O2UnrollBlock, Deoptimization::UnrollBlock::total_frame_sizes_offset_in_bytes(), O4);
    1.16      __ bang_stack_size(O4, O3, G3_scratch);
    1.17    }
    1.18 +#endif
    1.19  
    1.20    __ ld(O2UnrollBlock, Deoptimization::UnrollBlock::number_of_frames_offset_in_bytes(), O4array_size);
    1.21    __ ld_ptr(O2UnrollBlock, Deoptimization::UnrollBlock::frame_pcs_offset_in_bytes(), G3pcs);
    1.22 @@ -3409,9 +3412,11 @@
    1.23    ResourceMark rm;
    1.24    // setup code generation tools
    1.25    int pad = VerifyThread ? 512 : 0;// Extra slop space for more verify code
    1.26 +#ifdef ASSERT
    1.27    if (UseStackBanging) {
    1.28      pad += StackShadowPages*16 + 32;
    1.29    }
    1.30 +#endif
    1.31  #ifdef _LP64
    1.32    CodeBuffer buffer("deopt_blob", 2100+pad, 512);
    1.33  #else
    1.34 @@ -3632,9 +3637,11 @@
    1.35    ResourceMark rm;
    1.36    // setup code generation tools
    1.37    int pad = VerifyThread ? 512 : 0;
    1.38 +#ifdef ASSERT
    1.39    if (UseStackBanging) {
    1.40      pad += StackShadowPages*16 + 32;
    1.41    }
    1.42 +#endif
    1.43  #ifdef _LP64
    1.44    CodeBuffer buffer("uncommon_trap_blob", 2700+pad, 512);
    1.45  #else

mercurial