8004713: Stackoverflowerror thrown when thread stack straddles 0x80000000
Summary: use unsigned comparison when checking for stack overflow
Reviewed-by: kvn, twisti
Contributed-by: paul.nauman@oracle.com
--- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Fri Dec 07 18:13:23 2012 -0800
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Thu Dec 13 17:27:55 2012 -0800
@@ -434,7 +434,7 @@
// the frame is greater than one page in size, so check against
// the bottom of the stack
- __ cmp_and_brx_short(SP, Rscratch, Assembler::greater, Assembler::pt, after_frame_check);
+ __ cmp_and_brx_short(SP, Rscratch, Assembler::greaterUnsigned, Assembler::pt, after_frame_check);
// the stack will overflow, throw an exception