src/share/vm/runtime/os.cpp

changeset 9706
8c67a8d09196
parent 9637
eef07cd490d4
child 9931
fd44df5e3bc3
equal deleted inserted replaced
9705:0b27fc8adf1b 9706:8c67a8d09196
1099 if ((old_sp & sp_align_mask) != 0) return true; 1099 if ((old_sp & sp_align_mask) != 0) return true;
1100 if (old_sp == 0 || old_sp == (uintptr_t)-1) return true; 1100 if (old_sp == 0 || old_sp == (uintptr_t)-1) return true;
1101 1101
1102 uintptr_t old_fp = (uintptr_t)fr->link(); 1102 uintptr_t old_fp = (uintptr_t)fr->link();
1103 if ((old_fp & fp_align_mask) != 0) return true; 1103 if ((old_fp & fp_align_mask) != 0) return true;
1104 if (old_fp == 0 || old_fp == (uintptr_t)-1 || old_fp == ufp) return true; 1104 // The check for old_fp and ufp is harmful on MIPS due to its special ABI.
1105 if (old_fp == 0 || old_fp == (uintptr_t)-1 NOT_MIPS64(|| old_fp == ufp)) return true;
1105 1106
1106 // stack grows downwards; if old_fp is below current fp or if the stack 1107 // stack grows downwards; if old_fp is below current fp or if the stack
1107 // frame is too large, either the stack is corrupted or fp is not saved 1108 // frame is too large, either the stack is corrupted or fp is not saved
1108 // on stack (i.e. on x86, ebp may be used as general register). The stack 1109 // on stack (i.e. on x86, ebp may be used as general register). The stack
1109 // is not walkable beyond current frame. 1110 // is not walkable beyond current frame.

mercurial