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

Reply via email to