Message ID | 20170516230159.4195-2-aurelien@aurel32.net |
---|---|
State | New |
Headers | show |
Hi Aurelien, On 05/16/2017 08:01 PM, Aurelien Jarno wrote: > Use the same mask to avoid having to load two different constants, as > suggested by Richard Henderson. What about Suggested-by: Richard Henderson <rth@twiddle.net> ? > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > target/arm/translate.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/target/arm/translate.c b/target/arm/translate.c > index 0b5a0bca06..5becb2bb89 100644 > --- a/target/arm/translate.c > +++ b/target/arm/translate.c > @@ -339,11 +339,13 @@ static void gen_smul_dual(TCGv_i32 a, TCGv_i32 b) > static void gen_rev16(TCGv_i32 var) > { > TCGv_i32 tmp = tcg_temp_new_i32(); > + TCGv_i32 mask = tcg_const_i32(0x00ff00ff); > tcg_gen_shri_i32(tmp, var, 8); > - tcg_gen_andi_i32(tmp, tmp, 0x00ff00ff); > + tcg_gen_and_i32(tmp, tmp, mask); > + tcg_gen_and_i32(var, var, mask); > tcg_gen_shli_i32(var, var, 8); > - tcg_gen_andi_i32(var, var, 0xff00ff00); > tcg_gen_or_i32(var, var, tmp); > + tcg_temp_free_i32(mask); > tcg_temp_free_i32(tmp); > } > >
On 05/16/2017 04:01 PM, Aurelien Jarno wrote: > Use the same mask to avoid having to load two different constants, as > suggested by Richard Henderson. > > Signed-off-by: Aurelien Jarno<aurelien@aurel32.net> > --- > target/arm/translate.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) Reviewed-by: Richard Henderson <rth@twiddle.net> r~
diff --git a/target/arm/translate.c b/target/arm/translate.c index 0b5a0bca06..5becb2bb89 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -339,11 +339,13 @@ static void gen_smul_dual(TCGv_i32 a, TCGv_i32 b) static void gen_rev16(TCGv_i32 var) { TCGv_i32 tmp = tcg_temp_new_i32(); + TCGv_i32 mask = tcg_const_i32(0x00ff00ff); tcg_gen_shri_i32(tmp, var, 8); - tcg_gen_andi_i32(tmp, tmp, 0x00ff00ff); + tcg_gen_and_i32(tmp, tmp, mask); + tcg_gen_and_i32(var, var, mask); tcg_gen_shli_i32(var, var, 8); - tcg_gen_andi_i32(var, var, 0xff00ff00); tcg_gen_or_i32(var, var, tmp); + tcg_temp_free_i32(mask); tcg_temp_free_i32(tmp); }
Use the same mask to avoid having to load two different constants, as suggested by Richard Henderson. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> --- target/arm/translate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)