summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2010-05-28 19:01:27 +0000
committerKevin Enderby <enderby@apple.com>2010-05-28 19:01:27 +0000
commit31b6c5b2f3118ba8ab9366ecf37085a26be6db97 (patch)
tree3fa3a796b7dec9a789c9efea2fbe063410b822cb /lib/Target
parent9d8d221a6864872a3b5c272e83adbf18f3c6a1af (diff)
downloadllvm-31b6c5b2f3118ba8ab9366ecf37085a26be6db97.tar.gz
llvm-31b6c5b2f3118ba8ab9366ecf37085a26be6db97.tar.bz2
llvm-31b6c5b2f3118ba8ab9366ecf37085a26be6db97.tar.xz
Fix the use of x86 control and debug registers so that the assertion failure in
getX86RegNum() does not happen. Patch by Shantonu Sen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104994 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 98975ea01b..d31c52100d 100644
--- a/lib/Target/X86/X86RegisterInfo.cpp
+++ b/lib/Target/X86/X86RegisterInfo.cpp
@@ -157,6 +157,34 @@ unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) {
case X86::GS:
return 5;
+ case X86::CR0:
+ return 0;
+ case X86::CR1:
+ return 1;
+ case X86::CR2:
+ return 2;
+ case X86::CR3:
+ return 3;
+ case X86::CR4:
+ return 4;
+
+ case X86::DR0:
+ return 0;
+ case X86::DR1:
+ return 1;
+ case X86::DR2:
+ return 2;
+ case X86::DR3:
+ return 3;
+ case X86::DR4:
+ return 4;
+ case X86::DR5:
+ return 5;
+ case X86::DR6:
+ return 6;
+ case X86::DR7:
+ return 7;
+
default:
assert(isVirtualRegister(RegNo) && "Unknown physical register!");
llvm_unreachable("Register allocator hasn't allocated reg correctly yet!");