tcg: Introduce tcg_out_movext3
authorRichard Henderson <richard.henderson@linaro.org>
Sun, 14 May 2023 16:58:39 +0000 (09:58 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 16 May 2023 23:30:29 +0000 (16:30 -0700)
commit2462e30e99676c710624806febe5ce67a45f0521
treef9341e0ba990b9e77eaa77d910e96ccea5c4016b
parent12fde9bcdb52118495d10c32ed375679f23e323c
tcg: Introduce tcg_out_movext3

With x86_64 as host, we do not have any temporaries with which to
resolve cycles, but we do have xchg.   As a side bonus, the set of
graphs that can be made with 3 nodes and all nodes conflicting is
small: two.  We can solve the cycle with a single temp.

This is required for x86_64 to handle stores of i128: 1 address
register and 2 data registers.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/tcg.c