RESOLVED FIXED 129056
Need to align sp before calling operationLoadVarargs on 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=129056
Summary Need to align sp before calling operationLoadVarargs on 32-bit platforms
Mark Lam
Reported 2014-02-19 12:59:02 PST
In JIT::compileLoadVarargs(), we'll call operationSizeFrameForVarargs() to compute the amount of stack space we need for the varargs, adjust the stack pointer to make room for those varargs, and then call operationLoadVarargs() to fill in the varargs. Currently, the stack pointer adjustment took care of allocating space for the varargs, but did not align the stack pointer for the call to operationLoadVarargs(). The fix is to align the stack pointer there. ref: <rdar://problem/16035552>
Attachments
the patch. (2.19 KB, patch)
2014-02-19 13:11 PST, Mark Lam
msaboff: review+
Filip Pizlo
Comment 1 2014-02-19 13:03:11 PST
(In reply to comment #0) > In JIT::compileLoadVarargs(), we'll call operationSizeFrameForVarargs() to compute the amount of stack space we need for the varargs, adjust the stack pointer to make room for those varargs, and then call operationLoadVarargs() to fill in the varargs. Currently, the stack pointer adjustment took care of allocating space for the varargs, but did not align the stack pointer for the call to operationLoadVarargs(). The fix is to align the stack pointer there. > > ref: <rdar://problem/16035552> What does 64-bit do?
Mark Lam
Comment 2 2014-02-19 13:04:29 PST
(In reply to comment #1) > What does 64-bit do? The stack pointer adjustment there is based on the new CallFrame pointer value. On 64-bit, they are both similarly aligned (i.e. low nibbles are 0). Hence, no additional adjustment is needed.
Mark Lam
Comment 3 2014-02-19 13:11:33 PST
Created attachment 224666 [details] the patch.
Michael Saboff
Comment 4 2014-02-19 13:15:24 PST
Comment on attachment 224666 [details] the patch. Add comment similar to what is in the LLInt. r=me
Mark Lam
Comment 5 2014-02-19 15:36:41 PST
Note You need to log in before you can comment on or make changes to this bug.