diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h | 31 | ||||
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h | 36 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrFragmentsSIMD.td | 4 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 62 |
6 files changed, 60 insertions, 97 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp index 1e986f67a35..6bd00ee76ce 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp @@ -100,7 +100,7 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI, printVPCOMMnemonic(MI, OS); if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) - printi128mem(MI, 2, OS); + printxmmwordmem(MI, 2, OS); else printOperand(MI, 2, OS); @@ -182,9 +182,9 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI, // Broadcast form. // Load size is based on W-bit as only D and Q are supported. if (Desc.TSFlags & X86II::VEX_W) - printi64mem(MI, CurOp--, OS); + printqwordmem(MI, CurOp--, OS); else - printi32mem(MI, CurOp--, OS); + printdwordmem(MI, CurOp--, OS); // Print the number of elements broadcasted. unsigned NumElts; @@ -197,11 +197,11 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI, OS << "{1to" << NumElts << "}"; } else { if (Desc.TSFlags & X86II::EVEX_L2) - printi512mem(MI, CurOp--, OS); + printzmmwordmem(MI, CurOp--, OS); else if (Desc.TSFlags & X86II::VEX_L) - printi256mem(MI, CurOp--, OS); + printymmwordmem(MI, CurOp--, OS); else - printi128mem(MI, CurOp--, OS); + printxmmwordmem(MI, CurOp--, OS); } } else { printOperand(MI, CurOp--, OS); diff --git a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h index 1f6f38abffb..498a9d17b06 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h +++ b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h @@ -53,43 +53,28 @@ public: printMemReference(MI, OpNo, O); } - void printi8mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printbytemem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi16mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi32mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printdwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi64mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printqwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi128mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printxmmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi256mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printymmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printi512mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printzmmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } - void printf32mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - printMemReference(MI, OpNo, O); - } - void printf64mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - printMemReference(MI, OpNo, O); - } - void printf80mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - printMemReference(MI, OpNo, O); - } - void printf128mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - printMemReference(MI, OpNo, O); - } - void printf256mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - printMemReference(MI, OpNo, O); - } - void printf512mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printtbytemem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printMemReference(MI, OpNo, O); } diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp index d8edf90e4cc..a7a0e02ec5f 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -84,7 +84,7 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS printOperand(MI, 1, OS); OS << ", "; if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) - printi128mem(MI, 2, OS); + printxmmwordmem(MI, 2, OS); else printOperand(MI, 2, OS); return true; @@ -172,9 +172,9 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS // Broadcast form. // Load size is based on W-bit as only D and Q are supported. if (Desc.TSFlags & X86II::VEX_W) - printi64mem(MI, CurOp++, OS); + printqwordmem(MI, CurOp++, OS); else - printi32mem(MI, CurOp++, OS); + printdwordmem(MI, CurOp++, OS); // Print the number of elements broadcasted. unsigned NumElts; @@ -187,11 +187,11 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS OS << "{1to" << NumElts << "}"; } else { if (Desc.TSFlags & X86II::EVEX_L2) - printi512mem(MI, CurOp++, OS); + printzmmwordmem(MI, CurOp++, OS); else if (Desc.TSFlags & X86II::VEX_L) - printi256mem(MI, CurOp++, OS); + printymmwordmem(MI, CurOp++, OS); else - printi128mem(MI, CurOp++, OS); + printxmmwordmem(MI, CurOp++, OS); } } else { printOperand(MI, CurOp++, OS); diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h index 1496612685c..1227bafffd0 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h @@ -55,58 +55,38 @@ public: printMemReference(MI, OpNo, O); } - void printi8mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printbytemem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "byte ptr "; printMemReference(MI, OpNo, O); } - void printi16mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "word ptr "; printMemReference(MI, OpNo, O); } - void printi32mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printdwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "dword ptr "; printMemReference(MI, OpNo, O); } - void printi64mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printqwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "qword ptr "; printMemReference(MI, OpNo, O); } - void printi128mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printxmmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "xmmword ptr "; printMemReference(MI, OpNo, O); } - void printi256mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printymmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "ymmword ptr "; printMemReference(MI, OpNo, O); } - void printi512mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printzmmwordmem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "zmmword ptr "; printMemReference(MI, OpNo, O); } - void printf32mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "dword ptr "; - printMemReference(MI, OpNo, O); - } - void printf64mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "qword ptr "; - printMemReference(MI, OpNo, O); - } - void printf80mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { + void printtbytemem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { O << "tbyte ptr "; printMemReference(MI, OpNo, O); } - void printf128mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "xmmword ptr "; - printMemReference(MI, OpNo, O); - } - void printf256mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "ymmword ptr "; - printMemReference(MI, OpNo, O); - } - void printf512mem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "zmmword ptr "; - printMemReference(MI, OpNo, O); - } void printSrcIdx8(const MCInst *MI, unsigned OpNo, raw_ostream &O) { diff --git a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td index 6154f967ae6..99252fc2a7a 100644 --- a/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td +++ b/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td @@ -682,13 +682,13 @@ def sse_load_f64 : ComplexPattern<v2f64, 5, "selectScalarSSELoad", [], SDNPWantRoot, SDNPWantParent]>; def ssmem : Operand<v4f32> { - let PrintMethod = "printf32mem"; + let PrintMethod = "printdwordmem"; let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc_nosp, i32imm, SEGMENT_REG); let ParserMatchClass = X86Mem32AsmOperand; let OperandType = "OPERAND_MEMORY"; } def sdmem : Operand<v2f64> { - let PrintMethod = "printf64mem"; + let PrintMethod = "printqwordmem"; let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc_nosp, i32imm, SEGMENT_REG); let ParserMatchClass = X86Mem64AsmOperand; let OperandType = "OPERAND_MEMORY"; diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 2069a6aa947..1fb6436d84f 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -370,37 +370,35 @@ def anymem : X86MemOperand<"printanymem">; // restrict to only unsized memory. def opaquemem : X86MemOperand<"printopaquemem">; -def i8mem : X86MemOperand<"printi8mem", X86Mem8AsmOperand>; -def i16mem : X86MemOperand<"printi16mem", X86Mem16AsmOperand>; -def i32mem : X86MemOperand<"printi32mem", X86Mem32AsmOperand>; -def i64mem : X86MemOperand<"printi64mem", X86Mem64AsmOperand>; -def i128mem : X86MemOperand<"printi128mem", X86Mem128AsmOperand>; -def i256mem : X86MemOperand<"printi256mem", X86Mem256AsmOperand>; -def i512mem : X86MemOperand<"printi512mem", X86Mem512AsmOperand>; -def f32mem : X86MemOperand<"printf32mem", X86Mem32AsmOperand>; -def f64mem : X86MemOperand<"printf64mem", X86Mem64AsmOperand>; -def f80mem : X86MemOperand<"printf80mem", X86Mem80AsmOperand>; -def f128mem : X86MemOperand<"printf128mem", X86Mem128AsmOperand>; -def f256mem : X86MemOperand<"printf256mem", X86Mem256AsmOperand>; -def f512mem : X86MemOperand<"printf512mem", X86Mem512AsmOperand>; - -def v512mem : X86VMemOperand<VR512, "printf512mem", X86Mem512AsmOperand>; +def i8mem : X86MemOperand<"printbytemem", X86Mem8AsmOperand>; +def i16mem : X86MemOperand<"printwordmem", X86Mem16AsmOperand>; +def i32mem : X86MemOperand<"printdwordmem", X86Mem32AsmOperand>; +def i64mem : X86MemOperand<"printqwordmem", X86Mem64AsmOperand>; +def i128mem : X86MemOperand<"printxmmwordmem", X86Mem128AsmOperand>; +def i256mem : X86MemOperand<"printymmwordmem", X86Mem256AsmOperand>; +def i512mem : X86MemOperand<"printzmmwordmem", X86Mem512AsmOperand>; +def f32mem : X86MemOperand<"printdwordmem", X86Mem32AsmOperand>; +def f64mem : X86MemOperand<"printqwordmem", X86Mem64AsmOperand>; +def f80mem : X86MemOperand<"printtbytemem", X86Mem80AsmOperand>; +def f128mem : X86MemOperand<"printxmmwordmem", X86Mem128AsmOperand>; +def f256mem : X86MemOperand<"printymmwordmem", X86Mem256AsmOperand>; +def f512mem : X86MemOperand<"printzmmwordmem", X86Mem512AsmOperand>; // Gather mem operands -def vx64mem : X86VMemOperand<VR128, "printi64mem", X86Mem64_RC128Operand>; -def vx128mem : X86VMemOperand<VR128, "printi128mem", X86Mem128_RC128Operand>; -def vx256mem : X86VMemOperand<VR128, "printi256mem", X86Mem256_RC128Operand>; -def vy128mem : X86VMemOperand<VR256, "printi128mem", X86Mem128_RC256Operand>; -def vy256mem : X86VMemOperand<VR256, "printi256mem", X86Mem256_RC256Operand>; - -def vx64xmem : X86VMemOperand<VR128X, "printi64mem", X86Mem64_RC128XOperand>; -def vx128xmem : X86VMemOperand<VR128X, "printi128mem", X86Mem128_RC128XOperand>; -def vx256xmem : X86VMemOperand<VR128X, "printi256mem", X86Mem256_RC128XOperand>; -def vy128xmem : X86VMemOperand<VR256X, "printi128mem", X86Mem128_RC256XOperand>; -def vy256xmem : X86VMemOperand<VR256X, "printi256mem", X86Mem256_RC256XOperand>; -def vy512xmem : X86VMemOperand<VR256X, "printi512mem", X86Mem512_RC256XOperand>; -def vz256mem : X86VMemOperand<VR512, "printi256mem", X86Mem256_RC512Operand>; -def vz512mem : X86VMemOperand<VR512, "printi512mem", X86Mem512_RC512Operand>; +def vx64mem : X86VMemOperand<VR128, "printqwordmem", X86Mem64_RC128Operand>; +def vx128mem : X86VMemOperand<VR128, "printxmmwordmem", X86Mem128_RC128Operand>; +def vx256mem : X86VMemOperand<VR128, "printymmwordmem", X86Mem256_RC128Operand>; +def vy128mem : X86VMemOperand<VR256, "printxmmwordmem", X86Mem128_RC256Operand>; +def vy256mem : X86VMemOperand<VR256, "printymmwordmem", X86Mem256_RC256Operand>; + +def vx64xmem : X86VMemOperand<VR128X, "printqwordmem", X86Mem64_RC128XOperand>; +def vx128xmem : X86VMemOperand<VR128X, "printxmmwordmem", X86Mem128_RC128XOperand>; +def vx256xmem : X86VMemOperand<VR128X, "printymmwordmem", X86Mem256_RC128XOperand>; +def vy128xmem : X86VMemOperand<VR256X, "printxmmwordmem", X86Mem128_RC256XOperand>; +def vy256xmem : X86VMemOperand<VR256X, "printymmwordmem", X86Mem256_RC256XOperand>; +def vy512xmem : X86VMemOperand<VR256X, "printzmmwordmem", X86Mem512_RC256XOperand>; +def vz256mem : X86VMemOperand<VR512, "printymmwordmem", X86Mem256_RC512Operand>; +def vz512mem : X86VMemOperand<VR512, "printzmmwordmem", X86Mem512_RC512Operand>; // A version of i8mem for use on x86-64 and x32 that uses a NOREX GPR instead // of a plain GPR, so that it doesn't potentially require a REX prefix. @@ -408,7 +406,7 @@ def ptr_rc_norex : PointerLikeRegClass<2>; def ptr_rc_norex_nosp : PointerLikeRegClass<3>; def i8mem_NOREX : Operand<iPTR> { - let PrintMethod = "printi8mem"; + let PrintMethod = "printbytemem"; let MIOperandInfo = (ops ptr_rc_norex, i8imm, ptr_rc_norex_nosp, i32imm, SEGMENT_REG); let ParserMatchClass = X86Mem8AsmOperand; @@ -423,7 +421,7 @@ def ptr_rc_tailcall : PointerLikeRegClass<4>; // allowed to use callee-saved registers since they must be scheduled // after callee-saved register are popped. def i32mem_TC : Operand<i32> { - let PrintMethod = "printi32mem"; + let PrintMethod = "printdwordmem"; let MIOperandInfo = (ops ptr_rc_tailcall, i8imm, ptr_rc_tailcall, i32imm, SEGMENT_REG); let ParserMatchClass = X86Mem32AsmOperand; @@ -434,7 +432,7 @@ def i32mem_TC : Operand<i32> { // allowed to use callee-saved registers since they must be scheduled // after callee-saved register are popped. def i64mem_TC : Operand<i64> { - let PrintMethod = "printi64mem"; + let PrintMethod = "printqwordmem"; let MIOperandInfo = (ops ptr_rc_tailcall, i8imm, ptr_rc_tailcall, i32imm, SEGMENT_REG); let ParserMatchClass = X86Mem64AsmOperand; |