mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
tcg: Add clz and ctz opcodes
Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
17280ff4a5
commit
0e28d0063b
17 changed files with 266 additions and 0 deletions
16
tcg/tcg-op.h
16
tcg/tcg-op.h
|
@ -286,6 +286,10 @@ void tcg_gen_eqv_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
|||
void tcg_gen_nand_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_clz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_ctz_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_clzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2);
|
||||
void tcg_gen_ctzi_i32(TCGv_i32 ret, TCGv_i32 arg1, uint32_t arg2);
|
||||
void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
void tcg_gen_rotli_i32(TCGv_i32 ret, TCGv_i32 arg1, unsigned arg2);
|
||||
void tcg_gen_rotr_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2);
|
||||
|
@ -469,6 +473,10 @@ void tcg_gen_eqv_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
|||
void tcg_gen_nand_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_clz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_ctz_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_clzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2);
|
||||
void tcg_gen_ctzi_i64(TCGv_i64 ret, TCGv_i64 arg1, uint64_t arg2);
|
||||
void tcg_gen_rotl_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
void tcg_gen_rotli_i64(TCGv_i64 ret, TCGv_i64 arg1, unsigned arg2);
|
||||
void tcg_gen_rotr_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2);
|
||||
|
@ -958,6 +966,10 @@ void tcg_gen_atomic_xor_fetch_i64(TCGv_i64, TCGv, TCGv_i64, TCGArg, TCGMemOp);
|
|||
#define tcg_gen_nand_tl tcg_gen_nand_i64
|
||||
#define tcg_gen_nor_tl tcg_gen_nor_i64
|
||||
#define tcg_gen_orc_tl tcg_gen_orc_i64
|
||||
#define tcg_gen_clz_tl tcg_gen_clz_i64
|
||||
#define tcg_gen_ctz_tl tcg_gen_ctz_i64
|
||||
#define tcg_gen_clzi_tl tcg_gen_clzi_i64
|
||||
#define tcg_gen_ctzi_tl tcg_gen_ctzi_i64
|
||||
#define tcg_gen_rotl_tl tcg_gen_rotl_i64
|
||||
#define tcg_gen_rotli_tl tcg_gen_rotli_i64
|
||||
#define tcg_gen_rotr_tl tcg_gen_rotr_i64
|
||||
|
@ -1049,6 +1061,10 @@ void tcg_gen_atomic_xor_fetch_i64(TCGv_i64, TCGv, TCGv_i64, TCGArg, TCGMemOp);
|
|||
#define tcg_gen_nand_tl tcg_gen_nand_i32
|
||||
#define tcg_gen_nor_tl tcg_gen_nor_i32
|
||||
#define tcg_gen_orc_tl tcg_gen_orc_i32
|
||||
#define tcg_gen_clz_tl tcg_gen_clz_i32
|
||||
#define tcg_gen_ctz_tl tcg_gen_ctz_i32
|
||||
#define tcg_gen_clzi_tl tcg_gen_clzi_i32
|
||||
#define tcg_gen_ctzi_tl tcg_gen_ctzi_i32
|
||||
#define tcg_gen_rotl_tl tcg_gen_rotl_i32
|
||||
#define tcg_gen_rotli_tl tcg_gen_rotli_i32
|
||||
#define tcg_gen_rotr_tl tcg_gen_rotr_i32
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue