diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-10-30 17:36:36 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-10-30 17:36:36 +0000 |
| commit | ba7b4fea97a15b38c1d359c93d3319326d78c1b7 (patch) | |
| tree | 1f75324be3326fc3b71b7e30dfa22c88eed3f70a /llvm/lib/Target | |
| parent | 4ab36ba72652a843093dca8ce4f7bec493d8654c (diff) | |
| download | bcm5719-llvm-ba7b4fea97a15b38c1d359c93d3319326d78c1b7.tar.gz bcm5719-llvm-ba7b4fea97a15b38c1d359c93d3319326d78c1b7.zip | |
implement (and document!) the first kind of MC assembler alias, which
just remaps one mnemonic to another. Convert a few of the X86 aliases
from .cpp to .td code.
llvm-svn: 117815
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 23 |
2 files changed, 23 insertions, 15 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 4a8a63e2847..0666414b511 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -632,17 +632,6 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, .Case("repe", "rep") .Case("repz", "rep") .Case("repnz", "repne") - .Case("iret", "iretl") - .Case("sysret", "sysretl") - .Case("cbw", "cbtw") - .Case("cwd", "cwtd") - .Case("cdq", "cltd") - .Case("cwde", "cwtl") - .Case("cdqe", "cltq") - .Case("smovb", "movsb") - .Case("smovw", "movsw") - .Case("smovl", "movsl") - .Case("smovq", "movsq") .Case("push", Is64Bit ? "pushq" : "pushl") .Case("pop", Is64Bit ? "popq" : "popl") .Case("pushf", Is64Bit ? "pushfq" : "pushfl") @@ -704,14 +693,10 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, .Case("movzx", "movzb") // FIXME: Not correct. .Case("fildq", "fildll") .Case("fcompi", "fcomip") - .Case("fucompi", "fucomip") - .Case("fldcww", "fldcw") .Case("fnstcww", "fnstcw") .Case("fstcww", "fstcw") .Case("fnstsww", "fnstsw") .Case("fstsww", "fstsw") - .Case("verrw", "verr") - .Case("ud2a", "ud2") .Default(Name); // FIXME: Hack to recognize cmp<comparison code>{ss,sd,ps,pd}. diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 86e06164732..fd0caac4871 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -1254,3 +1254,26 @@ include "X86InstrSystem.td" // Compiler Pseudo Instructions and Pat Patterns include "X86InstrCompiler.td" +//===----------------------------------------------------------------------===// +// Assembler Aliases +//===----------------------------------------------------------------------===// + +def : MnemonicAlias<"iret", "iretl">; +def : MnemonicAlias<"sysret", "sysretl">; +def : MnemonicAlias<"cbw", "cbtw">; +def : MnemonicAlias<"cwd", "cwtd">; +def : MnemonicAlias<"cdq", "cltd">; +def : MnemonicAlias<"cwde", "cwtl">; +def : MnemonicAlias<"cdqe", "cltq">; +def : MnemonicAlias<"smovb", "movsb">; +def : MnemonicAlias<"smovw", "movsw">; +def : MnemonicAlias<"smovl", "movsl">; +def : MnemonicAlias<"smovq", "movsq">; + +def : MnemonicAlias<"fldcww", "fldcw">; +def : MnemonicAlias<"fucompi", "fucomip">; +def : MnemonicAlias<"ud2a", "ud2">; +def : MnemonicAlias<"verrw", "verr">; + + + |

