diff options
-rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h | 1 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrControl.td | 12 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrFPStack.td | 8 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 15 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrSystem.td | 76 | ||||
-rw-r--r-- | llvm/test/MC/Disassembler/X86/intel-syntax-32.txt | 8 | ||||
-rw-r--r-- | llvm/test/MC/Disassembler/X86/intel-syntax.txt | 6 | ||||
-rw-r--r-- | llvm/test/MC/X86/intel-syntax.s | 4 | ||||
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 10 |
10 files changed, 66 insertions, 75 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index b9d254e0e67..576629fce89 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1760,7 +1760,6 @@ bool X86AsmParser::ParseIntelMemoryOperandSize(unsigned &Size) { .Cases("XMMWORD", "xmmword", 128) .Cases("YMMWORD", "ymmword", 256) .Cases("ZMMWORD", "zmmword", 512) - .Cases("OPAQUE", "opaque", -1U) // needs to be non-zero, but doesn't matter .Default(0); if (Size) { const AsmToken &Tok = Lex(); // Eat operand size (e.g., byte, word). diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h index fdef8a85657..c8e1f0dbf8b 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h @@ -49,7 +49,6 @@ public: } void printopaquemem(const MCInst *MI, unsigned OpNo, raw_ostream &O) { - O << "opaque ptr "; printMemReference(MI, OpNo, O); } diff --git a/llvm/lib/Target/X86/X86InstrControl.td b/llvm/lib/Target/X86/X86InstrControl.td index 5fc5d5dc1d2..aacfcd71b80 100644 --- a/llvm/lib/Target/X86/X86InstrControl.td +++ b/llvm/lib/Target/X86/X86InstrControl.td @@ -177,13 +177,13 @@ let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in { "ljmp{l}\t$seg, $off", []>, OpSize32, Sched<[WriteJump]>; } - def FARJMP64 : RI<0xFF, MRM5m, (outs), (ins opaque80mem:$dst), + def FARJMP64 : RI<0xFF, MRM5m, (outs), (ins opaquemem:$dst), "ljmp{q}\t{*}$dst", []>, Sched<[WriteJump]>, Requires<[In64BitMode]>; let AsmVariantName = "att" in - def FARJMP16m : I<0xFF, MRM5m, (outs), (ins opaque32mem:$dst), + def FARJMP16m : I<0xFF, MRM5m, (outs), (ins opaquemem:$dst), "ljmp{w}\t{*}$dst", []>, OpSize16, Sched<[WriteJumpLd]>; - def FARJMP32m : I<0xFF, MRM5m, (outs), (ins opaque48mem:$dst), + def FARJMP32m : I<0xFF, MRM5m, (outs), (ins opaquemem:$dst), "{l}jmp{l}\t{*}$dst", []>, OpSize32, Sched<[WriteJumpLd]>; } @@ -256,9 +256,9 @@ let isCall = 1 in OpSize32, Sched<[WriteJump]>; } - def FARCALL16m : I<0xFF, MRM3m, (outs), (ins opaque32mem:$dst), + def FARCALL16m : I<0xFF, MRM3m, (outs), (ins opaquemem:$dst), "lcall{w}\t{*}$dst", []>, OpSize16, Sched<[WriteJumpLd]>; - def FARCALL32m : I<0xFF, MRM3m, (outs), (ins opaque48mem:$dst), + def FARCALL32m : I<0xFF, MRM3m, (outs), (ins opaquemem:$dst), "{l}call{l}\t{*}$dst", []>, OpSize32, Sched<[WriteJumpLd]>; } @@ -334,7 +334,7 @@ let isCall = 1, Uses = [RSP, SSP], SchedRW = [WriteJump] in { Requires<[In64BitMode,FavorMemIndirectCall]>, NOTRACK; } - def FARCALL64 : RI<0xFF, MRM3m, (outs), (ins opaque80mem:$dst), + def FARCALL64 : RI<0xFF, MRM3m, (outs), (ins opaquemem:$dst), "lcall{q}\t{*}$dst", []>; } diff --git a/llvm/lib/Target/X86/X86InstrFPStack.td b/llvm/lib/Target/X86/X86InstrFPStack.td index e8701be06e9..57493408fef 100644 --- a/llvm/lib/Target/X86/X86InstrFPStack.td +++ b/llvm/lib/Target/X86/X86InstrFPStack.td @@ -669,16 +669,16 @@ def FSCALE : I<0xD9, MRM_FD, (outs), (ins), "fscale", []>; def FCOMPP : I<0xDE, MRM_D9, (outs), (ins), "fcompp", []>; } // Defs = [FPSW] -def FXSAVE : I<0xAE, MRM0m, (outs), (ins opaque512mem:$dst), +def FXSAVE : I<0xAE, MRM0m, (outs), (ins opaquemem:$dst), "fxsave\t$dst", [(int_x86_fxsave addr:$dst)]>, TB, Requires<[HasFXSR]>; -def FXSAVE64 : RI<0xAE, MRM0m, (outs), (ins opaque512mem:$dst), +def FXSAVE64 : RI<0xAE, MRM0m, (outs), (ins opaquemem:$dst), "fxsave64\t$dst", [(int_x86_fxsave64 addr:$dst)]>, TB, Requires<[HasFXSR, In64BitMode]>; -def FXRSTOR : I<0xAE, MRM1m, (outs), (ins opaque512mem:$src), +def FXRSTOR : I<0xAE, MRM1m, (outs), (ins opaquemem:$src), "fxrstor\t$src", [(int_x86_fxrstor addr:$src)]>, TB, Requires<[HasFXSR]>; -def FXRSTOR64 : RI<0xAE, MRM1m, (outs), (ins opaque512mem:$src), +def FXRSTOR64 : RI<0xAE, MRM1m, (outs), (ins opaquemem:$src), "fxrstor64\t$src", [(int_x86_fxrstor64 addr:$src)]>, TB, Requires<[HasFXSR, In64BitMode]>; } // SchedRW diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 44fa9706f7f..30294e7d513 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -378,10 +378,9 @@ class X86VMemOperand<RegisterClass RC, string printMethod, def anymem : X86MemOperand<"printanymem">; -def opaque32mem : X86MemOperand<"printopaquemem">; -def opaque48mem : X86MemOperand<"printopaquemem">; -def opaque80mem : X86MemOperand<"printopaquemem">; -def opaque512mem : X86MemOperand<"printopaquemem">; +// FIXME: Right now we allow any size during parsing, but we might want to +// restrict to only unsized memory. +def opaquemem : X86MemOperand<"printopaquemem">; def i8mem : X86MemOperand<"printi8mem", X86Mem8AsmOperand>; def i16mem : X86MemOperand<"printi16mem", X86Mem16AsmOperand>; @@ -3165,12 +3164,12 @@ def : InstAlias<"fnstsw" , (FNSTSW16r), 0>; // this is compatible with what GAS does. def : InstAlias<"lcall\t$seg, $off", (FARCALL32i i32imm:$off, i16imm:$seg), 0>, Requires<[In32BitMode]>; def : InstAlias<"ljmp\t$seg, $off", (FARJMP32i i32imm:$off, i16imm:$seg), 0>, Requires<[In32BitMode]>; -def : InstAlias<"lcall\t{*}$dst", (FARCALL32m opaque48mem:$dst), 0>, Requires<[Not16BitMode]>; -def : InstAlias<"ljmp\t{*}$dst", (FARJMP32m opaque48mem:$dst), 0>, Requires<[Not16BitMode]>; +def : InstAlias<"lcall\t{*}$dst", (FARCALL32m opaquemem:$dst), 0>, Requires<[Not16BitMode]>; +def : InstAlias<"ljmp\t{*}$dst", (FARJMP32m opaquemem:$dst), 0>, Requires<[Not16BitMode]>; def : InstAlias<"lcall\t$seg, $off", (FARCALL16i i16imm:$off, i16imm:$seg), 0>, Requires<[In16BitMode]>; def : InstAlias<"ljmp\t$seg, $off", (FARJMP16i i16imm:$off, i16imm:$seg), 0>, Requires<[In16BitMode]>; -def : InstAlias<"lcall\t{*}$dst", (FARCALL16m opaque32mem:$dst), 0>, Requires<[In16BitMode]>; -def : InstAlias<"ljmp\t{*}$dst", (FARJMP16m opaque32mem:$dst), 0>, Requires<[In16BitMode]>; +def : InstAlias<"lcall\t{*}$dst", (FARCALL16m opaquemem:$dst), 0>, Requires<[In16BitMode]>; +def : InstAlias<"ljmp\t{*}$dst", (FARJMP16m opaquemem:$dst), 0>, Requires<[In16BitMode]>; def : InstAlias<"jmp\t{*}$dst", (JMP64m i64mem:$dst), 0, "att">, Requires<[In64BitMode]>; def : InstAlias<"jmp\t{*}$dst", (JMP32m i32mem:$dst), 0, "att">, Requires<[In32BitMode]>; diff --git a/llvm/lib/Target/X86/X86InstrSystem.td b/llvm/lib/Target/X86/X86InstrSystem.td index 7d833b5231a..5cc71eb2376 100644 --- a/llvm/lib/Target/X86/X86InstrSystem.td +++ b/llvm/lib/Target/X86/X86InstrSystem.td @@ -309,41 +309,41 @@ def POPGS32 : I<0xa9, RawFrm, (outs), (ins), "pop{l}\t{%gs|gs}", []>, TB, OpSize32, Requires<[Not64BitMode]>; def POPGS64 : I<0xa9, RawFrm, (outs), (ins), "pop{q}\t{%gs|gs}", []>, TB, OpSize32, Requires<[In64BitMode]>; - -def LDS16rm : I<0xc5, MRMSrcMem, (outs GR16:$dst), (ins opaque32mem:$src), + +def LDS16rm : I<0xc5, MRMSrcMem, (outs GR16:$dst), (ins opaquemem:$src), "lds{w}\t{$src, $dst|$dst, $src}", []>, OpSize16, Requires<[Not64BitMode]>; -def LDS32rm : I<0xc5, MRMSrcMem, (outs GR32:$dst), (ins opaque48mem:$src), +def LDS32rm : I<0xc5, MRMSrcMem, (outs GR32:$dst), (ins opaquemem:$src), "lds{l}\t{$src, $dst|$dst, $src}", []>, OpSize32, Requires<[Not64BitMode]>; -def LSS16rm : I<0xb2, MRMSrcMem, (outs GR16:$dst), (ins opaque32mem:$src), +def LSS16rm : I<0xb2, MRMSrcMem, (outs GR16:$dst), (ins opaquemem:$src), "lss{w}\t{$src, $dst|$dst, $src}", []>, TB, OpSize16; -def LSS32rm : I<0xb2, MRMSrcMem, (outs GR32:$dst), (ins opaque48mem:$src), +def LSS32rm : I<0xb2, MRMSrcMem, (outs GR32:$dst), (ins opaquemem:$src), "lss{l}\t{$src, $dst|$dst, $src}", []>, TB, OpSize32; -def LSS64rm : RI<0xb2, MRMSrcMem, (outs GR64:$dst), (ins opaque80mem:$src), +def LSS64rm : RI<0xb2, MRMSrcMem, (outs GR64:$dst), (ins opaquemem:$src), "lss{q}\t{$src, $dst|$dst, $src}", []>, TB; -def LES16rm : I<0xc4, MRMSrcMem, (outs GR16:$dst), (ins opaque32mem:$src), +def LES16rm : I<0xc4, MRMSrcMem, (outs GR16:$dst), (ins opaquemem:$src), "les{w}\t{$src, $dst|$dst, $src}", []>, OpSize16, Requires<[Not64BitMode]>; -def LES32rm : I<0xc4, MRMSrcMem, (outs GR32:$dst), (ins opaque48mem:$src), +def LES32rm : I<0xc4, MRMSrcMem, (outs GR32:$dst), (ins opaquemem:$src), "les{l}\t{$src, $dst|$dst, $src}", []>, OpSize32, Requires<[Not64BitMode]>; -def LFS16rm : I<0xb4, MRMSrcMem, (outs GR16:$dst), (ins opaque32mem:$src), +def LFS16rm : I<0xb4, MRMSrcMem, (outs GR16:$dst), (ins opaquemem:$src), "lfs{w}\t{$src, $dst|$dst, $src}", []>, TB, OpSize16; -def LFS32rm : I<0xb4, MRMSrcMem, (outs GR32:$dst), (ins opaque48mem:$src), +def LFS32rm : I<0xb4, MRMSrcMem, (outs GR32:$dst), (ins opaquemem:$src), "lfs{l}\t{$src, $dst|$dst, $src}", []>, TB, OpSize32; -def LFS64rm : RI<0xb4, MRMSrcMem, (outs GR64:$dst), (ins opaque80mem:$src), +def LFS64rm : RI<0xb4, MRMSrcMem, (outs GR64:$dst), (ins opaquemem:$src), "lfs{q}\t{$src, $dst|$dst, $src}", []>, TB; -def LGS16rm : I<0xb5, MRMSrcMem, (outs GR16:$dst), (ins opaque32mem:$src), +def LGS16rm : I<0xb5, MRMSrcMem, (outs GR16:$dst), (ins opaquemem:$src), "lgs{w}\t{$src, $dst|$dst, $src}", []>, TB, OpSize16; -def LGS32rm : I<0xb5, MRMSrcMem, (outs GR32:$dst), (ins opaque48mem:$src), +def LGS32rm : I<0xb5, MRMSrcMem, (outs GR32:$dst), (ins opaquemem:$src), "lgs{l}\t{$src, $dst|$dst, $src}", []>, TB, OpSize32; -def LGS64rm : RI<0xb5, MRMSrcMem, (outs GR64:$dst), (ins opaque80mem:$src), +def LGS64rm : RI<0xb5, MRMSrcMem, (outs GR64:$dst), (ins opaquemem:$src), "lgs{q}\t{$src, $dst|$dst, $src}", []>, TB; def VERRr : I<0x00, MRM4r, (outs), (ins GR16:$seg), "verr\t$seg", []>, TB; @@ -358,17 +358,17 @@ def VERWm : I<0x00, MRM5m, (outs), (ins i16mem:$seg), "verw\t$seg", []>, TB; // Descriptor-table support instructions let SchedRW = [WriteSystem] in { -def SGDT16m : I<0x01, MRM0m, (outs), (ins opaque48mem:$dst), +def SGDT16m : I<0x01, MRM0m, (outs), (ins opaquemem:$dst), "sgdtw\t$dst", []>, TB, OpSize16, Requires<[Not64BitMode]>; -def SGDT32m : I<0x01, MRM0m, (outs), (ins opaque48mem:$dst), +def SGDT32m : I<0x01, MRM0m, (outs), (ins opaquemem:$dst), "sgdt{l|d}\t$dst", []>, OpSize32, TB, Requires <[Not64BitMode]>; -def SGDT64m : I<0x01, MRM0m, (outs), (ins opaque80mem:$dst), +def SGDT64m : I<0x01, MRM0m, (outs), (ins opaquemem:$dst), "sgdt{q}\t$dst", []>, TB, Requires <[In64BitMode]>; -def SIDT16m : I<0x01, MRM1m, (outs), (ins opaque48mem:$dst), +def SIDT16m : I<0x01, MRM1m, (outs), (ins opaquemem:$dst), "sidtw\t$dst", []>, TB, OpSize16, Requires<[Not64BitMode]>; -def SIDT32m : I<0x01, MRM1m, (outs), (ins opaque48mem:$dst), +def SIDT32m : I<0x01, MRM1m, (outs), (ins opaquemem:$dst), "sidt{l|d}\t$dst", []>, OpSize32, TB, Requires <[Not64BitMode]>; -def SIDT64m : I<0x01, MRM1m, (outs), (ins opaque80mem:$dst), +def SIDT64m : I<0x01, MRM1m, (outs), (ins opaquemem:$dst), "sidt{q}\t$dst", []>, TB, Requires <[In64BitMode]>; def SLDT16r : I<0x00, MRM0r, (outs GR16:$dst), (ins), "sldt{w}\t$dst", []>, TB, OpSize16; @@ -383,17 +383,17 @@ def SLDT32r : I<0x00, MRM0r, (outs GR32:$dst), (ins), def SLDT64r : RI<0x00, MRM0r, (outs GR64:$dst), (ins), "sldt{q}\t$dst", []>, TB, Requires<[In64BitMode]>; -def LGDT16m : I<0x01, MRM2m, (outs), (ins opaque48mem:$src), +def LGDT16m : I<0x01, MRM2m, (outs), (ins opaquemem:$src), "lgdtw\t$src", []>, TB, OpSize16, Requires<[Not64BitMode]>; -def LGDT32m : I<0x01, MRM2m, (outs), (ins opaque48mem:$src), +def LGDT32m : I<0x01, MRM2m, (outs), (ins opaquemem:$src), "lgdt{l|d}\t$src", []>, OpSize32, TB, Requires<[Not64BitMode]>; -def LGDT64m : I<0x01, MRM2m, (outs), (ins opaque80mem:$src), +def LGDT64m : I<0x01, MRM2m, (outs), (ins opaquemem:$src), "lgdt{q}\t$src", []>, TB, Requires<[In64BitMode]>; -def LIDT16m : I<0x01, MRM3m, (outs), (ins opaque48mem:$src), +def LIDT16m : I<0x01, MRM3m, (outs), (ins opaquemem:$src), "lidtw\t$src", []>, TB, OpSize16, Requires<[Not64BitMode]>; -def LIDT32m : I<0x01, MRM3m, (outs), (ins opaque48mem:$src), +def LIDT32m : I<0x01, MRM3m, (outs), (ins opaquemem:$src), "lidt{l|d}\t$src", []>, OpSize32, TB, Requires<[Not64BitMode]>; -def LIDT64m : I<0x01, MRM3m, (outs), (ins opaque80mem:$src), +def LIDT64m : I<0x01, MRM3m, (outs), (ins opaquemem:$src), "lidt{q}\t$src", []>, TB, Requires<[In64BitMode]>; def LLDT16r : I<0x00, MRM2r, (outs), (ins GR16:$src), "lldt{w}\t$src", []>, TB; @@ -522,40 +522,40 @@ let Uses = [EDX, EAX, ECX] in } // HasXSAVE let Uses = [EDX, EAX] in { -def XSAVE : I<0xAE, MRM4m, (outs), (ins opaque512mem:$dst), +def XSAVE : I<0xAE, MRM4m, (outs), (ins opaquemem:$dst), "xsave\t$dst", [(int_x86_xsave addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVE]>; -def XSAVE64 : RI<0xAE, MRM4m, (outs), (ins opaque512mem:$dst), +def XSAVE64 : RI<0xAE, MRM4m, (outs), (ins opaquemem:$dst), "xsave64\t$dst", [(int_x86_xsave64 addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVE, In64BitMode]>; -def XRSTOR : I<0xAE, MRM5m, (outs), (ins opaque512mem:$dst), +def XRSTOR : I<0xAE, MRM5m, (outs), (ins opaquemem:$dst), "xrstor\t$dst", [(int_x86_xrstor addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVE]>; -def XRSTOR64 : RI<0xAE, MRM5m, (outs), (ins opaque512mem:$dst), +def XRSTOR64 : RI<0xAE, MRM5m, (outs), (ins opaquemem:$dst), "xrstor64\t$dst", [(int_x86_xrstor64 addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVE, In64BitMode]>; -def XSAVEOPT : I<0xAE, MRM6m, (outs), (ins opaque512mem:$dst), +def XSAVEOPT : I<0xAE, MRM6m, (outs), (ins opaquemem:$dst), "xsaveopt\t$dst", [(int_x86_xsaveopt addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVEOPT]>; -def XSAVEOPT64 : RI<0xAE, MRM6m, (outs), (ins opaque512mem:$dst), +def XSAVEOPT64 : RI<0xAE, MRM6m, (outs), (ins opaquemem:$dst), "xsaveopt64\t$dst", [(int_x86_xsaveopt64 addr:$dst, EDX, EAX)]>, PS, Requires<[HasXSAVEOPT, In64BitMode]>; -def XSAVEC : I<0xC7, MRM4m, (outs), (ins opaque512mem:$dst), +def XSAVEC : I<0xC7, MRM4m, (outs), (ins opaquemem:$dst), "xsavec\t$dst", [(int_x86_xsavec addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVEC]>; -def XSAVEC64 : RI<0xC7, MRM4m, (outs), (ins opaque512mem:$dst), +def XSAVEC64 : RI<0xC7, MRM4m, (outs), (ins opaquemem:$dst), "xsavec64\t$dst", [(int_x86_xsavec64 addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVEC, In64BitMode]>; -def XSAVES : I<0xC7, MRM5m, (outs), (ins opaque512mem:$dst), +def XSAVES : I<0xC7, MRM5m, (outs), (ins opaquemem:$dst), "xsaves\t$dst", [(int_x86_xsaves addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVES]>; -def XSAVES64 : RI<0xC7, MRM5m, (outs), (ins opaque512mem:$dst), +def XSAVES64 : RI<0xC7, MRM5m, (outs), (ins opaquemem:$dst), "xsaves64\t$dst", [(int_x86_xsaves64 addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVE, In64BitMode]>; -def XRSTORS : I<0xC7, MRM3m, (outs), (ins opaque512mem:$dst), +def XRSTORS : I<0xC7, MRM3m, (outs), (ins opaquemem:$dst), "xrstors\t$dst", [(int_x86_xrstors addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVES]>; -def XRSTORS64 : RI<0xC7, MRM3m, (outs), (ins opaque512mem:$dst), +def XRSTORS64 : RI<0xC7, MRM3m, (outs), (ins opaquemem:$dst), "xrstors64\t$dst", [(int_x86_xrstors64 addr:$dst, EDX, EAX)]>, TB, Requires<[HasXSAVES, In64BitMode]>; } // Uses diff --git a/llvm/test/MC/Disassembler/X86/intel-syntax-32.txt b/llvm/test/MC/Disassembler/X86/intel-syntax-32.txt index b47c8dbf0b6..e12e1f46992 100644 --- a/llvm/test/MC/Disassembler/X86/intel-syntax-32.txt +++ b/llvm/test/MC/Disassembler/X86/intel-syntax-32.txt @@ -1,15 +1,15 @@ # RUN: llvm-mc --disassemble %s -triple=i386 --output-asm-variant=1 | FileCheck %s -# CHECK: sgdtd opaque ptr [eax] +# CHECK: sgdtd [eax] 0x0f 0x01 0x00 -# CHECK: sidtd opaque ptr [eax] +# CHECK: sidtd [eax] 0x0f 0x01 0x08 -# CHECK: lgdtd opaque ptr [eax] +# CHECK: lgdtd [eax] 0x0f 0x01 0x10 -# CHECK: lidtd opaque ptr [eax] +# CHECK: lidtd [eax] 0x0f 0x01 0x18 # CHECK: mov al, byte ptr [878082192] diff --git a/llvm/test/MC/Disassembler/X86/intel-syntax.txt b/llvm/test/MC/Disassembler/X86/intel-syntax.txt index 17d9d53e418..d2f2490c79e 100644 --- a/llvm/test/MC/Disassembler/X86/intel-syntax.txt +++ b/llvm/test/MC/Disassembler/X86/intel-syntax.txt @@ -114,13 +114,13 @@ # CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8 0xc4 0x02 0x39 0x90 0x14 0x4f -# CHECK: xsave64 opaque ptr [rax] +# CHECK: xsave64 [rax] 0x48 0x0f 0xae 0x20 -# CHECK: xrstor64 opaque ptr [rax] +# CHECK: xrstor64 [rax] 0x48 0x0f 0xae 0x28 -# CHECK: xsaveopt64 opaque ptr [rax] +# CHECK: xsaveopt64 [rax] 0x48 0x0f 0xae 0x30 # CHECK: movabs al, byte ptr [-6066930261531658096] diff --git a/llvm/test/MC/X86/intel-syntax.s b/llvm/test/MC/X86/intel-syntax.s index aae21e0639a..ee78e71f0fc 100644 --- a/llvm/test/MC/X86/intel-syntax.s +++ b/llvm/test/MC/X86/intel-syntax.s @@ -664,8 +664,8 @@ fdivr ST(1) // CHECK: fxsave64 (%rax) // CHECK: fxrstor64 (%rax) -fxsave64 opaque ptr [rax] -fxrstor64 opaque ptr [rax] +fxsave64 [rax] +fxrstor64 [rax] .bss .globl _g0 diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index 80ebaa317e7..1fb4cc4ee9f 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -850,10 +850,7 @@ OperandType RecognizableInstr::typeFromString(const std::string &s, TYPE("VR64", TYPE_MM64) TYPE("i64imm", TYPE_IMM) TYPE("anymem", TYPE_M) - TYPE("opaque32mem", TYPE_M) - TYPE("opaque48mem", TYPE_M) - TYPE("opaque80mem", TYPE_M) - TYPE("opaque512mem", TYPE_M) + TYPE("opaquemem", TYPE_M) TYPE("SEGMENT_REG", TYPE_SEGMENTREG) TYPE("DEBUG_REG", TYPE_DEBUGREG) TYPE("CONTROL_REG", TYPE_CONTROLREG) @@ -1085,10 +1082,7 @@ RecognizableInstr::memoryEncodingFromString(const std::string &s, ENCODING("lea64_32mem", ENCODING_RM) ENCODING("lea64mem", ENCODING_RM) ENCODING("anymem", ENCODING_RM) - ENCODING("opaque32mem", ENCODING_RM) - ENCODING("opaque48mem", ENCODING_RM) - ENCODING("opaque80mem", ENCODING_RM) - ENCODING("opaque512mem", ENCODING_RM) + ENCODING("opaquemem", ENCODING_RM) ENCODING("vx64mem", ENCODING_VSIB) ENCODING("vx128mem", ENCODING_VSIB) ENCODING("vx256mem", ENCODING_VSIB) |