X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FCellSPU%2FSPUInstrFormats.td;h=bdbe2552dcdd154b38853a08b98812a3d41ff904;hb=4d83b79c76044e3f3cefd2a6c1b0b792266935c8;hp=f423dfa342075706e50fd3f16c7bb1b08b64c760;hpb=a59d469e9b31087f0f045bcb5d1a154c963be9b7;p=oota-llvm.git diff --git a/lib/Target/CellSPU/SPUInstrFormats.td b/lib/Target/CellSPU/SPUInstrFormats.td index f423dfa3420..bdbe2552dcd 100644 --- a/lib/Target/CellSPU/SPUInstrFormats.td +++ b/lib/Target/CellSPU/SPUInstrFormats.td @@ -120,9 +120,8 @@ class CVTIntFPForm opcode, dag OOL, dag IOL, string asmstr, } let RA = 0 in { - class BICondForm opcode, string asmstr, list pattern> - : RRForm + class BICondForm opcode, dag OOL, dag IOL, string asmstr, list pattern> + : RRForm { } let RT = 0 in { @@ -291,6 +290,31 @@ class RR_Int_v4i32 opcode, string opc, InstrItinClass itin, class Pseudo pattern> : SPUInstr { + let OutOperandList = OOL; + let InOperandList = IOL; + let AsmString = asmstr; let Pattern = pattern; let Inst{31-0} = 0; } + +//===----------------------------------------------------------------------===// +// Branch hint formats +//===----------------------------------------------------------------------===// +// For hbrr and hbra +class HBI16Form opcode, dag IOL, string asmstr> + : Instruction { + field bits<32> Inst; + bits<16>i16; + bits<9>RO; + + let Namespace = "SPU"; + let InOperandList = IOL; + let OutOperandList = (outs); //no output + let AsmString = asmstr; + let Itinerary = BranchHints; + + let Inst{0-6} = opcode; + let Inst{7-8} = RO{8-7}; + let Inst{9-24} = i16; + let Inst{25-31} = RO{6-0}; +}