qemu/tcg
Ilya Leoshkevich 6f7c39a912 tcg/{i386, s390x}: Add earlyclobber to the op_add2's first output
i386 and s390x implementations of op_add2 require an earlyclobber,
which is currently missing. This breaks VCKSM in s390x guests. E.g., on
x86_64 the following op:

    add2_i32 tmp2,tmp3,tmp2,tmp3,tmp3,tmp2   dead: 0 2 3 4 5  pref=none,0xffff

is translated to:

    addl     %ebx, %r12d
    adcl     %r12d, %ebx

Introduce a new C_N1_O1_I4 constraint, and make sure that earlyclobber
of aliased outputs is honored.

Cc: qemu-stable@nongnu.org
Fixes: 82790a8709 ("tcg: Add markup for output requires new register")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230719221310.1968845-7-iii@linux.ibm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit 22d2e5351a)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-07-31 09:10:51 +03:00
..
aarch64 tcg/aarch64: Fix patching of LDR in tb_target_set_jmp_target 2023-02-04 06:19:43 -10:00
arm tcg: Add TCG_TARGET_CALL_{RET,ARG}_I128 2023-02-04 06:19:42 -10:00
i386 tcg/{i386, s390x}: Add earlyclobber to the op_add2's first output 2023-07-31 09:10:51 +03:00
loongarch64 tcg: Add TCG_TARGET_CALL_{RET,ARG}_I128 2023-02-04 06:19:42 -10:00
mips tcg/mips: Fix TCG_TARGET_CALL_RET_I128 for o32 abi 2023-04-10 08:29:24 -07:00
ppc tcg/ppc: Fix race in goto_tb implementation 2023-07-31 09:10:51 +03:00
riscv tcg: Add TCG_TARGET_CALL_{RET,ARG}_I128 2023-02-04 06:19:42 -10:00
s390x tcg/{i386, s390x}: Add earlyclobber to the op_add2's first output 2023-07-31 09:10:51 +03:00
sparc64 tcg/sparc64: Disable direct linking for goto_tb 2023-04-04 08:43:04 -07:00
tci tcg/tci: Add TCG_TARGET_CALL_{RET,ARG}_I128 2023-02-04 06:19:42 -10:00
meson.build tcg: Build ffi data structures for helpers 2021-06-19 08:51:11 -07:00
optimize.c tcg: Rename TEMP_LOCAL to TEMP_TB 2023-03-01 07:33:27 -10:00
region.c tcg: use QTree instead of GTree 2023-03-28 15:23:10 -07:00
tcg-common.c tcg: Silent -Wmissing-field-initializers warning 2023-02-27 22:29:01 +01:00
tcg-internal.h tcg: Add basic data movement for TCGv_i128 2023-02-04 06:19:42 -10:00
tcg-ldst.c.inc tcg: Rename TCGMemOpIdx to MemOpIdx 2021-10-05 16:53:17 -07:00
tcg-op-gvec.c tcg: Create tcg/tcg-temp-internal.h 2023-03-13 06:42:05 -07:00
tcg-op-vec.c tcg: Drop tcg_const_*_vec 2023-03-13 07:03:39 -07:00
tcg-op.c tcg: Drop plugin_gen_disable_mem_helpers from tcg_gen_exit_tb 2023-03-22 15:06:57 +00:00
tcg-pool.c.inc tcg: Introduce tcg_splitwx_to_{rx,rw} 2021-01-07 05:09:41 -10:00
tcg.c tcg/{i386, s390x}: Add earlyclobber to the op_add2's first output 2023-07-31 09:10:51 +03:00
tci.c Don't include headers already included by qemu/osdep.h 2023-02-08 07:28:05 +01:00