@@ -693,8 +693,7 @@ static int addr_inc_size(DisasContext *s, int reg0, int opsize)
/*
* Generate code for an "effective address".
*/
-static TCGv gen_lea_mode(CPUM68KState *env, DisasContext *s,
- int mode, int reg0, int opsize)
+static TCGv gen_lea_mode(DisasContext *s, int mode, int reg0, int opsize)
{
TCGv reg, addr, tmp;
uint16_t ext;
@@ -732,7 +731,7 @@ static TCGv gen_lea_mode(CPUM68KState *env, DisasContext *s,
case 5: /* Indirect displacement. */
reg = get_areg(s, reg0);
addr = tcg_temp_new();
- ext = read_im16(env, s);
+ ext = read_im16(s->env, s);
tcg_gen_addi_i32(addr, reg, (int16_t)ext);
return addr;
case 6: /* Indirect index + displacement. */
@@ -741,14 +740,14 @@ static TCGv gen_lea_mode(CPUM68KState *env, DisasContext *s,
case 7: /* Other */
switch (reg0) {
case 0: /* Absolute short. */
- offset = (int16_t)read_im16(env, s);
+ offset = (int16_t)read_im16(s->env, s);
break;
case 1: /* Absolute long. */
- offset = read_im32(env, s);
+ offset = read_im32(s->env, s);
break;
case 2: /* pc displacement */
offset = s->pc;
- offset += (int16_t)read_im16(env, s);
+ offset += (int16_t)read_im16(s->env, s);
break;
case 3: /* pc index+displacement. */
return gen_lea_indexed(s, NULL_QREG);
@@ -768,7 +767,7 @@ static TCGv gen_lea(CPUM68KState *env, DisasContext *s, uint16_t insn,
{
int mode = extract32(insn, 3, 3);
int reg0 = REG(insn, 0);
- return gen_lea_mode(env, s, mode, reg0, opsize);
+ return gen_lea_mode(s, mode, reg0, opsize);
}
/*
@@ -826,7 +825,7 @@ static TCGv gen_load_mode(CPUM68KState *env, DisasContext *s,
case 4: /* Indirect predecrememnt. */
case 5: /* Indirect displacement. */
case 6: /* Indirect index + displacement. */
- addr = gen_lea_mode(env, s, mode, reg0, opsize);
+ addr = gen_lea_mode(s, mode, reg0, opsize);
if (IS_NULL_QREG(addr)) {
ret = addr;
addr = NULL;
@@ -869,7 +868,7 @@ static bool gen_store_mode(CPUM68KState *env, DisasContext *s,
case 6: /* Indirect index + displacement. */
case 7: /* Other */
if (!addr) {
- addr = gen_lea_mode(env, s, mode, reg0, opsize);
+ addr = gen_lea_mode(s, mode, reg0, opsize);
if (IS_NULL_QREG(addr)) {
return false;
}
@@ -1109,7 +1108,7 @@ static int gen_ea_mode_fp(CPUM68KState *env, DisasContext *s, int mode,
case 4: /* Indirect predecrememnt. */
case 5: /* Indirect displacement. */
case 6: /* Indirect index + displacement. */
- addr = gen_lea_mode(env, s, mode, reg0, opsize);
+ addr = gen_lea_mode(s, mode, reg0, opsize);
if (IS_NULL_QREG(addr)) {
return -1;
}
@@ -1930,7 +1929,7 @@ DISAS_INSN(movem)
break;
default:
- tmp = gen_lea_mode(env, s, mode, reg0, opsize);
+ tmp = gen_lea_mode(s, mode, reg0, opsize);
if (IS_NULL_QREG(tmp)) {
goto do_addr_fault;
}
@@ -2672,7 +2671,7 @@ DISAS_INSN(tas)
} else {
TCGv src1, addr;
- addr = gen_lea_mode(env, s, mode, reg0, OS_BYTE);
+ addr = gen_lea_mode(s, mode, reg0, OS_BYTE);
if (IS_NULL_QREG(addr)) {
gen_addr_fault(s);
return;
Use the env pointer in DisasContext. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/m68k/translate.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-)