target/s390x: Split out gen_ri2
Use tcg_constant_i64. Adjust in2_mri2_* to allocate a new temporary for the output, using gen_ri2 for the address. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> (cherry picked from commit bdbc87e323ee417735141ed2b11dab0091b57593) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
17b032c659
commit
ad2f459ce0
@ -5962,9 +5962,14 @@ static void in2_a2(DisasContext *s, DisasOps *o)
|
||||
}
|
||||
#define SPEC_in2_a2 0
|
||||
|
||||
static TCGv gen_ri2(DisasContext *s)
|
||||
{
|
||||
return tcg_constant_i64(s->base.pc_next + (int64_t)get_field(s, i2) * 2);
|
||||
}
|
||||
|
||||
static void in2_ri2(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
o->in2 = tcg_const_i64(s->base.pc_next + (int64_t)get_field(s, i2) * 2);
|
||||
o->in2 = gen_ri2(s);
|
||||
}
|
||||
#define SPEC_in2_ri2 0
|
||||
|
||||
@ -6059,29 +6064,29 @@ static void in2_mri2_16s(DisasContext *s, DisasOps *o)
|
||||
|
||||
static void in2_mri2_16u(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
in2_ri2(s, o);
|
||||
tcg_gen_qemu_ld16u(o->in2, o->in2, get_mem_index(s));
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
tcg_gen_qemu_ld16u(o->in2, gen_ri2(s), get_mem_index(s));
|
||||
}
|
||||
#define SPEC_in2_mri2_16u 0
|
||||
|
||||
static void in2_mri2_32s(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
in2_ri2(s, o);
|
||||
tcg_gen_qemu_ld32s(o->in2, o->in2, get_mem_index(s));
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
tcg_gen_qemu_ld32s(o->in2, gen_ri2(s), get_mem_index(s));
|
||||
}
|
||||
#define SPEC_in2_mri2_32s 0
|
||||
|
||||
static void in2_mri2_32u(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
in2_ri2(s, o);
|
||||
tcg_gen_qemu_ld32u(o->in2, o->in2, get_mem_index(s));
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
tcg_gen_qemu_ld32u(o->in2, gen_ri2(s), get_mem_index(s));
|
||||
}
|
||||
#define SPEC_in2_mri2_32u 0
|
||||
|
||||
static void in2_mri2_64(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
in2_ri2(s, o);
|
||||
tcg_gen_qemu_ld64(o->in2, o->in2, get_mem_index(s));
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
tcg_gen_qemu_ld64(o->in2, gen_ri2(s), get_mem_index(s));
|
||||
}
|
||||
#define SPEC_in2_mri2_64 0
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user