diff options
author | Chris Lattner <sabre@nondot.org> | 2010-10-30 17:56:50 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-10-30 17:56:50 +0000 |
commit | 8cb441c9e0acb8b2c68229a783785fc9c3942ec8 (patch) | |
tree | b25a72b5f819b04594249361030a65bfe08f4b92 | |
parent | b69fc28e927444e053f0d446150fc606712dfc72 (diff) |
move cmov aliases to .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117818 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 29 | ||||
-rw-r--r-- | lib/Target/X86/X86InstrInfo.td | 45 |
2 files changed, 25 insertions, 49 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 55225d6aef..a131539814 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -640,35 +640,6 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, .Case("popfd", "popfl") .Case("retl", Is64Bit ? "retl" : "ret") .Case("retq", Is64Bit ? "ret" : "retq") - // Condition code aliases for 16-bit, 32-bit, 64-bit and unspec operands. - .Case("cmovcw", "cmovbw") .Case("cmovcl", "cmovbl") - .Case("cmovcq", "cmovbq") .Case("cmovc", "cmovb") - .Case("cmovnaew","cmovbw") .Case("cmovnael","cmovbl") - .Case("cmovnaeq","cmovbq") .Case("cmovnae", "cmovb") - .Case("cmovnaw", "cmovbew").Case("cmovnal", "cmovbel") - .Case("cmovnaq", "cmovbeq").Case("cmovna", "cmovbe") - .Case("cmovnbw", "cmovaew").Case("cmovnbl", "cmovael") - .Case("cmovnbq", "cmovaeq").Case("cmovnb", "cmovae") - .Case("cmovnbew","cmovaw") .Case("cmovnbel","cmoval") - .Case("cmovnbeq","cmovaq") .Case("cmovnbe", "cmova") - .Case("cmovncw", "cmovaew").Case("cmovncl", "cmovael") - .Case("cmovncq", "cmovaeq").Case("cmovnc", "cmovae") - .Case("cmovngw", "cmovlew").Case("cmovngl", "cmovlel") - .Case("cmovngq", "cmovleq").Case("cmovng", "cmovle") - .Case("cmovnw", "cmovgew").Case("cmovnl", "cmovgel") - .Case("cmovnq", "cmovgeq").Case("cmovn", "cmovge") - .Case("cmovngw", "cmovlew").Case("cmovngl", "cmovlel") - .Case("cmovngq", "cmovleq").Case("cmovng", "cmovle") - .Case("cmovngew","cmovlw") .Case("cmovngel","cmovll") - .Case("cmovngeq","cmovlq") .Case("cmovnge", "cmovl") - .Case("cmovnlw", "cmovgew").Case("cmovnll", "cmovgel") - .Case("cmovnlq", "cmovgeq").Case("cmovnl", "cmovge") - .Case("cmovnlew","cmovgw") .Case("cmovnlel","cmovgl") - .Case("cmovnleq","cmovgq") .Case("cmovnle", "cmovg") - .Case("cmovnzw", "cmovnew").Case("cmovnzl", "cmovnel") - .Case("cmovnzq", "cmovneq").Case("cmovnz", "cmovne") - .Case("cmovzw", "cmovew") .Case("cmovzl", "cmovel") - .Case("cmovzq", "cmoveq") .Case("cmovz", "cmove") // Floating point stack cmov aliases. .Case("fcmovz", "fcmove") .Case("fcmova", "fcmovnbe") diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index d38d6ff10e..b5168f8dc5 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -1276,32 +1276,37 @@ def : MnemonicAlias<"ud2a", "ud2">; def : MnemonicAlias<"verrw", "verr">; -class CondCodeAlias<string Prefix, string OldCond, string NewCond> - : MnemonicAlias<!strconcat(Prefix, OldCond), !strconcat(Prefix, NewCond)>; +class CondCodeAlias<string Prefix,string Suffix, string OldCond, string NewCond> + : MnemonicAlias<!strconcat(Prefix, OldCond, Suffix), + !strconcat(Prefix, NewCond, Suffix)>; /// IntegerCondCodeMnemonicAlias - This multiclass defines a bunch of /// MnemonicAlias's that canonicalize the condition code in a mnemonic, for /// example "setz" -> "sete". -multiclass IntegerCondCodeMnemonicAlias<string Prefix> { - def C : CondCodeAlias<Prefix, "c", "b">; // setc -> setb - def Z : CondCodeAlias<Prefix, "z" , "e">; // setz -> sete - def NA : CondCodeAlias<Prefix, "na", "be">; // setna -> setbe - def NB : CondCodeAlias<Prefix, "nb", "ae">; // setnb -> setae - def NC : CondCodeAlias<Prefix, "nc", "ae">; // setnc -> setae - def NG : CondCodeAlias<Prefix, "ng", "le">; // setng -> setle - def NL : CondCodeAlias<Prefix, "nl", "ge">; // setnl -> setge - def NZ : CondCodeAlias<Prefix, "nz", "ne">; // setnz -> setne - def PE : CondCodeAlias<Prefix, "pe", "p">; // setpe -> setp - def PO : CondCodeAlias<Prefix, "po", "np">; // setpo -> setnp - - def NAE : CondCodeAlias<Prefix, "nae", "b">; // setnae -> setb - def NBE : CondCodeAlias<Prefix, "nbe", "a">; // setnbe -> seta - def NGE : CondCodeAlias<Prefix, "nge", "l">; // setnge -> setl - def NLE : CondCodeAlias<Prefix, "nle", "g">; // setnle -> setg +multiclass IntegerCondCodeMnemonicAlias<string Prefix, string Suffix> { + def C : CondCodeAlias<Prefix, Suffix, "c", "b">; // setc -> setb + def Z : CondCodeAlias<Prefix, Suffix, "z" , "e">; // setz -> sete + def NA : CondCodeAlias<Prefix, Suffix, "na", "be">; // setna -> setbe + def NB : CondCodeAlias<Prefix, Suffix, "nb", "ae">; // setnb -> setae + def NC : CondCodeAlias<Prefix, Suffix, "nc", "ae">; // setnc -> setae + def NG : CondCodeAlias<Prefix, Suffix, "ng", "le">; // setng -> setle + def NL : CondCodeAlias<Prefix, Suffix, "nl", "ge">; // setnl -> setge + def NZ : CondCodeAlias<Prefix, Suffix, "nz", "ne">; // setnz -> setne + def PE : CondCodeAlias<Prefix, Suffix, "pe", "p">; // setpe -> setp + def PO : CondCodeAlias<Prefix, Suffix, "po", "np">; // setpo -> setnp + + def NAE : CondCodeAlias<Prefix, Suffix, "nae", "b">; // setnae -> setb + def NBE : CondCodeAlias<Prefix, Suffix, "nbe", "a">; // setnbe -> seta + def NGE : CondCodeAlias<Prefix, Suffix, "nge", "l">; // setnge -> setl + def NLE : CondCodeAlias<Prefix, Suffix, "nle", "g">; // setnle -> setg } // Aliases for set<CC> -defm : IntegerCondCodeMnemonicAlias<"set">; +defm : IntegerCondCodeMnemonicAlias<"set", "">; // Aliases for j<CC> -defm : IntegerCondCodeMnemonicAlias<"j">; +defm : IntegerCondCodeMnemonicAlias<"j", "">; +// Aliases for cmov<CC>{w,l,q} +defm : IntegerCondCodeMnemonicAlias<"cmov", "w">; +defm : IntegerCondCodeMnemonicAlias<"cmov", "l">; +defm : IntegerCondCodeMnemonicAlias<"cmov", "q">; |