per a suggestion by Frits van Bommel, mark all MBlaze Pseudo
authorChris Lattner <sabre@nondot.org>
Tue, 2 Nov 2010 23:57:05 +0000 (23:57 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 2 Nov 2010 23:57:05 +0000 (23:57 +0000)
instructions as isCodeGenOnly in the parent class instead of
sprinkling it throughout the .td files.

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

lib/Target/MBlaze/MBlazeInstrFPU.td
lib/Target/MBlaze/MBlazeInstrFormats.td
lib/Target/MBlaze/MBlazeInstrInfo.td

index d264a09813488a1f394f20b339c6e3232e638dc2..a26011db4a3c8f0e9290343303cbc2504f8bbf00 100644 (file)
@@ -124,7 +124,7 @@ let isAsCheapAsAMove = 1 in {
 }
 
 
-let usesCustomInserter = 1, isCodeGenOnly = 1 in {
+let usesCustomInserter = 1 in {
   def Select_FCC : MBlazePseudo<(outs GPR:$dst),
     (ins GPR:$T, GPR:$F, GPR:$CMP, i32imm:$CC),
     "; SELECT_FCC PSEUDO!",
index 71e3b12e8e3abca2190367be2c130dcfb039be94..8cd330b87f0ed4058764f20ea16907fe33abb501 100644 (file)
@@ -49,8 +49,7 @@ def FC      : Format<18>; // NOP
 
 // Generic MBlaze Format
 class MBlazeInst<bits<6> op, Format form, dag outs, dag ins, string asmstr, 
-                 list<dag> pattern, InstrItinClass itin> : Instruction 
-{
+                 list<dag> pattern, InstrItinClass itin> : Instruction {
   let Namespace = "MBlaze";
   field bits<32> Inst;
 
@@ -61,6 +60,10 @@ class MBlazeInst<bits<6> op, Format form, dag outs, dag ins, string asmstr,
   // Top 6 bits are the 'opcode' field
   let Inst{0-5} = opcode;   
   
+  // If the instruction is marked as a pseudo, set isCodeGenOnly so that the
+  // assembler and disassmbler ignore it.
+  let isCodeGenOnly = !eq(!cast<string>(form), "FPseudo");
+  
   dag OutOperandList = outs;
   dag InOperandList  = ins;
 
index d7bb4a3b0ac090778a3aef52e3a4015803f8f08b..c57c1ce04a71d103794eda35c163d5678f9fb5bd 100644 (file)
@@ -125,7 +125,7 @@ def xaddr : ComplexPattern<i32, 2, "SelectAddrRegReg", [], []>;
 //===----------------------------------------------------------------------===//
 
 // As stack alignment is always done with addiu, we need a 16-bit immediate
-let Defs = [R1], Uses = [R1], isCodeGenOnly = 1 in {
+let Defs = [R1], Uses = [R1] in {
 def ADJCALLSTACKDOWN : MBlazePseudo<(outs), (ins simm16:$amt),
                                   "#ADJCALLSTACKDOWN $amt",
                                   [(callseq_start timm:$amt)]>;
@@ -526,7 +526,7 @@ let neverHasSideEffects = 1 in {
   def NOP :  MBlazeInst< 0x20, FC, (outs), (ins), "nop    ", [], IIAlu>;
 }
 
-let usesCustomInserter = 1, isCodeGenOnly = 1 in {
+let usesCustomInserter = 1 in {
   def Select_CC : MBlazePseudo<(outs GPR:$dst),
     (ins GPR:$T, GPR:$F, GPR:$CMP, i32imm:$CC),
     "; SELECT_CC PSEUDO!",