Files
qemu/include/tcg/tcg-op-def.h.inc
T
Richard Henderson b31e9a2db8 tcg: Generic expansion of remaining atomic operations
These are done in bulk because of existing macro magic.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2026-10-24 17:14:50 +02:00

111 lines
4.3 KiB
SQL

/* SPDX-License-Identifier: MIT */
/* Templated TCGv_i32 and TCGv_i64 operations */
DEF2(abs, TCGV, TCGV)
DEF3(add, TCGV, TCGV, TCGV)
DEF3(addi, TCGV, TCGV, TINT)
DEF6(add2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV)
DEF5(addcio, TCGV, TCGV, TCGV, TCGV, TCGV)
DEF3(and, TCGV, TCGV, TCGV)
DEF3(andi, TCGV, TCGV, TINT)
DEF3(andc, TCGV, TCGV, TCGV)
DEF4(brcond, TCGCond, TCGV, TCGV, TCGLabelPtr)
DEF4(brcondi, TCGCond, TCGV, TINT, TCGLabelPtr)
DEF3(bswap16, TCGV, TCGV, unsigned)
DEF2(clrsb, TCGV, TCGV)
DEF3(clz, TCGV, TCGV, TCGV)
DEF3(clzi, TCGV, TCGV, TINT)
DEF2(ctpop, TCGV, TCGV)
DEF3(ctz, TCGV, TCGV, TCGV)
DEF3(ctzi, TCGV, TCGV, TINT)
DEF5(deposit, TCGV, TCGV, TCGV, unsigned, unsigned)
DEF4(deposit_z, TCGV, TCGV, unsigned, unsigned)
DEF1(discard, TCGV)
DEF3(div, TCGV, TCGV, TCGV)
DEF3(divu, TCGV, TCGV, TCGV)
DEF3(dup, unsigned, TCGV, TCGV)
DEF3(ext, TCGV, TCGV, MemOp)
DEF2(ext8s, TCGV, TCGV)
DEF2(ext8u, TCGV, TCGV)
DEF2(ext16s, TCGV, TCGV)
DEF2(ext16u, TCGV, TCGV)
DEF4(extract, TCGV, TCGV, unsigned, unsigned)
DEF4(extract2, TCGV, TCGV, TCGV, unsigned)
DEF3(eqv, TCGV, TCGV, TCGV)
DEF3(ld, TCGV, TCGv_ptr, tcg_target_long)
DEF3(ld8s, TCGV, TCGv_ptr, tcg_target_long)
DEF3(ld8u, TCGV, TCGv_ptr, tcg_target_long)
DEF3(ld16s, TCGV, TCGv_ptr, tcg_target_long)
DEF3(ld16u, TCGV, TCGv_ptr, tcg_target_long)
DEF2(mov, TCGV, TCGV)
DEF2(movi, TCGV, TINT)
DEF6(movcond, TCGCond, TCGV, TCGV, TCGV, TCGV, TCGV)
DEF3(mul, TCGV, TCGV, TCGV)
DEF3(muli, TCGV, TCGV, TINT)
DEF4(muls2, TCGV, TCGV, TCGV, TCGV)
DEF4(mulu2, TCGV, TCGV, TCGV, TCGV)
DEF3(nand, TCGV, TCGV, TCGV)
DEF2(neg, TCGV, TCGV)
DEF4(negsetcond, TCGCond, TCGV, TCGV, TCGV)
DEF4(negsetcondi, TCGCond, TCGV, TCGV, TINT)
DEF3(nor, TCGV, TCGV, TCGV)
DEF2(not, TCGV, TCGV)
DEF3(or, TCGV, TCGV, TCGV)
DEF3(ori, TCGV, TCGV, TINT)
DEF3(orc, TCGV, TCGV, TCGV)
DEF5(qemu_ld_chk, TCGV, TCGTempPtr, unsigned, MemOp, TCGType)
DEF5(qemu_st_chk, TCGV, TCGTempPtr, unsigned, MemOp, TCGType)
DEF3(rem, TCGV, TCGV, TCGV)
DEF3(remu, TCGV, TCGV, TCGV)
DEF2(revbit8, TCGV, TCGV)
DEF3(rotl, TCGV, TCGV, TCGV)
DEF3(rotli, TCGV, TCGV, TINT)
DEF3(rotr, TCGV, TCGV, TCGV)
DEF3(rotri, TCGV, TCGV, TINT)
DEF3(sar, TCGV, TCGV, TCGV)
DEF3(sari, TCGV, TCGV, TINT)
DEF4(setcond, TCGCond, TCGV, TCGV, TCGV)
DEF4(setcondi, TCGCond, TCGV, TCGV, TINT)
DEF4(sextract, TCGV, TCGV, unsigned, unsigned)
DEF3(shl, TCGV, TCGV, TCGV)
DEF3(shli, TCGV, TCGV, TINT)
DEF3(shr, TCGV, TCGV, TCGV)
DEF3(shri, TCGV, TCGV, TINT)
DEF3(smax, TCGV, TCGV, TCGV)
DEF3(smin, TCGV, TCGV, TCGV)
DEF3(st, TCGV, TCGv_ptr, tcg_target_long)
DEF3(st8, TCGV, TCGv_ptr, tcg_target_long)
DEF3(st16, TCGV, TCGv_ptr, tcg_target_long)
DEF3(sub, TCGV, TCGV, TCGV)
DEF3(subi, TCGV, TCGV, TINT)
DEF6(sub2, TCGV, TCGV, TCGV, TCGV, TCGV, TCGV)
DEF3(subfi, TCGV, TINT, TCGV)
DEF3(umax, TCGV, TCGV, TCGV)
DEF3(umin, TCGV, TCGV, TCGV)
DEF3(ussub, TCGV, TCGV, TCGV)
DEF3(xor, TCGV, TCGV, TCGV)
DEF3(xori, TCGV, TCGV, TINT)
DEF7(atomic_cmpxchg_chk, TCGV, TCGTempPtr, TCGV, TCGV, unsigned, MemOp, TCGType)
DEF7(nonatomic_cmpxchg_chk, TCGV, TCGTempPtr, TCGV, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_xchg_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_add_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_and_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_or_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_smax_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_smin_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_umax_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_umin_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_fetch_xor_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_add_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_and_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_or_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_smax_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_smin_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_umax_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_umin_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)
DEF6(atomic_xor_fetch_chk, TCGV, TCGTempPtr, TCGV, unsigned, MemOp, TCGType)