x86-64-asm: Fix ltr/str and push/pop operands
str accepts rm16/r32/r64, and push/pop defaults to 64 when given memory operands (to 32 on i386).
This commit is contained in:
@ -869,6 +869,9 @@ ST_FUNC void asm_opcode(TCCState *s1, int opcode)
|
||||
if ((opcode == TOK_ASM_push || opcode == TOK_ASM_pop) &&
|
||||
(ops[0].type & (OP_SEG | OP_IM8S | OP_IM32)))
|
||||
s = 2;
|
||||
else if ((opcode == TOK_ASM_push || opcode == TOK_ASM_pop) &&
|
||||
(ops[0].type & OP_EA))
|
||||
s = NBWLX - 2;
|
||||
else
|
||||
tcc_error("cannot infer opcode suffix");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user