summaryrefslogtreecommitdiffstats
path: root/lib/Target/X86
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-29 20:31:52 +0000
committerChris Lattner <sabre@nondot.org>2009-07-29 20:31:52 +0000
commit1937700fa5dce81f6c36c9314786a04f1bc99279 (patch)
tree32ee499ddd00d0df27a59cdd085b5afab4c6f632 /lib/Target/X86
parent80ab2a83805a1005679ba97d308219b460bd6a4d (diff)
downloadexternal_llvm-1937700fa5dce81f6c36c9314786a04f1bc99279.zip
external_llvm-1937700fa5dce81f6c36c9314786a04f1bc99279.tar.gz
external_llvm-1937700fa5dce81f6c36c9314786a04f1bc99279.tar.bz2
Give getPointerRegClass() a "kind" value so that targets can
support multiple different pointer register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77501 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86')
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp9
-rw-r--r--lib/Target/X86/X86RegisterInfo.h2
2 files changed, 5 insertions, 6 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index bf523dd..e5d563c 100644
--- a/lib/Target/X86/X86RegisterInfo.cpp
+++ b/lib/Target/X86/X86RegisterInfo.cpp
@@ -245,12 +245,11 @@ X86RegisterInfo::getMatchingSuperRegClass(const TargetRegisterClass *A,
return 0;
}
-const TargetRegisterClass *X86RegisterInfo::getPointerRegClass() const {
- const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>();
- if (Subtarget->is64Bit())
+const TargetRegisterClass *X86RegisterInfo::
+getPointerRegClass(unsigned Kind) const {
+ if (TM.getSubtarget<X86Subtarget>().is64Bit())
return &X86::GR64RegClass;
- else
- return &X86::GR32RegClass;
+ return &X86::GR32RegClass;
}
const TargetRegisterClass *
diff --git a/lib/Target/X86/X86RegisterInfo.h b/lib/Target/X86/X86RegisterInfo.h
index 702e69d..f6c119d 100644
--- a/lib/Target/X86/X86RegisterInfo.h
+++ b/lib/Target/X86/X86RegisterInfo.h
@@ -102,7 +102,7 @@ public:
/// getPointerRegClass - Returns a TargetRegisterClass used for pointer
/// values.
- const TargetRegisterClass *getPointerRegClass() const;
+ const TargetRegisterClass *getPointerRegClass(unsigned Kind = 0) const;
/// getCrossCopyRegClass - Returns a legal register class to copy a register
/// in the specified class to or from. Returns NULL if it is possible to copy