Fix stack homing of register parameter offsets bugs.
authorLubomir Litchev <llitchev@live.com>
Mon, 2 Mar 2015 22:52:46 +0000 (14:52 -0800)
committerLubomir Litchev <llitchev@live.com>
Mon, 2 Mar 2015 22:52:46 +0000 (14:52 -0800)
commitcf20a16730bdf0487eb1e5f31495e20bf2e8b0f6
tree5eb80fb3d1ae87a6635dc83ae4c03e300142a609
parent8ea3ad3c0ae50eae8c100835b138e3c395795c9e
Fix stack homing of register parameter offsets bugs.
This set of changes contain:
1. Fix of a RA conservative assertion. In case where there are no
callee-save registers the RA was asserting this fact. It is a valid state
on System V machines for XMM registers. The RA does spill and frees a
register if the assertion doesn't trigger. The fix is to make the assert
allow non-callee-saved registers.
2. It fixes a problem with hardcoding registers when exception funclets
are generated. It uses platform independent RBM_ARG_0 macros now.
3. It disables struct promotion for UNIX. This functionality will be
brought up later.
4. It addresses feedback from a previous PR.
src/jit/codegencommon.cpp
src/jit/compiler.cpp
src/jit/compiler.h
src/jit/lclvars.cpp
src/jit/lsra.cpp