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