diff options
| -rw-r--r-- | i386-asm.c | 2 | ||||
| -rw-r--r-- | tests/asmtest.S | 2 |
2 files changed, 3 insertions, 1 deletions
@@ -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 } diff --git a/tests/asmtest.S b/tests/asmtest.S index c19db06..59deb06 100644 --- a/tests/asmtest.S +++ b/tests/asmtest.S @@ -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 |
