summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/Mips16ISelLowering.cpp
diff options
context:
space:
mode:
authorReed Kotler <rkotler@mips.com>2013-03-14 22:02:09 +0000
committerReed Kotler <rkotler@mips.com>2013-03-14 22:02:09 +0000
commitf8b0a08b6a2e2f4eacdb05eae9a8dd704b692b55 (patch)
tree25aa7428b49afe5ffeacb34559b95ca0922803f0 /lib/Target/Mips/Mips16ISelLowering.cpp
parentc184a5f4cad9415ee93ff6d24da2ed676573b61c (diff)
downloadllvm-f8b0a08b6a2e2f4eacdb05eae9a8dd704b692b55.tar.gz
llvm-f8b0a08b6a2e2f4eacdb05eae9a8dd704b692b55.tar.bz2
llvm-f8b0a08b6a2e2f4eacdb05eae9a8dd704b692b55.tar.xz
Add a new method which enables one to change register classes.
See the Mips16ISetLowering.cpp patch to see a use of this. For now now the extra code in Mips16ISetLowering.cpp is a nop but is used for test purposes. Mips32 registers are setup and then removed and then the Mips16 registers are setup. Normally you need to add register classes and then call computeRegisterProperties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/Mips16ISelLowering.cpp')
-rw-r--r--lib/Target/Mips/Mips16ISelLowering.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/Mips/Mips16ISelLowering.cpp b/lib/Target/Mips/Mips16ISelLowering.cpp
index 6de62cfab3..23eb5375ac 100644
--- a/lib/Target/Mips/Mips16ISelLowering.cpp
+++ b/lib/Target/Mips/Mips16ISelLowering.cpp
@@ -39,6 +39,14 @@ namespace {
Mips16TargetLowering::Mips16TargetLowering(MipsTargetMachine &TM)
: MipsTargetLowering(TM) {
+ //
+ // set up as if mips32 and then revert so we can test the mechanism
+ // for switching
+ addRegisterClass(MVT::i32, &Mips::CPURegsRegClass);
+ addRegisterClass(MVT::f32, &Mips::FGR32RegClass);
+ computeRegisterProperties();
+ clearRegisterClasses();
+
// Set up the register classes
addRegisterClass(MVT::i32, &Mips::CPU16RegsRegClass);