aboutsummaryrefslogtreecommitdiff
path: root/i386-asm.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-10-03 20:39:48 +0200
committerMichael Matz <matz@suse.de>2016-12-15 17:47:12 +0100
commit0b0e64c2c95487815a8d252ab833e5eccfb5aeb5 (patch)
tree603b818fdd9b37a0c803bc082beab32e73e24bb1 /i386-asm.c
parent7ab35c6265425a81c14bc313eb4c834985a73ddb (diff)
downloadtinycc-0b0e64c2c95487815a8d252ab833e5eccfb5aeb5.tar.gz
tinycc-0b0e64c2c95487815a8d252ab833e5eccfb5aeb5.tar.bz2
x86-asm: Correct register size for pointer ops
A pointer is 64 bit as well, so it needs a full register for register operands.
Diffstat (limited to 'i386-asm.c')
-rw-r--r--i386-asm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/i386-asm.c b/i386-asm.c
index 1d1ebcf..16b2e91 100644
--- a/i386-asm.c
+++ b/i386-asm.c
@@ -1493,7 +1493,8 @@ ST_FUNC void subst_asm_operand(CString *add_str,
else if ((sv->type.t & VT_BTYPE) == VT_SHORT)
size = 2;
#ifdef TCC_TARGET_X86_64
- else if ((sv->type.t & VT_BTYPE) == VT_LLONG)
+ else if ((sv->type.t & VT_BTYPE) == VT_LLONG ||
+ (sv->type.t & VT_BTYPE) == VT_PTR)
size = 8;
#endif
else