aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/CSKY/CSKYRegisterInfo.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/CSKY/CSKYRegisterInfo.td')
-rw-r--r--llvm/lib/Target/CSKY/CSKYRegisterInfo.td14
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/Target/CSKY/CSKYRegisterInfo.td b/llvm/lib/Target/CSKY/CSKYRegisterInfo.td
index b7f4fc17166b..d12532a3c5c1 100644
--- a/llvm/lib/Target/CSKY/CSKYRegisterInfo.td
+++ b/llvm/lib/Target/CSKY/CSKYRegisterInfo.td
@@ -81,17 +81,21 @@ let RegAltNameIndices = [ABIRegAltName] in {
def R29 : CSKYReg<29, "r29", ["rtb"]>, DwarfRegNum<[29]>;
def R30 : CSKYReg<30, "r30", ["svbr"]>, DwarfRegNum<[30]>;
def R31 : CSKYReg<31, "r31", ["tls"]>, DwarfRegNum<[31]>;
- def C : CSKYReg<32, "cr0", ["psr"]>;
+
+ // Faked for GPRTuple
+ def R32 : CSKYReg<32, "r32", ["r32"]>, DwarfRegNum<[32]>;
+
+ def C : CSKYReg<33, "cr0", ["psr"]>;
}
def GPRTuple : RegisterTuples<
[sub32_0, sub32_32],
- [(add (sequence "R%u", 0, 30)), (add (sequence "R%u", 1, 31))],
+ [(add (sequence "R%u", 0, 31)), (add (sequence "R%u", 1, 32))],
[ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
- "r24", "r25", "r26", "r27", "r28", "r29", "r30"
+ "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
]>;
// Floating point registers
@@ -189,9 +193,9 @@ def FPR32 : RegisterClass<"CSKY", [f32], 32,
def sFPR32 : RegisterClass<"CSKY", [f32], 32,
(add (sequence "F%u_32", 0, 15))>;
-def FPR64 : RegisterClass<"CSKY", [f64], 64,
+def FPR64 : RegisterClass<"CSKY", [f64], 32,
(add (sequence "F%u_64", 0, 31))>;
-def sFPR64 : RegisterClass<"CSKY", [f64], 64,
+def sFPR64 : RegisterClass<"CSKY", [f64], 32,
(add (sequence "F%u_64", 0, 15))>;
def sFPR64_V : RegisterClass<"CSKY", [v2f32], 32, (add sFPR64)>;