diff --git a/i386-asm.c b/i386-asm.c index ad04f60..83139c7 100644 --- a/i386-asm.c +++ b/i386-asm.c @@ -614,12 +614,12 @@ static void asm_opcode(TCCState *s1, int opcode) if (opcode >= TOK_ASM_pusha && opcode <= TOK_ASM_emms) { int b; b = op0_codes[opcode - TOK_ASM_pusha]; - if (opcode == TOK_ASM_o32) { + if (opcode == TOK_ASM_code32) { if (s1->seg_size == 32) goto bad_prefix; else o32 = data32 = 1; - } else if (opcode == TOK_ASM_a32) { + } else if (opcode == TOK_ASM_data32) { if (s1->seg_size == 32) goto bad_prefix; else @@ -653,7 +653,7 @@ static void asm_opcode(TCCState *s1, int opcode) if (ops[i].type & OP_REG32) { if (s1->seg_size == 16) o32 = 1; - } else if (!ops[i].type & OP_REG32) { + } else if (!(ops[i].type & OP_REG32)) { if (s1->seg_size == 32) o32 = 1; } @@ -841,9 +841,8 @@ static void asm_opcode(TCCState *s1, int opcode) else { if (ops[i].e.sym) goto error_relocate; - } - gen_le16(ops[i].e.v); - } + gen_le16(ops[i].e.v); + } } else { if (pa->instr_type & (OPC_JMP | OPC_SHORTJMP)) { if (is_short_jmp) @@ -876,7 +875,6 @@ static void asm_opcode(TCCState *s1, int opcode) } } } - a32 = o32 = 0; }