mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 23:32:27 +00:00
[mips][sched] Split IILogic into II_AND, II_OR, II_XOR, II_ANDI, II_ORI, II_XORI
This is necessary because the classes are shared between all implementations. No functional change since the InstrItinData's have been duplicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199394 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fc17ce612f
commit
ba8f9dde32
@ -63,14 +63,11 @@ def SLTi64 : SetCC_I<"slti", setlt, simm16_64, immSExt16, GPR64Opnd>,
|
||||
SLTI_FM<0xa>;
|
||||
def SLTiu64 : SetCC_I<"sltiu", setult, simm16_64, immSExt16, GPR64Opnd>,
|
||||
SLTI_FM<0xb>;
|
||||
def ANDi64 : ArithLogicI<"andi", uimm16_64, GPR64Opnd, IILogic, immZExt16,
|
||||
and>,
|
||||
def ANDi64 : ArithLogicI<"andi", uimm16_64, GPR64Opnd, II_AND, immZExt16, and>,
|
||||
ADDI_FM<0xc>;
|
||||
def ORi64 : ArithLogicI<"ori", uimm16_64, GPR64Opnd, IILogic, immZExt16,
|
||||
or>,
|
||||
def ORi64 : ArithLogicI<"ori", uimm16_64, GPR64Opnd, II_OR, immZExt16, or>,
|
||||
ADDI_FM<0xd>;
|
||||
def XORi64 : ArithLogicI<"xori", uimm16_64, GPR64Opnd, IILogic, immZExt16,
|
||||
xor>,
|
||||
def XORi64 : ArithLogicI<"xori", uimm16_64, GPR64Opnd, II_XOR, immZExt16, xor>,
|
||||
ADDI_FM<0xe>;
|
||||
def LUi64 : LoadUpper<"lui", GPR64Opnd, uimm16_64>, LUI_FM;
|
||||
}
|
||||
|
@ -910,13 +910,13 @@ def SLTi : MMRel, SetCC_I<"slti", setlt, simm16, immSExt16, GPR32Opnd>,
|
||||
SLTI_FM<0xa>;
|
||||
def SLTiu : MMRel, SetCC_I<"sltiu", setult, simm16, immSExt16, GPR32Opnd>,
|
||||
SLTI_FM<0xb>;
|
||||
def ANDi : MMRel, ArithLogicI<"andi", uimm16, GPR32Opnd, IILogic, immZExt16,
|
||||
def ANDi : MMRel, ArithLogicI<"andi", uimm16, GPR32Opnd, II_ANDI, immZExt16,
|
||||
and>,
|
||||
ADDI_FM<0xc>;
|
||||
def ORi : MMRel, ArithLogicI<"ori", uimm16, GPR32Opnd, IILogic, immZExt16,
|
||||
def ORi : MMRel, ArithLogicI<"ori", uimm16, GPR32Opnd, II_ORI, immZExt16,
|
||||
or>,
|
||||
ADDI_FM<0xd>;
|
||||
def XORi : MMRel, ArithLogicI<"xori", uimm16, GPR32Opnd, IILogic, immZExt16,
|
||||
def XORi : MMRel, ArithLogicI<"xori", uimm16, GPR32Opnd, II_XORI, immZExt16,
|
||||
xor>,
|
||||
ADDI_FM<0xe>;
|
||||
def LUi : MMRel, LoadUpper<"lui", GPR32Opnd, uimm16>, LUI_FM;
|
||||
@ -933,11 +933,11 @@ def ADD : MMRel, ArithLogicR<"add", GPR32Opnd>, ADD_FM<0, 0x20>;
|
||||
def SUB : MMRel, ArithLogicR<"sub", GPR32Opnd>, ADD_FM<0, 0x22>;
|
||||
def SLT : MMRel, SetCC_R<"slt", setlt, GPR32Opnd>, ADD_FM<0, 0x2a>;
|
||||
def SLTu : MMRel, SetCC_R<"sltu", setult, GPR32Opnd>, ADD_FM<0, 0x2b>;
|
||||
def AND : MMRel, ArithLogicR<"and", GPR32Opnd, 1, IILogic, and>,
|
||||
def AND : MMRel, ArithLogicR<"and", GPR32Opnd, 1, II_AND, and>,
|
||||
ADD_FM<0, 0x24>;
|
||||
def OR : MMRel, ArithLogicR<"or", GPR32Opnd, 1, IILogic, or>,
|
||||
def OR : MMRel, ArithLogicR<"or", GPR32Opnd, 1, II_OR, or>,
|
||||
ADD_FM<0, 0x25>;
|
||||
def XOR : MMRel, ArithLogicR<"xor", GPR32Opnd, 1, IILogic, xor>,
|
||||
def XOR : MMRel, ArithLogicR<"xor", GPR32Opnd, 1, II_XOR, xor>,
|
||||
ADD_FM<0, 0x26>;
|
||||
def NOR : MMRel, LogicNOR<"nor", GPR32Opnd>, ADD_FM<0, 0x27>;
|
||||
|
||||
|
@ -17,7 +17,6 @@ def IMULDIV : FuncUnit;
|
||||
// Instruction Itinerary classes used for Mips
|
||||
//===----------------------------------------------------------------------===//
|
||||
def IIAlu : InstrItinClass;
|
||||
def IILogic : InstrItinClass;
|
||||
def IILoad : InstrItinClass;
|
||||
def IIStore : InstrItinClass;
|
||||
def IIXfer : InstrItinClass;
|
||||
@ -48,6 +47,7 @@ def II_ADDI : InstrItinClass;
|
||||
def II_ADDIU : InstrItinClass;
|
||||
def II_ADDU : InstrItinClass;
|
||||
def II_AND : InstrItinClass;
|
||||
def II_ANDI : InstrItinClass;
|
||||
def II_CLO : InstrItinClass;
|
||||
def II_CLZ : InstrItinClass;
|
||||
def II_DADDIU : InstrItinClass;
|
||||
@ -84,6 +84,7 @@ def II_SRL : InstrItinClass;
|
||||
def II_SRLV : InstrItinClass;
|
||||
def II_SUBU : InstrItinClass;
|
||||
def II_XOR : InstrItinClass;
|
||||
def II_XORI : InstrItinClass;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Mips Generic instruction itineraries.
|
||||
@ -125,7 +126,9 @@ def MipsGenericItineraries : ProcessorItineraries<[ALU, IMULDIV], [], [
|
||||
InstrItinData<II_RDHWR , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<II_SUBU , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<II_XOR , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<IILogic , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<II_ANDI , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<II_ORI , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<II_XORI , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<IILoad , [InstrStage<3, [ALU]>]>,
|
||||
InstrItinData<IIStore , [InstrStage<1, [ALU]>]>,
|
||||
InstrItinData<IIXfer , [InstrStage<2, [ALU]>]>,
|
||||
|
Loading…
x
Reference in New Issue
Block a user