Reviewers: Sven,
Description:
MIPS: Fix an invalid stack-check in the simulator.
This fixes mjsunit regress-1132.
BUG=
TEST=
Please review this at http://codereview.chromium.org/7781002/
Affected files:
M src/mips/simulator-mips.cc
Index: src/mips/simulator-mips.cc
diff --git a/src/mips/simulator-mips.cc b/src/mips/simulator-mips.cc
index
30e12e75b1bd3bff66715244d07297720973c6fb..3b3869532cc9cb8f90dfd9a4f232e3f6a8dfa806
100644
--- a/src/mips/simulator-mips.cc
+++ b/src/mips/simulator-mips.cc
@@ -1409,20 +1409,11 @@ void Simulator::SoftwareInterrupt(Instruction*
instr) {
int32_t arg1 = get_register(a1);
int32_t arg2 = get_register(a2);
int32_t arg3 = get_register(a3);
- int32_t arg4 = 0;
- int32_t arg5 = 0;
- // Need to check if sp is valid before assigning arg4, arg5.
- // This is a fix for cctest test-api/CatchStackOverflow which causes
- // the stack to overflow. For some reason arm doesn't need this
- // stack check here.
int32_t* stack_pointer = reinterpret_cast<int32_t*>(get_register(sp));
- int32_t* stack = reinterpret_cast<int32_t*>(stack_);
- if (stack_pointer >= stack && stack_pointer < stack + stack_size_ - 5)
{
- // Args 4 and 5 are on the stack after the reserved space for args
0..3.
- arg4 = stack_pointer[4];
- arg5 = stack_pointer[5];
- }
+ // Args 4 and 5 are on the stack after the reserved space for args
0..3.
+ int32_t arg4 = stack_pointer[4];
+ int32_t arg5 = stack_pointer[5];
bool fp_call =
(redirection->type() == ExternalReference::BUILTIN_FP_FP_CALL) ||
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev