[llvm] [Mips] Introduce ABI-specific register names and accessors (PR #224284)

Jiaxun Yang via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 01:23:24 PDT 2026


================
@@ -26,18 +26,129 @@ cl::opt<bool>
                    cl::init(false));
 
 namespace {
-static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};
-
-static const MCPhysReg Mips64IntRegs[8] = {
+static constexpr MCPhysReg O32IntRegs[] = {Mips::A0, Mips::A1, Mips::A2,
+                                           Mips::A3};
+static constexpr MCPhysReg NABIIntRegs[] = {Mips::A0, Mips::A1, Mips::A2,
+                                            Mips::A3, Mips::T0, Mips::T1,
+                                            Mips::T2, Mips::T3};
+static constexpr MCPhysReg Mips64IntRegs[] = {
     Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,
     Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};
+
+struct GPR {
+  MCPhysReg Reg32;
+  MCPhysReg Reg64;
+};
+
+static constexpr GPR OABITempRegs[] = {
+    {Mips::T0, Mips::T0_64}, {Mips::T1, Mips::T1_64}, {Mips::T2, Mips::T2_64},
+    {Mips::T3, Mips::T3_64}, {Mips::T4, Mips::T4_64}, {Mips::T5, Mips::T5_64},
+    {Mips::T6, Mips::T6_64}, {Mips::T7, Mips::T7_64}, {Mips::T8, Mips::T8_64},
+    {Mips::T9, Mips::T9_64},
+};
+
+static constexpr GPR NABITempRegs[] = {
+    {Mips::T4, Mips::T4_64},
+    {Mips::T5, Mips::T5_64},
+    {Mips::T6, Mips::T6_64},
+    {Mips::T7, Mips::T7_64},
+    {Mips::NoRegister, Mips::NoRegister},
+    {Mips::NoRegister, Mips::NoRegister},
+    {Mips::NoRegister, Mips::NoRegister},
+    {Mips::NoRegister, Mips::NoRegister},
+    {Mips::T8, Mips::T8_64},
+    {Mips::T9, Mips::T9_64},
+};
----------------
FlyGoat wrote:

Mapping between which?

https://github.com/llvm/llvm-project/pull/224284


More information about the llvm-commits mailing list