target/arm: Move constant expanders to translate.h
Some of the constant expanders defined in translate.c are generically useful and will be used by the separate C files for VFP and Neon once they are created; move the expander definitions to translate.h. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210430132740.10391-2-peter.maydell@linaro.org
This commit is contained in:
parent
eb849d8fd5
commit
b5aa664679
@ -109,30 +109,6 @@ static void arm_gen_condlabel(DisasContext *s)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Constant expanders for the decoders.
|
||||
*/
|
||||
|
||||
static int negate(DisasContext *s, int x)
|
||||
{
|
||||
return -x;
|
||||
}
|
||||
|
||||
static int plus_2(DisasContext *s, int x)
|
||||
{
|
||||
return x + 2;
|
||||
}
|
||||
|
||||
static int times_2(DisasContext *s, int x)
|
||||
{
|
||||
return x * 2;
|
||||
}
|
||||
|
||||
static int times_4(DisasContext *s, int x)
|
||||
{
|
||||
return x * 4;
|
||||
}
|
||||
|
||||
/* Flags for the disas_set_da_iss info argument:
|
||||
* lower bits hold the Rt register number, higher bits are flags.
|
||||
*/
|
||||
|
@ -118,6 +118,30 @@ extern TCGv_i32 cpu_NF, cpu_ZF, cpu_CF, cpu_VF;
|
||||
extern TCGv_i64 cpu_exclusive_addr;
|
||||
extern TCGv_i64 cpu_exclusive_val;
|
||||
|
||||
/*
|
||||
* Constant expanders for the decoders.
|
||||
*/
|
||||
|
||||
static inline int negate(DisasContext *s, int x)
|
||||
{
|
||||
return -x;
|
||||
}
|
||||
|
||||
static inline int plus_2(DisasContext *s, int x)
|
||||
{
|
||||
return x + 2;
|
||||
}
|
||||
|
||||
static inline int times_2(DisasContext *s, int x)
|
||||
{
|
||||
return x * 2;
|
||||
}
|
||||
|
||||
static inline int times_4(DisasContext *s, int x)
|
||||
{
|
||||
return x * 4;
|
||||
}
|
||||
|
||||
static inline int arm_dc_feature(DisasContext *dc, int feature)
|
||||
{
|
||||
return (dc->features & (1ULL << feature)) != 0;
|
||||
|
Loading…
Reference in New Issue
Block a user