Refactor register arg handling in TreeNodeInfoInit.
authorPat Gavlin <pagavlin@microsoft.com>
Sat, 25 Feb 2017 01:16:35 +0000 (17:16 -0800)
committerPat Gavlin <pagavlin@microsoft.com>
Sat, 25 Feb 2017 18:06:37 +0000 (10:06 -0800)
commit8fdca7af58ae0e84400f2c2ba79276a819566e1d
tree02e6b95c1fb999b28dcfd5773b6c6821e1cbb00a
parent3392356945aabd5a3ebac5317ff4a0e0361dc9ad
Refactor register arg handling in TreeNodeInfoInit.

The handling for outgoing register arguments in TreeNodeInfoInitCall was
unnecessarily complex and difficult to follow. In particular, the processing
of FIELD_LIST arguments performed a fair amount of unnecessary work,
contained code to deal with impossible IR patterns, and did not share any
code for handling the component PUTARG_REG nodes with the normal PUTARG_REG
case. This changes resolves all three of these issues and fixes an ordering
issue in lowering that was causing PInvoke prologs to remain unlowered.
src/jit/lower.cpp
src/jit/lower.h
src/jit/lsraarm.cpp
src/jit/lsraarm64.cpp
src/jit/lsraxarch.cpp