Revision: 9059
Author: [email protected]
Date: Mon Aug 29 06:29:55 2011
Log: MIPS: Fix an invalid stack-check in the simulator.
This fixes mjsunit regress-1132.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7781002
http://code.google.com/p/v8/source/detail?r=9059
Modified:
/branches/bleeding_edge/src/mips/simulator-mips.cc
=======================================
--- /branches/bleeding_edge/src/mips/simulator-mips.cc Fri Jun 24 06:23:18
2011
+++ /branches/bleeding_edge/src/mips/simulator-mips.cc Mon Aug 29 06:29:55
2011
@@ -1409,20 +1409,11 @@
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