Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 641e06c

Browse files
committed
Merging r329414:
------------------------------------------------------------------------ r329414 | ctopper | 2018-04-06 09:16:43 -0700 (Fri, 06 Apr 2018) | 3 lines [X86] Merge itineraries for CLC, CMC, and STC. These are very simple flag setting instructions that appear to only be a single uop. They're unlikely to need this separation. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_60@332565 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 65b72a1 commit 641e06c

File tree

3 files changed

+5
-9
lines changed

3 files changed

+5
-9
lines changed

lib/Target/X86/X86InstrInfo.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2119,13 +2119,13 @@ def INSL : I<0x6D, RawFrmDst, (outs), (ins dstidx32:$dst),
21192119

21202120
// Flag instructions
21212121
let SchedRW = [WriteALU] in {
2122-
def CLC : I<0xF8, RawFrm, (outs), (ins), "clc", [], IIC_CLC>;
2123-
def STC : I<0xF9, RawFrm, (outs), (ins), "stc", [], IIC_STC>;
2122+
def CLC : I<0xF8, RawFrm, (outs), (ins), "clc", [], IIC_CLC_CMC_STC>;
2123+
def STC : I<0xF9, RawFrm, (outs), (ins), "stc", [], IIC_CLC_CMC_STC>;
21242124
def CLI : I<0xFA, RawFrm, (outs), (ins), "cli", [], IIC_CLI>;
21252125
def STI : I<0xFB, RawFrm, (outs), (ins), "sti", [], IIC_STI>;
21262126
def CLD : I<0xFC, RawFrm, (outs), (ins), "cld", [], IIC_CLD>;
21272127
def STD : I<0xFD, RawFrm, (outs), (ins), "std", [], IIC_STD>;
2128-
def CMC : I<0xF5, RawFrm, (outs), (ins), "cmc", [], IIC_CMC>;
2128+
def CMC : I<0xF5, RawFrm, (outs), (ins), "cmc", [], IIC_CLC_CMC_STC>;
21292129

21302130
def CLTS : I<0x06, RawFrm, (outs), (ins), "clts", [], IIC_CLTS>, TB;
21312131
}

lib/Target/X86/X86Schedule.td

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -608,12 +608,10 @@ def IIC_CMPXCHG_8B : InstrItinClass;
608608
def IIC_CMPXCHG_16B : InstrItinClass;
609609
def IIC_LODS : InstrItinClass;
610610
def IIC_OUTS : InstrItinClass;
611-
def IIC_CLC : InstrItinClass;
611+
def IIC_CLC_CMC_STC : InstrItinClass;
612612
def IIC_CLD : InstrItinClass;
613613
def IIC_CLI : InstrItinClass;
614-
def IIC_CMC : InstrItinClass;
615614
def IIC_CLTS : InstrItinClass;
616-
def IIC_STC : InstrItinClass;
617615
def IIC_STI : InstrItinClass;
618616
def IIC_STD : InstrItinClass;
619617
def IIC_XLAT : InstrItinClass;

lib/Target/X86/X86ScheduleAtom.td

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -514,12 +514,10 @@ def AtomItineraries : ProcessorItineraries<
514514
InstrItinData<IIC_CMPXCHG_16B, [InstrStage<22, [Port0, Port1]>] >,
515515
InstrItinData<IIC_LODS, [InstrStage<2, [Port0, Port1]>] >,
516516
InstrItinData<IIC_OUTS, [InstrStage<74, [Port0, Port1]>] >,
517-
InstrItinData<IIC_CLC, [InstrStage<1, [Port0, Port1]>] >,
517+
InstrItinData<IIC_CLC_CMC_STC, [InstrStage<1, [Port0, Port1]>] >,
518518
InstrItinData<IIC_CLD, [InstrStage<3, [Port0, Port1]>] >,
519519
InstrItinData<IIC_CLI, [InstrStage<14, [Port0, Port1]>] >,
520-
InstrItinData<IIC_CMC, [InstrStage<1, [Port0, Port1]>] >,
521520
InstrItinData<IIC_CLTS, [InstrStage<33, [Port0, Port1]>] >,
522-
InstrItinData<IIC_STC, [InstrStage<1, [Port0, Port1]>] >,
523521
InstrItinData<IIC_STI, [InstrStage<17, [Port0, Port1]>] >,
524522
InstrItinData<IIC_STD, [InstrStage<21, [Port0, Port1]>] >,
525523
InstrItinData<IIC_XLAT, [InstrStage<6, [Port0, Port1]>] >,

0 commit comments

Comments
 (0)