Skip to content

Commit 4bf6078

Browse files
committed
[mips][sched] Split IIFadd into II_ADD_[DS], II_SUB_[DS]
No functional change since the InstrItinData's have been duplicated. llvm-svn: 199732
1 parent bea1caf commit 4bf6078

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

llvm/lib/Target/Mips/MicroMipsInstrFPU.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
let isCodeGenOnly = 1, Predicates = [InMicroMips] in {
2-
def FADD_S_MM : MMRel, ADDS_FT<"add.s", FGR32Opnd, IIFadd, 1, fadd>,
2+
def FADD_S_MM : MMRel, ADDS_FT<"add.s", FGR32Opnd, II_ADD_S, 1, fadd>,
33
ADDS_FM_MM<0, 0x30>;
44
def FDIV_S_MM : MMRel, ADDS_FT<"div.s", FGR32Opnd, IIFdivSingle, 0, fdiv>,
55
ADDS_FM_MM<0, 0xf0>;
66
def FMUL_S_MM : MMRel, ADDS_FT<"mul.s", FGR32Opnd, IIFmulSingle, 1, fmul>,
77
ADDS_FM_MM<0, 0xb0>;
8-
def FSUB_S_MM : MMRel, ADDS_FT<"sub.s", FGR32Opnd, IIFadd, 0, fsub>,
8+
def FSUB_S_MM : MMRel, ADDS_FT<"sub.s", FGR32Opnd, II_SUB_S, 0, fsub>,
99
ADDS_FM_MM<0, 0x70>;
1010

11-
def FADD_MM : MMRel, ADDS_FT<"add.d", AFGR64Opnd, IIFadd, 1, fadd>,
11+
def FADD_MM : MMRel, ADDS_FT<"add.d", AFGR64Opnd, II_ADD_D, 1, fadd>,
1212
ADDS_FM_MM<1, 0x30>;
1313
def FDIV_MM : MMRel, ADDS_FT<"div.d", AFGR64Opnd, IIFdivDouble, 0, fdiv>,
1414
ADDS_FM_MM<1, 0xf0>;
1515
def FMUL_MM : MMRel, ADDS_FT<"mul.d", AFGR64Opnd, IIFmulDouble, 1, fmul>,
1616
ADDS_FM_MM<1, 0xb0>;
17-
def FSUB_MM : MMRel, ADDS_FT<"sub.d", AFGR64Opnd, IIFadd, 0, fsub>,
17+
def FSUB_MM : MMRel, ADDS_FT<"sub.d", AFGR64Opnd, II_SUB_D, 0, fsub>,
1818
ADDS_FM_MM<1, 0x70>;
1919

2020
def LWC1_MM : MMRel, LW_FT<"lwc1", FGR32Opnd, IIFLoad, load>, LW_FM_MM<0x27>;

llvm/lib/Target/Mips/MipsInstrFPU.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,18 +419,18 @@ let Predicates = [IsFP64bit, HasStdEnc], DecoderNamespace="Mips64" in {
419419
}
420420

421421
/// Floating-point Aritmetic
422-
def FADD_S : MMRel, ADDS_FT<"add.s", FGR32Opnd, IIFadd, 1, fadd>,
422+
def FADD_S : MMRel, ADDS_FT<"add.s", FGR32Opnd, II_ADD_S, 1, fadd>,
423423
ADDS_FM<0x00, 16>;
424-
defm FADD : ADDS_M<"add.d", IIFadd, 1, fadd>, ADDS_FM<0x00, 17>;
424+
defm FADD : ADDS_M<"add.d", II_ADD_D, 1, fadd>, ADDS_FM<0x00, 17>;
425425
def FDIV_S : MMRel, ADDS_FT<"div.s", FGR32Opnd, IIFdivSingle, 0, fdiv>,
426426
ADDS_FM<0x03, 16>;
427427
defm FDIV : ADDS_M<"div.d", IIFdivDouble, 0, fdiv>, ADDS_FM<0x03, 17>;
428428
def FMUL_S : MMRel, ADDS_FT<"mul.s", FGR32Opnd, IIFmulSingle, 1, fmul>,
429429
ADDS_FM<0x02, 16>;
430430
defm FMUL : ADDS_M<"mul.d", IIFmulDouble, 1, fmul>, ADDS_FM<0x02, 17>;
431-
def FSUB_S : MMRel, ADDS_FT<"sub.s", FGR32Opnd, IIFadd, 0, fsub>,
431+
def FSUB_S : MMRel, ADDS_FT<"sub.s", FGR32Opnd, II_SUB_S, 0, fsub>,
432432
ADDS_FM<0x01, 16>;
433-
defm FSUB : ADDS_M<"sub.d", IIFadd, 0, fsub>, ADDS_FM<0x01, 17>;
433+
defm FSUB : ADDS_M<"sub.d", II_SUB_D, 0, fsub>, ADDS_FM<0x01, 17>;
434434

435435
let Predicates = [HasMips32r2, HasStdEnc] in {
436436
def MADD_S : MMRel, MADDS_FT<"madd.s", FGR32Opnd, IIFmulSingle, fadd>,

llvm/lib/Target/Mips/MipsSchedule.td

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ def IIAlu : InstrItinClass;
2020
def IILoad : InstrItinClass;
2121
def IIStore : InstrItinClass;
2222
def IIBranch : InstrItinClass;
23-
def IIFadd : InstrItinClass;
2423
def IIFmulSingle : InstrItinClass;
2524
def IIFmulDouble : InstrItinClass;
2625
def IIFdivSingle : InstrItinClass;
@@ -37,6 +36,8 @@ def II_ABS : InstrItinClass;
3736
def II_ADDI : InstrItinClass;
3837
def II_ADDIU : InstrItinClass;
3938
def II_ADDU : InstrItinClass;
39+
def II_ADD_D : InstrItinClass;
40+
def II_ADD_S : InstrItinClass;
4041
def II_AND : InstrItinClass;
4142
def II_ANDI : InstrItinClass;
4243
def II_CEIL : InstrItinClass;
@@ -112,6 +113,8 @@ def II_SRAV : InstrItinClass;
112113
def II_SRL : InstrItinClass;
113114
def II_SRLV : InstrItinClass;
114115
def II_SUBU : InstrItinClass;
116+
def II_SUB_D : InstrItinClass;
117+
def II_SUB_S : InstrItinClass;
115118
def II_TRUNC : InstrItinClass;
116119
def II_XOR : InstrItinClass;
117120
def II_XORI : InstrItinClass;
@@ -200,7 +203,10 @@ def MipsGenericItineraries : ProcessorItineraries<[ALU, IMULDIV], [], [
200203
InstrItinData<II_MOVZ_S , [InstrStage<2, [ALU]>]>,
201204
InstrItinData<II_C_CC_S , [InstrStage<3, [ALU]>]>,
202205
InstrItinData<II_C_CC_D , [InstrStage<3, [ALU]>]>,
203-
InstrItinData<IIFadd , [InstrStage<4, [ALU]>]>,
206+
InstrItinData<II_ADD_D , [InstrStage<4, [ALU]>]>,
207+
InstrItinData<II_ADD_S , [InstrStage<4, [ALU]>]>,
208+
InstrItinData<II_SUB_D , [InstrStage<4, [ALU]>]>,
209+
InstrItinData<II_SUB_S , [InstrStage<4, [ALU]>]>,
204210
InstrItinData<IIFmulSingle , [InstrStage<7, [ALU]>]>,
205211
InstrItinData<IIFmulDouble , [InstrStage<8, [ALU]>]>,
206212
InstrItinData<IIFdivSingle , [InstrStage<23, [ALU]>]>,

0 commit comments

Comments
 (0)