From c2b942acf6008ac822c21722ac7ec84264d10bef Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 22 Sep 2010 04:56:20 +0000 Subject: [PATCH] add the missing aliases for fp stack cmovs, rdar://8456391 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114531 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/AsmParser/X86AsmParser.cpp | 6 ++++++ test/MC/AsmParser/X86/x86_instructions.s | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 4fbe7f68e6d..6826223fd8c 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -685,6 +685,12 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, .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") + .Case("fcmovnae", "fcmovb") + .Case("fcmovna", "fcmovbe") + .Case("fcmovae", "fcmovnb") .Case("fwait", "wait") .Case("movzx", "movzb") // FIXME: Not correct. .Case("fildq", "fildll") diff --git a/test/MC/AsmParser/X86/x86_instructions.s b/test/MC/AsmParser/X86/x86_instructions.s index a37af85b858..cfea1bde9e3 100644 --- a/test/MC/AsmParser/X86/x86_instructions.s +++ b/test/MC/AsmParser/X86/x86_instructions.s @@ -319,3 +319,20 @@ fstp (%eax) // rdar://8456364 // CHECK: movw %cs, %ax mov %CS, %ax + +// rdar://8456391 +fcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) +fcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) +fcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) +fcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) + +fcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) +fcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) +fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) +fcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) + +fcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) +fcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) + +fcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) +fcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) -- 2.11.0