diff options
author | Kevin Enderby <enderby@apple.com> | 2010-10-27 02:53:04 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2010-10-27 02:53:04 +0000 |
commit | 5a378076a44ef3f507b91aa8e7715fabaec42074 (patch) | |
tree | f44e0fb5843bbe3d4eda70a4a79d216740faa024 | |
parent | f4630ecc3f2b80440b2d9e59add56a3b422de684 (diff) |
Another tweak to X86 instructions to add the missing flex instruction (without
the wait prefix).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117434 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 3 | ||||
-rw-r--r-- | test/MC/X86/x86-32.s | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 2890cb1dee..8cc5b693f1 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1196,7 +1196,7 @@ MatchAndEmitInstruction(SMLoc IDLoc, // FIXME: This should be replaced with a real .td file alias mechanism. if (Op->getToken() == "fstsw" || Op->getToken() == "fstcw" || Op->getToken() == "finit" || Op->getToken() == "fsave" || - Op->getToken() == "fstenv") { + Op->getToken() == "fstenv" || Op->getToken() == "fclex") { MCInst Inst; Inst.setOpcode(X86::WAIT); Out.EmitInstruction(Inst); @@ -1208,6 +1208,7 @@ MatchAndEmitInstruction(SMLoc IDLoc, .Case("fstcw", "fnstcw") .Case("fstenv", "fnstenv") .Case("fstsw", "fnstsw") + .Case("fclex", "fnclex") .Default(0); assert(Repl && "Unknown wait-prefixed instruction"); delete Operands[0]; diff --git a/test/MC/X86/x86-32.s b/test/MC/X86/x86-32.s index 590f9681c3..27df93626e 100644 --- a/test/MC/X86/x86-32.s +++ b/test/MC/X86/x86-32.s @@ -774,3 +774,11 @@ pshufw $90, %mm4, %mm0 // CHECK: verr 32493 // CHECK: encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00] verr 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fclex + +// CHECK: fnclex +// CHECK: encoding: [0xdb,0xe2] + fnclex |