mirror of
https://github.com/ish-app/ish.git
synced 2026-02-01 14:32:26 +00:00
Get rid of RET_NEAR_IMM
This commit is contained in:
parent
a092f01491
commit
ef0007cd71
@ -523,9 +523,9 @@ restart:
|
||||
READMODRM; READIMM8; GRP2(imm, modrm_val,oz); break;
|
||||
|
||||
case 0xc2: TRACEI("ret near imm\t");
|
||||
READIMM16; RET_NEAR_IMM(imm); break;
|
||||
READIMM16; RET_NEAR(imm); break;
|
||||
case 0xc3: TRACEI("ret near");
|
||||
RET_NEAR(); break;
|
||||
RET_NEAR(0); break;
|
||||
|
||||
case 0xc9: TRACEI("leave");
|
||||
MOV(reg_bp, reg_sp,oz); POP(reg_bp,oz); break;
|
||||
@ -666,7 +666,7 @@ restart:
|
||||
// a branch prediction penalty if the target of a branch is a
|
||||
// ret. gcc used to use nop ret but repz ret is only one
|
||||
// instruction
|
||||
case 0xc3: TRACEI("repz ret\t"); RET_NEAR(); break;
|
||||
case 0xc3: TRACEI("repz ret\t"); RET_NEAR(0); break;
|
||||
default: TRACELN("undefined"); UNDEFINED;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -197,8 +197,7 @@ static inline bool gen_op(struct gen_state *state, gadget_t *gadgets, enum arg a
|
||||
#define JN_REL(cc, off) gagg(jmp, cond_##cc, state->ip, state->ip + off); end_block = true
|
||||
#define CALL(loc) load(loc, OP_SIZE); ggg(call_indir, saved_ip, state->ip); end_block = true
|
||||
#define CALL_REL(off) gggg(call, saved_ip, state->ip + off, state->ip); end_block = true
|
||||
#define RET_NEAR_IMM(imm) ggg(ret, saved_ip, 4 + imm); end_block = true
|
||||
#define RET_NEAR() RET_NEAR_IMM(0); end_block = true
|
||||
#define RET_NEAR(imm) ggg(ret, saved_ip, 4 + imm); end_block = true
|
||||
#define INT(code) gg_here(interrupt, (uint8_t) code); end_block = true
|
||||
|
||||
#define SET(cc, dst) ga(set, cond_##cc); store(dst, 8)
|
||||
|
||||
@ -509,8 +509,7 @@ static bool modrm_compute(struct cpu_state *cpu, struct tlb *tlb, addr_t *addr_o
|
||||
}
|
||||
#define JCXZ_REL(offset) J_REL(get(reg_c,oz) == 0, offset)
|
||||
|
||||
#define RET_NEAR() POP(eip,32); FIX_EIP
|
||||
#define RET_NEAR_IMM(imm) RET_NEAR(); cpu->esp += get(imm,16)
|
||||
#define RET_NEAR(imm) POP(eip,32); FIX_EIP; cpu->esp += get(imm,16)
|
||||
|
||||
#define SET(cond, val) \
|
||||
set(val, (cond ? 1 : 0),8)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user