mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 02:24:58 -06:00
tcg: TCGMemOp is now accelerator independent MemOp
Preparation for collapsing the two byte swaps, adjust_endianness and handle_bswap, along the I/O path. Target dependant attributes are conditionalized upon NEED_CPU_H. Signed-off-by: Tony Nguyen <tony.nguyen@bt.com> Acked-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <81d9cd7d7f5aaadfa772d6c48ecee834e9cf7882.1566466906.git.tony.nguyen@bt.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
fec105c2ab
commit
14776ab5a1
39 changed files with 418 additions and 396 deletions
|
@ -1500,7 +1500,7 @@ static void form_gva(DisasContext *ctx, TCGv_tl *pgva, TCGv_reg *pofs,
|
|||
*/
|
||||
static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
|
||||
unsigned rx, int scale, target_sreg disp,
|
||||
unsigned sp, int modify, TCGMemOp mop)
|
||||
unsigned sp, int modify, MemOp mop)
|
||||
{
|
||||
TCGv_reg ofs;
|
||||
TCGv_tl addr;
|
||||
|
@ -1518,7 +1518,7 @@ static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
|
|||
|
||||
static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
|
||||
unsigned rx, int scale, target_sreg disp,
|
||||
unsigned sp, int modify, TCGMemOp mop)
|
||||
unsigned sp, int modify, MemOp mop)
|
||||
{
|
||||
TCGv_reg ofs;
|
||||
TCGv_tl addr;
|
||||
|
@ -1536,7 +1536,7 @@ static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
|
|||
|
||||
static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
|
||||
unsigned rx, int scale, target_sreg disp,
|
||||
unsigned sp, int modify, TCGMemOp mop)
|
||||
unsigned sp, int modify, MemOp mop)
|
||||
{
|
||||
TCGv_reg ofs;
|
||||
TCGv_tl addr;
|
||||
|
@ -1554,7 +1554,7 @@ static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
|
|||
|
||||
static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
|
||||
unsigned rx, int scale, target_sreg disp,
|
||||
unsigned sp, int modify, TCGMemOp mop)
|
||||
unsigned sp, int modify, MemOp mop)
|
||||
{
|
||||
TCGv_reg ofs;
|
||||
TCGv_tl addr;
|
||||
|
@ -1580,7 +1580,7 @@ static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
|
|||
|
||||
static bool do_load(DisasContext *ctx, unsigned rt, unsigned rb,
|
||||
unsigned rx, int scale, target_sreg disp,
|
||||
unsigned sp, int modify, TCGMemOp mop)
|
||||
unsigned sp, int modify, MemOp mop)
|
||||
{
|
||||
TCGv_reg dest;
|
||||
|
||||
|
@ -1653,7 +1653,7 @@ static bool trans_fldd(DisasContext *ctx, arg_ldst *a)
|
|||
|
||||
static bool do_store(DisasContext *ctx, unsigned rt, unsigned rb,
|
||||
target_sreg disp, unsigned sp,
|
||||
int modify, TCGMemOp mop)
|
||||
int modify, MemOp mop)
|
||||
{
|
||||
nullify_over(ctx);
|
||||
do_store_reg(ctx, load_gpr(ctx, rt), rb, 0, 0, disp, sp, modify, mop);
|
||||
|
@ -2939,7 +2939,7 @@ static bool trans_st(DisasContext *ctx, arg_ldst *a)
|
|||
|
||||
static bool trans_ldc(DisasContext *ctx, arg_ldst *a)
|
||||
{
|
||||
TCGMemOp mop = MO_TEUL | MO_ALIGN_16 | a->size;
|
||||
MemOp mop = MO_TEUL | MO_ALIGN_16 | a->size;
|
||||
TCGv_reg zero, dest, ofs;
|
||||
TCGv_tl addr;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue