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>
(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?
(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.
Created attachment 224666 [details] the patch.
Comment on attachment 224666 [details] the patch. Add comment similar to what is in the LLInt. r=me
Landed in r164397: <http://trac.webkit.org/r164397>.