aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86RegisterInfo.cpp
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-24 00:06:39 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-07-24 00:06:39 +0000
commit3c8e1bee6399e829eda801a32158c1f52d2733ad (patch)
tree005849e58183f7cfce81b14de865a4d253339d27 /lib/Target/X86/X86RegisterInfo.cpp
parentc2723a57f35dd69bd261faaa71ee7aa05f40a87d (diff)
downloadexternal_llvm-3c8e1bee6399e829eda801a32158c1f52d2733ad.zip
external_llvm-3c8e1bee6399e829eda801a32158c1f52d2733ad.tar.gz
external_llvm-3c8e1bee6399e829eda801a32158c1f52d2733ad.tar.bz2
Support x86 "eiz" and "riz" pseudo index registers in the assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109295 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86RegisterInfo.cpp')
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 945c359..9fd41fd 100644
--- a/lib/Target/X86/X86RegisterInfo.cpp
+++ b/lib/Target/X86/X86RegisterInfo.cpp
@@ -193,6 +193,12 @@ unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) {
case X86::DR7:
return 7;
+ // Pseudo index registers are equivalent to a "none"
+ // scaled index (See Intel Manual 2A, table 2-3)
+ case X86::EIZ:
+ case X86::RIZ:
+ return 4;
+
default:
assert(isVirtualRegister(RegNo) && "Unknown physical register!");
llvm_unreachable("Register allocator hasn't allocated reg correctly yet!");