JIT: Avoid internal register allocation when possible for PUTARG_SPLIT (#76443)
authorJakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Sat, 1 Oct 2022 09:48:16 +0000 (11:48 +0200)
committerGitHub <noreply@github.com>
Sat, 1 Oct 2022 09:48:16 +0000 (11:48 +0200)
commit452fd845d131b39b5837d4513e569a540a92b359
tree6779e7ce9a312d7a15cb9ea9aa4f77cbc209752c
parentaea856f2812c2b827c024121d987a33e3108fac3
JIT: Avoid internal register allocation when possible for PUTARG_SPLIT (#76443)

We can almost always avoid allocating an internal register, which may be
expensive if LR is picked since we cannot use thumb encoding for it.

The only case where we need an internal register is when we have a
source that is in a register, and we have a single taget register to
place that conflicts with that source register. The to-stack copies then
need an intermediate scratch register to avoid clobbering the source
register.
src/coreclr/jit/codegenarmarch.cpp
src/coreclr/jit/lsraarmarch.cpp