[Qemu-devel] [PATCH v2 13/16] tcg: Remove tcg_regset_{or, and, andnot, not}

Richard Henderson posted 16 patches 8 years, 1 month ago
There is a newer version of this series
[Qemu-devel] [PATCH v2 13/16] tcg: Remove tcg_regset_{or, and, andnot, not}
Posted by Richard Henderson 8 years, 1 month ago
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/tcg.h | 4 ----
 tcg/tcg.c | 2 +-
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/tcg/tcg.h b/tcg/tcg.h
index e168bd2c44..8b4208ea03 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -214,10 +214,6 @@ typedef enum TCGOpcode {
 #define tcg_regset_set_reg(d, r) (d) |= 1L << (r)
 #define tcg_regset_reset_reg(d, r) (d) &= ~(1L << (r))
 #define tcg_regset_test_reg(d, r) (((d) >> (r)) & 1)
-#define tcg_regset_or(d, a, b) (d) = (a) | (b)
-#define tcg_regset_and(d, a, b) (d) = (a) & (b)
-#define tcg_regset_andnot(d, a, b) (d) = (a) & ~(b)
-#define tcg_regset_not(d, a) (d) = ~(a)
 
 #ifndef TCG_TARGET_INSN_UNIT_SIZE
 # error "Missing TCG_TARGET_INSN_UNIT_SIZE"
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 873915925f..a19767b5ef 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -2306,7 +2306,7 @@ static TCGReg tcg_reg_alloc(TCGContext *s, TCGRegSet desired_regs,
     TCGReg reg;
     TCGRegSet reg_ct;
 
-    tcg_regset_andnot(reg_ct, desired_regs, allocated_regs);
+    reg_ct = desired_regs & ~allocated_regs;
     order = rev ? indirect_reg_alloc_order : tcg_target_reg_alloc_order;
 
     /* first try free registers */
-- 
2.13.5


Re: [Qemu-devel] [PATCH v2 13/16] tcg: Remove tcg_regset_{or, and, andnot, not}
Posted by Philippe Mathieu-Daudé 8 years, 1 month ago
On 09/12/2017 01:25 PM, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>   tcg/tcg.h | 4 ----
>   tcg/tcg.c | 2 +-
>   2 files changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/tcg/tcg.h b/tcg/tcg.h
> index e168bd2c44..8b4208ea03 100644
> --- a/tcg/tcg.h
> +++ b/tcg/tcg.h
> @@ -214,10 +214,6 @@ typedef enum TCGOpcode {
>   #define tcg_regset_set_reg(d, r) (d) |= 1L << (r)
>   #define tcg_regset_reset_reg(d, r) (d) &= ~(1L << (r))
>   #define tcg_regset_test_reg(d, r) (((d) >> (r)) & 1)
> -#define tcg_regset_or(d, a, b) (d) = (a) | (b)
> -#define tcg_regset_and(d, a, b) (d) = (a) & (b)
> -#define tcg_regset_andnot(d, a, b) (d) = (a) & ~(b)
> -#define tcg_regset_not(d, a) (d) = ~(a)
>   
>   #ifndef TCG_TARGET_INSN_UNIT_SIZE
>   # error "Missing TCG_TARGET_INSN_UNIT_SIZE"
> diff --git a/tcg/tcg.c b/tcg/tcg.c
> index 873915925f..a19767b5ef 100644
> --- a/tcg/tcg.c
> +++ b/tcg/tcg.c
> @@ -2306,7 +2306,7 @@ static TCGReg tcg_reg_alloc(TCGContext *s, TCGRegSet desired_regs,
>       TCGReg reg;
>       TCGRegSet reg_ct;
>   
> -    tcg_regset_andnot(reg_ct, desired_regs, allocated_regs);
> +    reg_ct = desired_regs & ~allocated_regs;
>       order = rev ? indirect_reg_alloc_order : tcg_target_reg_alloc_order;
>   
>       /* first try free registers */
>