mips16 fixes.
authorAkira Hatanaka <ahatanaka@mips.com>
Fri, 14 Sep 2012 03:21:56 +0000 (03:21 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Fri, 14 Sep 2012 03:21:56 +0000 (03:21 +0000)
1. Add MoveR3216
2. Correct spelling for Move32R16

Patch by Reed Kotler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163869 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/Mips16InstrInfo.cpp
lib/Target/Mips/Mips16InstrInfo.td

index ec84ad81f551f4fad75655cc129a627509eb1c9c..9248032340ea78079259550b27caa06b08121c8d 100644 (file)
@@ -62,7 +62,7 @@ void Mips16InstrInfo::copyPhysReg(MachineBasicBlock &MBB,
 
   if (Mips::CPURegsRegClass.contains(DestReg)) { // Copy to CPU Reg.
     if (Mips::CPURegsRegClass.contains(SrcReg))
-      Opc = Mips::Mov32R16;
+      Opc = Mips::Move32R16;
   }
 
   assert(Opc && "Cannot copy registers");
index 94cf984769b807acd50d030bf90b95539a794b22..692ef29c09ecc79a5a8a3671b93fd63975ca5052 100644 (file)
@@ -19,6 +19,13 @@ class FRRR16_ins<bits<2> _f, string asmstr,  InstrItinClass itin> :
   FRRR16<_f, (outs CPU16Regs:$rz), (ins CPU16Regs:$rx, CPU16Regs:$ry),
          !strconcat(asmstr, "\t$rz, $rx, $ry"), [], itin>;
 
+//
+// I8_MOVR32 instruction format (used only by the MOVR32 instructio
+//
+class FI8_MOVR3216_ins<string asmstr, InstrItinClass itin>:
+       FI8_MOVR3216<(outs CPU16Regs:$rz), (ins CPURegs:$r32),
+       !strconcat(asmstr,  "\t$rz, $r32"), [], itin>;
+
 //
 // I8_MOV32R instruction format (used only by MOV32R instruction)
 //
@@ -204,7 +211,14 @@ def LwRxRyOffMemX16: FEXT_RRI16_mem_ins<0b10011, "lw", mem16, IIAlu>;
 // Purpose: Move
 // To move the contents of a GPR to a GPR.
 //
-def Mov32R16: FI8_MOV32R16_ins<"move", IIAlu>;
+def Move32R16: FI8_MOV32R16_ins<"move", IIAlu>;
+
+//
+// Format: MOVE ry, r32 MIPS16e
+//Purpose: Move
+// To move the contents of a GPR to a GPR.
+//
+def MoveR3216: FI8_MOVR3216_ins<"move", IIAlu>;
 
 //
 // Format: NEG rx, ry MIPS16e