From b69fc28e927444e053f0d446150fc606712dfc72 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 30 Oct 2010 17:51:45 +0000 Subject: [PATCH] move setcc and jcc aliases from .cpp to .td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117817 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/AsmParser/X86AsmParser.cpp | 14 ------------ lib/Target/X86/X86InstrInfo.td | 28 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index ecd47ab51d7..55225d6aef1 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -640,20 +640,6 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, .Case("popfd", "popfl") .Case("retl", Is64Bit ? "retl" : "ret") .Case("retq", Is64Bit ? "ret" : "retq") - .Case("setz", "sete") .Case("setnz", "setne") - .Case("setc", "setb") .Case("setna", "setbe") - .Case("setnae", "setb").Case("setnb", "setae") - .Case("setnbe", "seta").Case("setnc", "setae") - .Case("setng", "setle").Case("setnge", "setl") - .Case("setnl", "setge").Case("setnle", "setg") - .Case("setpe", "setp") .Case("setpo", "setnp") - .Case("jz", "je") .Case("jnz", "jne") - .Case("jc", "jb") .Case("jna", "jbe") - .Case("jnae", "jb").Case("jnb", "jae") - .Case("jnbe", "ja").Case("jnc", "jae") - .Case("jng", "jle").Case("jnge", "jl") - .Case("jnl", "jge").Case("jnle", "jg") - .Case("jpe", "jp") .Case("jpo", "jnp") // 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") diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index fd0caac4871..d38d6ff10eb 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -1276,4 +1276,32 @@ def : MnemonicAlias<"ud2a", "ud2">; def : MnemonicAlias<"verrw", "verr">; +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 +} + +// Aliases for set +defm : IntegerCondCodeMnemonicAlias<"set">; +// Aliases for j +defm : IntegerCondCodeMnemonicAlias<"j">; -- 2.34.1