x86-asm: Accept all 32bit immediates

In particular don't care if they're signed or unsigned, they're all
acceptable as immediates.
master
Michael Matz 2016-08-24 17:50:23 +02:00
parent 372f4b6a4e
commit e7ef087598
2 changed files with 3 additions and 1 deletions

View File

@ -423,7 +423,7 @@ static void parse_operand(TCCState *s1, Operand *op)
if (op->e.v == (uint16_t)op->e.v)
op->type |= OP_IM16;
#ifdef TCC_TARGET_X86_64
if (op->e.v != (int32_t)op->e.v)
if (op->e.v != (int32_t)op->e.v && op->e.v != (uint32_t)op->e.v)
op->type = OP_IM64;
#endif
}

View File

@ -49,6 +49,8 @@ movw %ax, 0x100(%ebx,%edx,2)
movw $0x1122,%si
movl $0x112233,%edx
movl $0x80000000, %esi
movl $-0x7fffffff, %edi
#ifdef __x86_64__
mov $0x11223344,%rbx
movq $0x11223344,%rbx