diff options
| author | Michael Matz <matz@suse.de> | 2016-08-24 17:50:23 +0200 |
|---|---|---|
| committer | Michael Matz <matz@suse.de> | 2016-12-15 17:47:11 +0100 |
| commit | e7ef087598d74e3329a7f0b24af8430faf639606 (patch) | |
| tree | 7010bf606d47134e94dc0b51eb51353a2cad67c3 | |
| parent | 372f4b6a4ecca33191159328989dbd16d5fcc527 (diff) | |
| download | tinycc-e7ef087598d74e3329a7f0b24af8430faf639606.tar.gz tinycc-e7ef087598d74e3329a7f0b24af8430faf639606.tar.bz2 | |
x86-asm: Accept all 32bit immediates
In particular don't care if they're signed or unsigned, they're all
acceptable as immediates.
| -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 |
