From 8cb441c9e0acb8b2c68229a783785fc9c3942ec8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 30 Oct 2010 17:56:50 +0000 Subject: [PATCH] move cmov aliases to .td file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117818 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/AsmParser/X86AsmParser.cpp | 29 --------------- 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 55225d6aef1..a131539814e 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 d38d6ff10eb..b5168f8dc5a 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 - : MnemonicAlias; +class CondCodeAlias + : MnemonicAlias; /// IntegerCondCodeMnemonicAlias - This multiclass defines a bunch of /// MnemonicAlias's that canonicalize the condition code in a mnemonic, for /// example "setz" -> "sete". -multiclass IntegerCondCodeMnemonicAlias { - def C : CondCodeAlias; // setc -> setb - def Z : CondCodeAlias; // setz -> sete - def NA : CondCodeAlias; // setna -> setbe - def NB : CondCodeAlias; // setnb -> setae - def NC : CondCodeAlias; // setnc -> setae - def NG : CondCodeAlias; // setng -> setle - def NL : CondCodeAlias; // setnl -> setge - def NZ : CondCodeAlias; // setnz -> setne - def PE : CondCodeAlias; // setpe -> setp - def PO : CondCodeAlias; // setpo -> setnp - - def NAE : CondCodeAlias; // setnae -> setb - def NBE : CondCodeAlias; // setnbe -> seta - def NGE : CondCodeAlias; // setnge -> setl - def NLE : CondCodeAlias; // setnle -> setg +multiclass IntegerCondCodeMnemonicAlias { + def C : CondCodeAlias; // setc -> setb + def Z : CondCodeAlias; // setz -> sete + def NA : CondCodeAlias; // setna -> setbe + def NB : CondCodeAlias; // setnb -> setae + def NC : CondCodeAlias; // setnc -> setae + def NG : CondCodeAlias; // setng -> setle + def NL : CondCodeAlias; // setnl -> setge + def NZ : CondCodeAlias; // setnz -> setne + def PE : CondCodeAlias; // setpe -> setp + def PO : CondCodeAlias; // setpo -> setnp + + def NAE : CondCodeAlias; // setnae -> setb + def NBE : CondCodeAlias; // setnbe -> seta + def NGE : CondCodeAlias; // setnge -> setl + def NLE : CondCodeAlias; // setnle -> setg } // Aliases for set -defm : IntegerCondCodeMnemonicAlias<"set">; +defm : IntegerCondCodeMnemonicAlias<"set", "">; // Aliases for j -defm : IntegerCondCodeMnemonicAlias<"j">; +defm : IntegerCondCodeMnemonicAlias<"j", "">; +// Aliases for cmov{w,l,q} +defm : IntegerCondCodeMnemonicAlias<"cmov", "w">; +defm : IntegerCondCodeMnemonicAlias<"cmov", "l">; +defm : IntegerCondCodeMnemonicAlias<"cmov", "q">; -- 2.34.1