aboutsummaryrefslogtreecommitdiff
path: root/i386-tok.h
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-08-04 04:47:03 +0200
committerMichael Matz <matz@suse.de>2016-12-15 17:47:09 +0100
commit4cb7047f0fa000c83ca5592d9a64a2cbc96d8fdc (patch)
treefedcfc9ddf7dc61c2405a2ef7acb3bcc7c19937d /i386-tok.h
parent8765826465e6103d419808f78e8fc3f97218e9a6 (diff)
downloadtinycc-4cb7047f0fa000c83ca5592d9a64a2cbc96d8fdc.tar.gz
tinycc-4cb7047f0fa000c83ca5592d9a64a2cbc96d8fdc.tar.bz2
x86-64-asm: Support high registers %r8 - %r15
This requires correctly handling the REX prefix. As bonus we now also support the four 8bit registers spl,bpl,sil,dil, which are decoded as ah,ch,dh,bh in non-long-mode (and require a REX prefix as well).
Diffstat (limited to 'i386-tok.h')
-rw-r--r--i386-tok.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/i386-tok.h b/i386-tok.h
index cf65897..8c25af0 100644
--- a/i386-tok.h
+++ b/i386-tok.h
@@ -93,6 +93,14 @@
DEF_ASM(st)
DEF_ASM(rip)
+#ifdef TCC_TARGET_X86_64
+ /* The four low parts of sp/bp/si/di that exist only on
+ x86-64 (encoding aliased to ah,ch,dh,dh when not using REX). */
+ DEF_ASM(spl)
+ DEF_ASM(bpl)
+ DEF_ASM(sil)
+ DEF_ASM(dil)
+#endif
/* generic two operands */
DEF_BWLX(mov)