]> granicus.if.org Git - llvm/commitdiff
Merging r352607 r352608 r353015 r353061 r353138 r353141 r353334 r353489
authorHans Wennborg <hans@hanshq.net>
Tue, 12 Feb 2019 10:13:48 +0000 (10:13 +0000)
committerHans Wennborg <hans@hanshq.net>
Tue, 12 Feb 2019 10:13:48 +0000 (10:13 +0000)
And re-generate expectations for a test:
$ utils/update_llc_test_checks.py --llc-binary ../build.release/bin/llc test/CodeGen/X86/x87-schedule.ll

Will also merge cfe r353142 for a clang-side test.

This merge was requested in PR40667.

------------------------------------------------------------------------
r352607 | ctopper | 2019-01-30 08:08:44 +0100 (Wed, 30 Jan 2019) | 1 line

[X86] Add FPSW as a Def on some FP instructions that were missing it.
------------------------------------------------------------------------

------------------------------------------------------------------------
r352608 | ctopper | 2019-01-30 08:33:24 +0100 (Wed, 30 Jan 2019) | 5 lines

[X86] Remove a couple places where we unnecessarily pass 0 to the EmitPriority of some FP instruction aliases. NFC

As far as I can tell we already won't emit these aliases due to an operand count check in the tablegen code. Removing these because I couldn't make sense of the inconsistency between fadd and fmul from reading the code.

I checked the AsmMatcher and AsmWriter files before and after this change and there were no differences.
------------------------------------------------------------------------

------------------------------------------------------------------------
r353015 | ctopper | 2019-02-04 05:15:10 +0100 (Mon, 04 Feb 2019) | 3 lines

[X86] Print %st(0) as %st when its implicit to the instruction. Continue printing it as %st(0) when its encoded in the instruction.

This is a step back from the change I made in r352985. This appears to be more consistent with gcc and objdump behavior.
------------------------------------------------------------------------

------------------------------------------------------------------------
r353061 | ctopper | 2019-02-04 18:28:18 +0100 (Mon, 04 Feb 2019) | 5 lines

[X86] Print all register forms of x87 fadd/fsub/fdiv/fmul as having two arguments where on is %st.

All of these instructions consume one encoded register and the other register is %st. They either write the result to %st or the encoded register. Previously we printed both arguments when the encoded register was written. And we printed one argument when the result was written to %st. For the stack popping forms the encoded register is always the destination and we didn't print both operands. This was inconsistent with gcc and objdump and just makes the output assembly code harder to read.

This patch changes things to always print both operands making us consistent with gcc and objdump. The parser should still be able to handle the single register forms just as it did before. This also matches the GNU assembler behavior.
------------------------------------------------------------------------

------------------------------------------------------------------------
r353138 | ctopper | 2019-02-05 05:48:23 +0100 (Tue, 05 Feb 2019) | 1 line

[X86] Add test case from PR40529. NFC
------------------------------------------------------------------------

------------------------------------------------------------------------
r353141 | ctopper | 2019-02-05 07:13:06 +0100 (Tue, 05 Feb 2019) | 16 lines

[X86] Connect the default fpsr and dirflag clobbers in inline assembly to the registers we have defined for them.

Summary:
We don't currently map these constraints to physical register numbers so they don't make it to the MachineIR representation of inline assembly.

This could have problems for proper dependency tracking in the machine schedulers though I don't have a test case that shows that.

Reviewers: rnk

Reviewed By: rnk

Subscribers: eraman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57641
------------------------------------------------------------------------

------------------------------------------------------------------------
r353334 | ctopper | 2019-02-06 20:50:59 +0100 (Wed, 06 Feb 2019) | 1 line

[X86] Change the CPU on the test case for pr40529.ll to really show the bug. NFC
------------------------------------------------------------------------

------------------------------------------------------------------------
r353489 | ctopper | 2019-02-08 01:44:39 +0100 (Fri, 08 Feb 2019) | 14 lines

[X86] Add FPCW as a register and start using it as an implicit use on floating point instructions.

Summary:
FPCW contains the rounding mode control which we manipulate to implement fp to integer conversion by changing the roudning mode, storing the value to the stack, and then changing the rounding mode back. Because we didn't model FPCW and its dependency chain, other instructions could be scheduled into the middle of the sequence.

This patch introduces the register and adds it as an implciit def of FLDCW and implicit use of the FP binary arithmetic instructions and store instructions. There are more instructions that need to be updated, but this is a good start. I believe this fixes at least the reduced test case from PR40529.

Reviewers: RKSimon, spatel, rnk, efriedma, andrew.w.kaylor

Subscribers: dim, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57735
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_80@353818 91177308-0d34-0410-b5e6-96231b3b80d8

52 files changed:
lib/Target/X86/AsmParser/X86AsmParser.cpp
lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
lib/Target/X86/InstPrinter/X86ATTInstPrinter.h
lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
lib/Target/X86/InstPrinter/X86IntelInstPrinter.h
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrFPStack.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86RegisterInfo.cpp
lib/Target/X86/X86RegisterInfo.td
test/CodeGen/MIR/X86/memory-operands.mir
test/CodeGen/X86/and-su.ll
test/CodeGen/X86/avx512-regcall-NoMask.ll
test/CodeGen/X86/fcmove.ll
test/CodeGen/X86/fmf-flags.ll
test/CodeGen/X86/fp-cvt.ll
test/CodeGen/X86/inline-asm-default-clobbers.ll [new file with mode: 0644]
test/CodeGen/X86/inline-asm-fpstack.ll
test/CodeGen/X86/ipra-reg-usage.ll
test/CodeGen/X86/pr13577.ll
test/CodeGen/X86/pr33349.ll
test/CodeGen/X86/pr34080.ll
test/CodeGen/X86/pr34177.ll
test/CodeGen/X86/pr40529.ll [new file with mode: 0644]
test/CodeGen/X86/scalar-fp-to-i64.ll
test/CodeGen/X86/select.ll
test/CodeGen/X86/sincos-opt.ll
test/CodeGen/X86/x87-schedule.ll
test/MC/Disassembler/X86/fp-stack.txt
test/MC/Disassembler/X86/x86-16.txt
test/MC/X86/PPRO-32.s
test/MC/X86/PPRO-64.s
test/MC/X86/X87-32.s
test/MC/X86/X87-64.s
test/MC/X86/intel-syntax-2.s
test/MC/X86/intel-syntax.s
test/MC/X86/x86-16.s
test/MC/X86/x86-32-coverage.s
test/MC/X86/x86-32.s
test/MC/X86/x86-64.s
test/tools/llvm-mca/X86/Atom/resources-x87.s
test/tools/llvm-mca/X86/BdVer2/resources-x87.s
test/tools/llvm-mca/X86/Broadwell/resources-x87.s
test/tools/llvm-mca/X86/BtVer2/resources-x87.s
test/tools/llvm-mca/X86/Generic/resources-x87.s
test/tools/llvm-mca/X86/Haswell/resources-x87.s
test/tools/llvm-mca/X86/SLM/resources-x87.s
test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
test/tools/llvm-mca/X86/Znver1/resources-x87.s
utils/TableGen/X86RecognizableInstr.cpp

index 899b50d0f78f3e58ad864fef42b43c5ad2ea3348..81391b96d126767801ed4096f142d2101d95071f 100644 (file)
@@ -1115,8 +1115,7 @@ bool X86AsmParser::ParseRegister(unsigned &RegNo,
   }
 
   // Parse "%st" as "%st(0)" and "%st(1)", which is multiple tokens.
-  if (RegNo == 0 && (Tok.getString() == "st" || Tok.getString() == "ST")) {
-    RegNo = X86::ST0;
+  if (RegNo == X86::ST0) {
     Parser.Lex(); // Eat 'st'
 
     // Check to see if we have '(4)' after %st.
index 0e861d5ddbc9d99c2e4e9f12825e56023c39e910..3a074818c762b69891e394a9c38d661c8fa6de57 100644 (file)
@@ -200,3 +200,14 @@ void X86ATTInstPrinter::printU8Imm(const MCInst *MI, unsigned Op,
   O << markup("<imm:") << '$' << formatImm(MI->getOperand(Op).getImm() & 0xff)
     << markup(">");
 }
+
+void X86ATTInstPrinter::printSTiRegOperand(const MCInst *MI, unsigned OpNo,
+                                           raw_ostream &OS) {
+  const MCOperand &Op = MI->getOperand(OpNo);
+  unsigned Reg = Op.getReg();
+  // Override the default printing to print st(0) instead st.
+  if (Reg == X86::ST0)
+    OS << markup("<reg:") << "%st(0)" << markup(">");
+  else
+    printRegName(OS, Reg);
+}
index 57422bc9a0b2a3b03166b1f7c21e19eae57f24ea..584dc9c286e60e0a5667ba5773ae02a3214b72b6 100644 (file)
@@ -44,6 +44,7 @@ public:
   void printSrcIdx(const MCInst *MI, unsigned Op, raw_ostream &O);
   void printDstIdx(const MCInst *MI, unsigned Op, raw_ostream &O);
   void printU8Imm(const MCInst *MI, unsigned Op, raw_ostream &OS);
+  void printSTiRegOperand(const MCInst *MI, unsigned OpNo, raw_ostream &OS);
 
   void printanymem(const MCInst *MI, unsigned OpNo, raw_ostream &O) {
     printMemReference(MI, OpNo, O);
index 044b715641520edb0dfc51c78d95952eca56d8d7..b31f8ab80838d9c477ba01787c4b9fc65647178d 100644 (file)
@@ -160,3 +160,14 @@ void X86IntelInstPrinter::printU8Imm(const MCInst *MI, unsigned Op,
 
   O << formatImm(MI->getOperand(Op).getImm() & 0xff);
 }
+
+void X86IntelInstPrinter::printSTiRegOperand(const MCInst *MI, unsigned OpNo,
+                                            raw_ostream &OS) {
+  const MCOperand &Op = MI->getOperand(OpNo);
+  unsigned Reg = Op.getReg();
+  // Override the default printing to print st(0) instead st.
+  if (Reg == X86::ST0)
+    OS << "st(0)";
+  else
+    printRegName(OS, Reg);
+}
index 3b34a8052becba52ae602c0675d00629e20fd0c0..fe52bd482a262d60fe716bd9a015d14d432c062e 100644 (file)
@@ -39,6 +39,7 @@ public:
   void printSrcIdx(const MCInst *MI, unsigned OpNo, raw_ostream &O);
   void printDstIdx(const MCInst *MI, unsigned OpNo, raw_ostream &O);
   void printU8Imm(const MCInst *MI, unsigned Op, raw_ostream &O);
+  void printSTiRegOperand(const MCInst *MI, unsigned OpNo, raw_ostream &OS);
 
   void printanymem(const MCInst *MI, unsigned OpNo, raw_ostream &O) {
     printMemReference(MI, OpNo, O);
index 3637562c8ec35ea25d684b51bcf38cc29523d518..f4f37a894620ed33dc546973aa5ba8fc8bc4fc94 100644 (file)
@@ -42507,6 +42507,14 @@ X86TargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI,
     if (StringRef("{flags}").equals_lower(Constraint))
       return std::make_pair(X86::EFLAGS, &X86::CCRRegClass);
 
+    // dirflag -> DF
+    if (StringRef("{dirflag}").equals_lower(Constraint))
+      return std::make_pair(X86::DF, &X86::DFCCRRegClass);
+
+    // fpsr -> FPSW
+    if (StringRef("{fpsr}").equals_lower(Constraint))
+      return std::make_pair(X86::FPSW, &X86::FPCCRRegClass);
+
     // 'A' means [ER]AX + [ER]DX.
     if (Constraint == "A") {
       if (Subtarget.is64Bit())
index 5912a31996131be5c4c581fcd8ae8835f8b38043..8e12efff77eab8679310f38d27e88c24a0343a06 100644 (file)
@@ -230,7 +230,7 @@ def _FI32m  : FPI<0xDA, fp, (outs), (ins i32mem:$src),
 } // mayLoad = 1, hasSideEffects = 1
 }
 
-let Defs = [FPSW] in {
+let Defs = [FPSW], Uses = [FPCW] in {
 // FPBinary_rr just defines pseudo-instructions, no need to set a scheduling
 // resources.
 let hasNoSchedulingInfo = 1 in {
@@ -258,42 +258,42 @@ defm DIVR: FPBinary<fdiv, MRM7m, "divr", 0>;
 } // Defs = [FPSW]
 
 class FPST0rInst<Format fp, string asm>
-  : FPI<0xD8, fp, (outs), (ins RST:$op), asm>;
+  : FPI<0xD8, fp, (outs), (ins RSTi:$op), asm>;
 class FPrST0Inst<Format fp, string asm>
-  : FPI<0xDC, fp, (outs), (ins RST:$op), asm>;
+  : FPI<0xDC, fp, (outs), (ins RSTi:$op), asm>;
 class FPrST0PInst<Format fp, string asm>
-  : FPI<0xDE, fp, (outs), (ins RST:$op), asm>;
+  : FPI<0xDE, fp, (outs), (ins RSTi:$op), asm>;
 
 // NOTE: GAS and apparently all other AT&T style assemblers have a broken notion
 // of some of the 'reverse' forms of the fsub and fdiv instructions.  As such,
 // we have to put some 'r's in and take them out of weird places.
-let SchedRW = [WriteFAdd] in {
-def ADD_FST0r   : FPST0rInst <MRM0r, "fadd\t$op">;
-def ADD_FrST0   : FPrST0Inst <MRM0r, "fadd\t{%st(0), $op|$op, st(0)}">;
-def ADD_FPrST0  : FPrST0PInst<MRM0r, "faddp\t$op">;
-def SUBR_FST0r  : FPST0rInst <MRM5r, "fsubr\t$op">;
-def SUB_FrST0   : FPrST0Inst <MRM5r, "fsub{r}\t{%st(0), $op|$op, st(0)}">;
-def SUB_FPrST0  : FPrST0PInst<MRM5r, "fsub{r}p\t$op">;
-def SUB_FST0r   : FPST0rInst <MRM4r, "fsub\t$op">;
-def SUBR_FrST0  : FPrST0Inst <MRM4r, "fsub{|r}\t{%st(0), $op|$op, st(0)}">;
-def SUBR_FPrST0 : FPrST0PInst<MRM4r, "fsub{|r}p\t$op">;
+let SchedRW = [WriteFAdd], Defs = [FPSW], Uses = [FPCW] in {
+def ADD_FST0r   : FPST0rInst <MRM0r, "fadd\t{$op, %st|st, $op}">;
+def ADD_FrST0   : FPrST0Inst <MRM0r, "fadd\t{%st, $op|$op, st}">;
+def ADD_FPrST0  : FPrST0PInst<MRM0r, "faddp\t{%st, $op|$op, st}">;
+def SUBR_FST0r  : FPST0rInst <MRM5r, "fsubr\t{$op, %st|st, $op}">;
+def SUB_FrST0   : FPrST0Inst <MRM5r, "fsub{r}\t{%st, $op|$op, st}">;
+def SUB_FPrST0  : FPrST0PInst<MRM5r, "fsub{r}p\t{%st, $op|$op, st}">;
+def SUB_FST0r   : FPST0rInst <MRM4r, "fsub\t{$op, %st|st, $op}">;
+def SUBR_FrST0  : FPrST0Inst <MRM4r, "fsub{|r}\t{%st, $op|$op, st}">;
+def SUBR_FPrST0 : FPrST0PInst<MRM4r, "fsub{|r}p\t{%st, $op|$op, st}">;
 } // SchedRW
-let SchedRW = [WriteFCom] in {
+let SchedRW = [WriteFCom], Defs = [FPSW], Uses = [FPCW] in {
 def COM_FST0r   : FPST0rInst <MRM2r, "fcom\t$op">;
 def COMP_FST0r  : FPST0rInst <MRM3r, "fcomp\t$op">;
 } // SchedRW
-let SchedRW = [WriteFMul] in {
-def MUL_FST0r   : FPST0rInst <MRM1r, "fmul\t$op">;
-def MUL_FrST0   : FPrST0Inst <MRM1r, "fmul\t{%st(0), $op|$op, st(0)}">;
-def MUL_FPrST0  : FPrST0PInst<MRM1r, "fmulp\t$op">;
+let SchedRW = [WriteFMul], Defs = [FPSW], Uses = [FPCW] in {
+def MUL_FST0r   : FPST0rInst <MRM1r, "fmul\t{$op, %st|st, $op}">;
+def MUL_FrST0   : FPrST0Inst <MRM1r, "fmul\t{%st, $op|$op, st}">;
+def MUL_FPrST0  : FPrST0PInst<MRM1r, "fmulp\t{%st, $op|$op, st}">;
 } // SchedRW
-let SchedRW = [WriteFDiv] in {
-def DIVR_FST0r  : FPST0rInst <MRM7r, "fdivr\t$op">;
-def DIV_FrST0   : FPrST0Inst <MRM7r, "fdiv{r}\t{%st(0), $op|$op, st(0)}">;
-def DIV_FPrST0  : FPrST0PInst<MRM7r, "fdiv{r}p\t$op">;
-def DIV_FST0r   : FPST0rInst <MRM6r, "fdiv\t$op">;
-def DIVR_FrST0  : FPrST0Inst <MRM6r, "fdiv{|r}\t{%st(0), $op|$op, st(0)}">;
-def DIVR_FPrST0 : FPrST0PInst<MRM6r, "fdiv{|r}p\t$op">;
+let SchedRW = [WriteFDiv], Defs = [FPSW], Uses = [FPCW] in {
+def DIVR_FST0r  : FPST0rInst <MRM7r, "fdivr\t{$op, %st|st, $op}">;
+def DIV_FrST0   : FPrST0Inst <MRM7r, "fdiv{r}\t{%st, $op|$op, st}">;
+def DIV_FPrST0  : FPrST0PInst<MRM7r, "fdiv{r}p\t{%st, $op|$op, st}">;
+def DIV_FST0r   : FPST0rInst <MRM6r, "fdiv\t{$op, %st|st, $op}">;
+def DIVR_FrST0  : FPrST0Inst <MRM6r, "fdiv{|r}\t{%st, $op|$op, st}">;
+def DIVR_FPrST0 : FPrST0PInst<MRM6r, "fdiv{|r}p\t{%st, $op|$op, st}">;
 } // SchedRW
 
 // Unary operations.
@@ -307,7 +307,7 @@ def _Fp80  : FpI_<(outs RFP80:$dst), (ins RFP80:$src), OneArgFPRW,
 def _F     : FPI<0xD9, fp, (outs), (ins), asmstring>;
 }
 
-let Defs = [FPSW] in {
+let Defs = [FPSW], Uses = [FPCW] in {
 
 let SchedRW = [WriteFSign] in {
 defm CHS : FPUnary<fneg, MRM_E0, "fchs">;
@@ -335,7 +335,7 @@ def TST_F  : FPI<0xD9, MRM_E4, (outs), (ins), "ftst">;
 
 // Versions of FP instructions that take a single memory operand.  Added for the
 //   disassembler; remove as they are included with patterns elsewhere.
-let SchedRW = [WriteFComLd] in {
+let SchedRW = [WriteFComLd], Defs = [FPSW], Uses = [FPCW] in {
 def FCOM32m  : FPI<0xD8, MRM2m, (outs), (ins f32mem:$src), "fcom{s}\t$src">;
 def FCOMP32m : FPI<0xD8, MRM3m, (outs), (ins f32mem:$src), "fcomp{s}\t$src">;
 
@@ -398,22 +398,22 @@ defm CMOVNP : FPCMov<X86_COND_NP>;
 
 let Predicates = [HasCMov] in {
 // These are not factored because there's no clean way to pass DA/DB.
-def CMOVB_F  : FPI<0xDA, MRM0r, (outs), (ins RST:$op),
-                  "fcmovb\t{$op, %st(0)|st(0), $op}">;
-def CMOVBE_F : FPI<0xDA, MRM2r, (outs), (ins RST:$op),
-                  "fcmovbe\t{$op, %st(0)|st(0), $op}">;
-def CMOVE_F  : FPI<0xDA, MRM1r, (outs), (ins RST:$op),
-                  "fcmove\t{$op, %st(0)|st(0), $op}">;
-def CMOVP_F  : FPI<0xDA, MRM3r, (outs), (ins RST:$op),
-                  "fcmovu\t{$op, %st(0)|st(0), $op}">;
-def CMOVNB_F : FPI<0xDB, MRM0r, (outs), (ins RST:$op),
-                  "fcmovnb\t{$op, %st(0)|st(0), $op}">;
-def CMOVNBE_F: FPI<0xDB, MRM2r, (outs), (ins RST:$op),
-                  "fcmovnbe\t{$op, %st(0)|st(0), $op}">;
-def CMOVNE_F : FPI<0xDB, MRM1r, (outs), (ins RST:$op),
-                  "fcmovne\t{$op, %st(0)|st(0), $op}">;
-def CMOVNP_F : FPI<0xDB, MRM3r, (outs), (ins RST:$op),
-                  "fcmovnu\t{$op, %st(0)|st(0), $op}">;
+def CMOVB_F  : FPI<0xDA, MRM0r, (outs), (ins RSTi:$op),
+                  "fcmovb\t{$op, %st|st, $op}">;
+def CMOVBE_F : FPI<0xDA, MRM2r, (outs), (ins RSTi:$op),
+                  "fcmovbe\t{$op, %st|st, $op}">;
+def CMOVE_F  : FPI<0xDA, MRM1r, (outs), (ins RSTi:$op),
+                  "fcmove\t{$op, %st|st, $op}">;
+def CMOVP_F  : FPI<0xDA, MRM3r, (outs), (ins RSTi:$op),
+                  "fcmovu\t{$op, %st|st, $op}">;
+def CMOVNB_F : FPI<0xDB, MRM0r, (outs), (ins RSTi:$op),
+                  "fcmovnb\t{$op, %st|st, $op}">;
+def CMOVNBE_F: FPI<0xDB, MRM2r, (outs), (ins RSTi:$op),
+                  "fcmovnbe\t{$op, %st|st, $op}">;
+def CMOVNE_F : FPI<0xDB, MRM1r, (outs), (ins RSTi:$op),
+                  "fcmovne\t{$op, %st|st, $op}">;
+def CMOVNP_F : FPI<0xDB, MRM3r, (outs), (ins RSTi:$op),
+                  "fcmovnu\t{$op, %st|st, $op}">;
 } // Predicates = [HasCMov]
 } // SchedRW
 
@@ -454,7 +454,7 @@ def ILD_Fp64m80: FpI_<(outs RFP80:$dst), (ins i64mem:$src), ZeroArgFP,
                   [(set RFP80:$dst, (X86fild addr:$src, i64))]>;
 } // SchedRW
 
-let SchedRW = [WriteStore] in {
+let SchedRW = [WriteStore], Uses = [FPCW] in {
 def ST_Fp32m   : FpIf32<(outs), (ins f32mem:$op, RFP32:$src), OneArgFP,
                   [(store RFP32:$src, addr:$op)]>;
 def ST_Fp64m32 : FpIf64<(outs), (ins f32mem:$op, RFP64:$src), OneArgFP,
@@ -489,7 +489,7 @@ def IST_Fp16m80  : FpI_<(outs), (ins i16mem:$op, RFP80:$src), OneArgFP, []>;
 def IST_Fp32m80  : FpI_<(outs), (ins i32mem:$op, RFP80:$src), OneArgFP, []>;
 def IST_Fp64m80  : FpI_<(outs), (ins i64mem:$op, RFP80:$src), OneArgFP, []>;
 } // mayStore
-} // SchedRW
+} // SchedRW, Uses = [FPCW]
 
 let mayLoad = 1, SchedRW = [WriteLoad] in {
 def LD_F32m   : FPI<0xD9, MRM0m, (outs), (ins f32mem:$src), "fld{s}\t$src">;
@@ -499,7 +499,7 @@ def ILD_F16m  : FPI<0xDF, MRM0m, (outs), (ins i16mem:$src), "fild{s}\t$src">;
 def ILD_F32m  : FPI<0xDB, MRM0m, (outs), (ins i32mem:$src), "fild{l}\t$src">;
 def ILD_F64m  : FPI<0xDF, MRM5m, (outs), (ins i64mem:$src), "fild{ll}\t$src">;
 }
-let mayStore = 1, SchedRW = [WriteStore] in {
+let mayStore = 1, SchedRW = [WriteStore], Uses = [FPCW] in {
 def ST_F32m   : FPI<0xD9, MRM2m, (outs), (ins f32mem:$dst), "fst{s}\t$dst">;
 def ST_F64m   : FPI<0xDD, MRM2m, (outs), (ins f64mem:$dst), "fst{l}\t$dst">;
 def ST_FP32m  : FPI<0xD9, MRM3m, (outs), (ins f32mem:$dst), "fstp{s}\t$dst">;
@@ -513,7 +513,7 @@ def IST_FP64m : FPI<0xDF, MRM7m, (outs), (ins i64mem:$dst), "fistp{ll}\t$dst">;
 }
 
 // FISTTP requires SSE3 even though it's a FPStack op.
-let Predicates = [HasSSE3], SchedRW = [WriteStore] in {
+let Predicates = [HasSSE3], SchedRW = [WriteStore], Uses = [FPCW] in {
 def ISTT_Fp16m32 : FpI_<(outs), (ins i16mem:$op, RFP32:$src), OneArgFP,
                     [(X86fp_to_i16mem RFP32:$src, addr:$op)]>;
 def ISTT_Fp32m32 : FpI_<(outs), (ins i32mem:$op, RFP32:$src), OneArgFP,
@@ -534,7 +534,7 @@ def ISTT_Fp64m80 : FpI_<(outs), (ins i64mem:$op, RFP80:$src), OneArgFP,
                     [(X86fp_to_i64mem RFP80:$src, addr:$op)]>;
 } // Predicates = [HasSSE3]
 
-let mayStore = 1, SchedRW = [WriteStore] in {
+let mayStore = 1, SchedRW = [WriteStore], Uses = [FPCW] in {
 def ISTT_FP16m : FPI<0xDF, MRM1m, (outs), (ins i16mem:$dst), "fisttp{s}\t$dst">;
 def ISTT_FP32m : FPI<0xDB, MRM1m, (outs), (ins i32mem:$dst), "fisttp{l}\t$dst">;
 def ISTT_FP64m : FPI<0xDD, MRM1m, (outs), (ins i64mem:$dst), "fisttp{ll}\t$dst">;
@@ -542,10 +542,10 @@ def ISTT_FP64m : FPI<0xDD, MRM1m, (outs), (ins i64mem:$dst), "fisttp{ll}\t$dst">
 
 // FP Stack manipulation instructions.
 let SchedRW = [WriteMove] in {
-def LD_Frr   : FPI<0xD9, MRM0r, (outs), (ins RST:$op), "fld\t$op">;
-def ST_Frr   : FPI<0xDD, MRM2r, (outs), (ins RST:$op), "fst\t$op">;
-def ST_FPrr  : FPI<0xDD, MRM3r, (outs), (ins RST:$op), "fstp\t$op">;
-def XCH_F    : FPI<0xD9, MRM1r, (outs), (ins RST:$op), "fxch\t$op">;
+def LD_Frr   : FPI<0xD9, MRM0r, (outs), (ins RSTi:$op), "fld\t$op">;
+def ST_Frr   : FPI<0xDD, MRM2r, (outs), (ins RSTi:$op), "fst\t$op">;
+def ST_FPrr  : FPI<0xDD, MRM3r, (outs), (ins RSTi:$op), "fstp\t$op">;
+def XCH_F    : FPI<0xD9, MRM1r, (outs), (ins RSTi:$op), "fxch\t$op">;
 }
 
 // Floating point constant loads.
@@ -570,7 +570,7 @@ def LD_F0 : FPI<0xD9, MRM_EE, (outs), (ins), "fldz">;
 let SchedRW = [WriteFLD1] in
 def LD_F1 : FPI<0xD9, MRM_E8, (outs), (ins), "fld1">;
 
-let SchedRW = [WriteFLDC], Defs = [FPSW] in {
+let SchedRW = [WriteFLDC] in {
 def FLDL2T : I<0xD9, MRM_E9, (outs), (ins), "fldl2t", []>;
 def FLDL2E : I<0xD9, MRM_EA, (outs), (ins), "fldl2e", []>;
 def FLDPI : I<0xD9, MRM_EB, (outs), (ins), "fldpi", []>;
@@ -579,7 +579,7 @@ def FLDLN2 : I<0xD9, MRM_ED, (outs), (ins), "fldln2", []>;
 } // SchedRW
 
 // Floating point compares.
-let SchedRW = [WriteFCom] in {
+let SchedRW = [WriteFCom], Uses = [FPCW] in {
 def UCOM_Fpr32 : FpIf32<(outs), (ins RFP32:$lhs, RFP32:$rhs), CompareFP,
                         [(set FPSW, (trunc (X86cmp RFP32:$lhs, RFP32:$rhs)))]>;
 def UCOM_Fpr64 : FpIf64<(outs), (ins RFP64:$lhs, RFP64:$rhs), CompareFP,
@@ -591,37 +591,37 @@ def UCOM_Fpr80 : FpI_  <(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP,
 
 let SchedRW = [WriteFCom] in {
 // CC = ST(0) cmp ST(i)
-let Defs = [EFLAGS, FPSW] in {
-let Predicates = [FPStackf32, HasCMov] in
-def UCOM_FpIr32: FpIf32<(outs), (ins RFP32:$lhs, RFP32:$rhs), CompareFP,
-                  [(set EFLAGS, (X86cmp RFP32:$lhs, RFP32:$rhs))]>;
-let Predicates = [FPStackf64, HasCMov] in
-def UCOM_FpIr64: FpIf64<(outs), (ins RFP64:$lhs, RFP64:$rhs), CompareFP,
-                  [(set EFLAGS, (X86cmp RFP64:$lhs, RFP64:$rhs))]>;
-let Predicates = [HasCMov] in
+let Defs = [EFLAGS, FPSW], Uses = [FPCW] in {
+def UCOM_FpIr32: FpI_<(outs), (ins RFP32:$lhs, RFP32:$rhs), CompareFP,
+                  [(set EFLAGS, (X86cmp RFP32:$lhs, RFP32:$rhs))]>,
+                  Requires<[FPStackf32, HasCMov]>;
+def UCOM_FpIr64: FpI_<(outs), (ins RFP64:$lhs, RFP64:$rhs), CompareFP,
+                  [(set EFLAGS, (X86cmp RFP64:$lhs, RFP64:$rhs))]>,
+                  Requires<[FPStackf64, HasCMov]>;
 def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP,
-                  [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>;
+                  [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>,
+                  Requires<[HasCMov]>;
 }
 
-let Defs = [FPSW], Uses = [ST0] in {
+let Defs = [FPSW], Uses = [ST0, FPCW] in {
 def UCOM_Fr    : FPI<0xDD, MRM4r,    // FPSW = cmp ST(0) with ST(i)
-                    (outs), (ins RST:$reg), "fucom\t$reg">;
+                    (outs), (ins RSTi:$reg), "fucom\t$reg">;
 def UCOM_FPr   : FPI<0xDD, MRM5r,    // FPSW = cmp ST(0) with ST(i), pop
-                    (outs), (ins RST:$reg), "fucomp\t$reg">;
+                    (outs), (ins RSTi:$reg), "fucomp\t$reg">;
 def UCOM_FPPr  : FPI<0xDA, MRM_E9,       // cmp ST(0) with ST(1), pop, pop
                     (outs), (ins), "fucompp">;
 }
 
-let Defs = [EFLAGS, FPSW], Uses = [ST0] in {
+let Defs = [EFLAGS, FPSW], Uses = [ST0, FPCW] in {
 def UCOM_FIr   : FPI<0xDB, MRM5r,     // CC = cmp ST(0) with ST(i)
-                    (outs), (ins RST:$reg), "fucomi\t$reg">;
+                    (outs), (ins RSTi:$reg), "fucomi\t{$reg, %st|st, $reg}">;
 def UCOM_FIPr  : FPI<0xDF, MRM5r,     // CC = cmp ST(0) with ST(i), pop
-                    (outs), (ins RST:$reg), "fucompi\t$reg">;
-}
+                    (outs), (ins RSTi:$reg), "fucompi\t{$reg, %st|st, $reg}">;
 
-let Defs = [EFLAGS, FPSW] in {
-def COM_FIr : FPI<0xDB, MRM6r, (outs), (ins RST:$reg), "fcomi\t$reg">;
-def COM_FIPr : FPI<0xDF, MRM6r, (outs), (ins RST:$reg), "fcompi\t$reg">;
+def COM_FIr : FPI<0xDB, MRM6r, (outs), (ins RSTi:$reg),
+                  "fcomi\t{$reg, %st|st, $reg}">;
+def COM_FIPr : FPI<0xDF, MRM6r, (outs), (ins RSTi:$reg),
+                   "fcompi\t{$reg, %st|st, $reg}">;
 }
 } // SchedRW
 
@@ -631,12 +631,12 @@ let Defs = [AX], Uses = [FPSW] in
 def FNSTSW16r : I<0xDF, MRM_E0,                  // AX = fp flags
                   (outs), (ins), "fnstsw\t{%ax|ax}",
                   [(set AX, (X86fp_stsw FPSW))]>;
-let Defs = [FPSW] in
+let Defs = [FPSW], Uses = [FPCW] in
 def FNSTCW16m : I<0xD9, MRM7m,                   // [mem16] = X87 control world
                   (outs), (ins i16mem:$dst), "fnstcw\t$dst",
                   [(X86fp_cwd_get16 addr:$dst)]>;
 } // SchedRW
-let Defs = [FPSW], mayLoad = 1 in
+let Defs = [FPSW,FPCW], mayLoad = 1 in
 def FLDCW16m  : I<0xD9, MRM5m,                   // X87 control world = [mem16]
                   (outs), (ins i16mem:$dst), "fldcw\t$dst", []>,
                 Sched<[WriteLoad]>;
@@ -645,8 +645,8 @@ def FLDCW16m  : I<0xD9, MRM5m,                   // X87 control world = [mem16]
 let SchedRW = [WriteMicrocoded] in {
 let Defs = [FPSW] in {
 def FNINIT : I<0xDB, MRM_E3, (outs), (ins), "fninit", []>;
-def FFREE : FPI<0xDD, MRM0r, (outs), (ins RST:$reg), "ffree\t$reg">;
-def FFREEP : FPI<0xDF, MRM0r, (outs), (ins RST:$reg), "ffreep\t$reg">;
+def FFREE : FPI<0xDD, MRM0r, (outs), (ins RSTi:$reg), "ffree\t$reg">;
+def FFREEP : FPI<0xDF, MRM0r, (outs), (ins RSTi:$reg), "ffreep\t$reg">;
 
 // Clear exceptions
 def FNCLEX : I<0xDB, MRM_E2, (outs), (ins), "fnclex", []>;
index e53f83baa3c62dee0c52b5727a05344a116b2c5a..4ec4d566ca9986affaa8f702f94c79ad6d891182 100644 (file)
@@ -3231,39 +3231,39 @@ def : InstAlias<"fucompi",      (UCOM_FIPr   ST1), 0>;
 // instructions like "fadd %st(0), %st(0)" as "fadd %st(0)" for consistency with
 // gas.
 multiclass FpUnaryAlias<string Mnemonic, Instruction Inst, bit EmitAlias = 1> {
- def : InstAlias<!strconcat(Mnemonic, "\t{$op, %st(0)|st(0), $op}"),
-                 (Inst RST:$op), EmitAlias>;
- def : InstAlias<!strconcat(Mnemonic, "\t{%st(0), %st(0)|st(0), st(0)}"),
+ def : InstAlias<!strconcat(Mnemonic, "\t$op"),
+                 (Inst RSTi:$op), EmitAlias>;
+ def : InstAlias<!strconcat(Mnemonic, "\t{%st, %st|st, st}"),
                  (Inst ST0), EmitAlias>;
 }
 
-defm : FpUnaryAlias<"fadd",   ADD_FST0r>;
+defm : FpUnaryAlias<"fadd",   ADD_FST0r, 0>;
 defm : FpUnaryAlias<"faddp",  ADD_FPrST0, 0>;
-defm : FpUnaryAlias<"fsub",   SUB_FST0r>;
-defm : FpUnaryAlias<"fsub{|r}p",  SUBR_FPrST0>;
-defm : FpUnaryAlias<"fsubr",  SUBR_FST0r>;
-defm : FpUnaryAlias<"fsub{r|}p", SUB_FPrST0>;
-defm : FpUnaryAlias<"fmul",   MUL_FST0r>;
-defm : FpUnaryAlias<"fmulp",  MUL_FPrST0>;
-defm : FpUnaryAlias<"fdiv",   DIV_FST0r>;
-defm : FpUnaryAlias<"fdiv{|r}p",  DIVR_FPrST0>;
-defm : FpUnaryAlias<"fdivr",  DIVR_FST0r>;
-defm : FpUnaryAlias<"fdiv{r|}p", DIV_FPrST0>;
+defm : FpUnaryAlias<"fsub",   SUB_FST0r, 0>;
+defm : FpUnaryAlias<"fsub{|r}p",  SUBR_FPrST0, 0>;
+defm : FpUnaryAlias<"fsubr",  SUBR_FST0r, 0>;
+defm : FpUnaryAlias<"fsub{r|}p", SUB_FPrST0, 0>;
+defm : FpUnaryAlias<"fmul",   MUL_FST0r, 0>;
+defm : FpUnaryAlias<"fmulp",  MUL_FPrST0, 0>;
+defm : FpUnaryAlias<"fdiv",   DIV_FST0r, 0>;
+defm : FpUnaryAlias<"fdiv{|r}p",  DIVR_FPrST0, 0>;
+defm : FpUnaryAlias<"fdivr",  DIVR_FST0r, 0>;
+defm : FpUnaryAlias<"fdiv{r|}p", DIV_FPrST0, 0>;
 defm : FpUnaryAlias<"fcomi",   COM_FIr, 0>;
 defm : FpUnaryAlias<"fucomi",  UCOM_FIr, 0>;
-defm : FpUnaryAlias<"fcompi",   COM_FIPr>;
-defm : FpUnaryAlias<"fucompi",  UCOM_FIPr>;
+defm : FpUnaryAlias<"fcompi",   COM_FIPr, 0>;
+defm : FpUnaryAlias<"fucompi",  UCOM_FIPr, 0>;
 
 
-// Handle "f{mulp,addp} st(0), $op" the same as "f{mulp,addp} $op", since they
+// Handle "f{mulp,addp} $op, %st(0)" the same as "f{mulp,addp} $op", since they
 // commute.  We also allow fdiv[r]p/fsubrp even though they don't commute,
 // solely because gas supports it.
-def : InstAlias<"faddp\t{%st(0), $op|$op, st(0)}", (ADD_FPrST0 RST:$op), 0>;
-def : InstAlias<"fmulp\t{%st(0), $op|$op, st(0)}", (MUL_FPrST0 RST:$op)>;
-def : InstAlias<"fsub{|r}p\t{%st(0), $op|$op, st(0)}", (SUBR_FPrST0 RST:$op)>;
-def : InstAlias<"fsub{r|}p\t{%st(0), $op|$op, st(0)}", (SUB_FPrST0 RST:$op)>;
-def : InstAlias<"fdiv{|r}p\t{%st(0), $op|$op, st(0)}", (DIVR_FPrST0 RST:$op)>;
-def : InstAlias<"fdiv{r|}p\t{%st(0), $op|$op, st(0)}", (DIV_FPrST0 RST:$op)>;
+def : InstAlias<"faddp\t{$op, %st|st, $op}", (ADD_FPrST0 RSTi:$op), 0>;
+def : InstAlias<"fmulp\t{$op, %st|st, $op}", (MUL_FPrST0 RSTi:$op), 0>;
+def : InstAlias<"fsub{|r}p\t{$op, %st|st, $op}", (SUBR_FPrST0 RSTi:$op), 0>;
+def : InstAlias<"fsub{r|}p\t{$op, %st|st, $op}", (SUB_FPrST0 RSTi:$op), 0>;
+def : InstAlias<"fdiv{|r}p\t{$op, %st|st, $op}", (DIVR_FPrST0 RSTi:$op), 0>;
+def : InstAlias<"fdiv{r|}p\t{$op, %st|st, $op}", (DIV_FPrST0 RSTi:$op), 0>;
 
 def : InstAlias<"fnstsw"     , (FNSTSW16r), 0>;
 
index 55842a4a209144140c8cc0a1d031e57ed0d1ffa4..bc39cee34c4adb20e651b343d8806c2b214a3333 100644 (file)
@@ -497,6 +497,9 @@ BitVector X86RegisterInfo::getReservedRegs(const MachineFunction &MF) const {
   BitVector Reserved(getNumRegs());
   const X86FrameLowering *TFI = getFrameLowering(MF);
 
+  // Set the floating point control register as reserved.
+  Reserved.set(X86::FPCW);
+
   // Set the stack-pointer register and its aliases as reserved.
   for (MCSubRegIterator I(X86::RSP, this, /*IncludeSelf=*/true); I.isValid();
        ++I)
index aa20273f89abea99b97bda40c44d8557a4989b0e..6a0538138528b08ebc9d78bc70217437ea21e364 100644 (file)
@@ -278,7 +278,7 @@ def K7 : X86Reg<"k7", 7>, DwarfRegNum<[125, 100, 100]>;
 // pseudo registers, but we still mark them as aliasing FP registers. That
 // way both kinds can be live without exceeding the stack depth. ST registers
 // are only live around inline assembly.
-def ST0 : X86Reg<"st(0)", 0>, DwarfRegNum<[33, 12, 11]>;
+def ST0 : X86Reg<"st", 0>, DwarfRegNum<[33, 12, 11]>;
 def ST1 : X86Reg<"st(1)", 1>, DwarfRegNum<[34, 13, 12]>;
 def ST2 : X86Reg<"st(2)", 2>, DwarfRegNum<[35, 14, 13]>;
 def ST3 : X86Reg<"st(3)", 3>, DwarfRegNum<[36, 15, 14]>;
@@ -288,7 +288,10 @@ def ST6 : X86Reg<"st(6)", 6>, DwarfRegNum<[39, 18, 17]>;
 def ST7 : X86Reg<"st(7)", 7>, DwarfRegNum<[40, 19, 18]>;
 
 // Floating-point status word
-def FPSW : X86Reg<"fpsw", 0>;
+def FPSW : X86Reg<"fpsr", 0>;
+
+// Floating-point control word
+def FPCW : X86Reg<"fpcr", 0>;
 
 // Status flags register.
 //
@@ -539,6 +542,9 @@ def RST : RegisterClass<"X86", [f80, f64, f32], 32, (sequence "ST%u", 0, 7)> {
   let isAllocatable = 0;
 }
 
+// Helper to allow %st to print as %st(0) when its encoded in the instruction.
+def RSTi : RegisterOperand<RST, "printSTiRegOperand">;
+
 // Generic vector registers: VR64 and VR128.
 // Ensure that float types are declared first - only float is legal on SSE1.
 def VR64: RegisterClass<"X86", [x86mmx], 64, (sequence "MM%u", 0, 7)>;
index 2ac7bea2fc9b9143fcf384354c623c69897efc1e..89b28126b9167b94dd265085bc9d12a714c22708 100644 (file)
@@ -359,8 +359,8 @@ body: |
     CFI_INSTRUCTION def_cfa_offset 32
     LD_F80m $rsp, 1, $noreg, 32, $noreg, implicit-def dead $fpsw
   ; CHECK: name: stack_psv
-  ; CHECK: ST_FP80m $rsp, 1, $noreg, 0, $noreg, implicit-def dead $fpsw :: (store 10 into stack, align 16)
-    ST_FP80m $rsp, 1, _, 0, _, implicit-def dead $fpsw :: (store 10 into stack, align 16)
+  ; CHECK: ST_FP80m $rsp, 1, $noreg, 0, $noreg, implicit-def dead $fpsw, implicit $fpcw :: (store 10 into stack, align 16)
+    ST_FP80m $rsp, 1, _, 0, _, implicit-def dead $fpsw, implicit $fpcw :: (store 10 into stack, align 16)
     CALL64pcrel32 &cosl, csr_64, implicit $rsp, implicit-def $rsp, implicit-def $fp0
     $rsp = ADD64ri8 $rsp, 24, implicit-def dead $eflags
     RETQ
index 55bfa8def44f2e4af62504eeb50fc12acde36191..de384368bfca5fe71fdb1c65eba409ea82466064 100644 (file)
@@ -49,7 +49,7 @@ define fastcc double @bar(i32 %hash, double %x, double %y) nounwind {
 ; CHECK-NEXT:    fchs
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:  .LBB1_5: # %bb16
-; CHECK-NEXT:    faddp %st(1)
+; CHECK-NEXT:    faddp %st, %st(1)
 ; CHECK-NEXT:    movl %ebp, %esp
 ; CHECK-NEXT:    popl %ebp
 ; CHECK-NEXT:    retl
index 1136a3a50693e8b6a9f695cca549f8d0a91828ec..985860166a3f23611c1d6afa34f0fb1ba333441d 100644 (file)
@@ -508,17 +508,17 @@ define x86_regcallcc double @test_CallargRetDouble(double %a)  {
 define x86_regcallcc x86_fp80 @test_argRetf80(x86_fp80 %a0) nounwind {
 ; X32-LABEL: test_argRetf80:
 ; X32:       # %bb.0:
-; X32-NEXT:    fadd %st(0), %st(0)
+; X32-NEXT:    fadd %st, %st(0)
 ; X32-NEXT:    retl
 ;
 ; WIN64-LABEL: test_argRetf80:
 ; WIN64:       # %bb.0:
-; WIN64-NEXT:    fadd %st(0), %st(0)
+; WIN64-NEXT:    fadd %st, %st(0)
 ; WIN64-NEXT:    retq
 ;
 ; LINUXOSX64-LABEL: test_argRetf80:
 ; LINUXOSX64:       # %bb.0:
-; LINUXOSX64-NEXT:    fadd %st(0), %st(0)
+; LINUXOSX64-NEXT:    fadd %st, %st(0)
 ; LINUXOSX64-NEXT:    retq
   %r0 = fadd x86_fp80 %a0, %a0
   ret x86_fp80 %r0
@@ -529,9 +529,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a)  {
 ; X32-LABEL: test_CallargRetf80:
 ; X32:       # %bb.0:
 ; X32-NEXT:    pushl %esp
-; X32-NEXT:    fadd %st(0), %st(0)
+; X32-NEXT:    fadd %st, %st(0)
 ; X32-NEXT:    calll _test_argRetf80
-; X32-NEXT:    fadd %st(0), %st(0)
+; X32-NEXT:    fadd %st, %st(0)
 ; X32-NEXT:    popl %esp
 ; X32-NEXT:    retl
 ;
@@ -540,9 +540,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a)  {
 ; WIN64-NEXT:    pushq %rsp
 ; WIN64-NEXT:    .seh_pushreg 4
 ; WIN64-NEXT:    .seh_endprologue
-; WIN64-NEXT:    fadd %st(0), %st(0)
+; WIN64-NEXT:    fadd %st, %st(0)
 ; WIN64-NEXT:    callq test_argRetf80
-; WIN64-NEXT:    fadd %st(0), %st(0)
+; WIN64-NEXT:    fadd %st, %st(0)
 ; WIN64-NEXT:    popq %rsp
 ; WIN64-NEXT:    retq
 ; WIN64-NEXT:    .seh_handlerdata
@@ -554,9 +554,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a)  {
 ; LINUXOSX64-NEXT:    pushq %rsp
 ; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 16
 ; LINUXOSX64-NEXT:    .cfi_offset %rsp, -16
-; LINUXOSX64-NEXT:    fadd %st(0), %st(0)
+; LINUXOSX64-NEXT:    fadd %st, %st(0)
 ; LINUXOSX64-NEXT:    callq test_argRetf80
-; LINUXOSX64-NEXT:    fadd %st(0), %st(0)
+; LINUXOSX64-NEXT:    fadd %st, %st(0)
 ; LINUXOSX64-NEXT:    popq %rsp
 ; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 8
 ; LINUXOSX64-NEXT:    retq
index 35dbb68117ba27e926029699ba21eaa45431b654..6bb014858d04859b187a43f230abb4a340e924e5 100644 (file)
@@ -6,7 +6,7 @@ target triple = "x86_64-unknown-unknown"
 ; Test that we can generate an fcmove, and also that it passes verification.
 
 ; CHECK-LABEL: cmove_f
-; CHECK: fcmove %st({{[0-7]}}), %st(0)
+; CHECK: fcmove %st({{[0-7]}}), %st
 define x86_fp80 @cmove_f(x86_fp80 %a, x86_fp80 %b, i32 %c) {
   %test = icmp eq i32 %c, 0
   %add = fadd x86_fp80 %a, %b
index 4fb2040b338d93fdafc7ceff8a19afc0c2cb2410..bb883e92dc1104cd486ac29b454246aa8a8195a5 100644 (file)
@@ -20,7 +20,7 @@ define float @fast_recip_sqrt(float %x) {
 ; X86-NEXT:    flds {{[0-9]+}}(%esp)
 ; X86-NEXT:    fsqrt
 ; X86-NEXT:    fld1
-; X86-NEXT:    fdivp %st(1)
+; X86-NEXT:    fdivp %st, %st(1)
 ; X86-NEXT:    retl
   %y = call fast float @llvm.sqrt.f32(float %x)
   %z = fdiv fast float 1.0,  %y
@@ -95,7 +95,7 @@ define float @not_so_fast_recip_sqrt(float %x) {
 ; X86-NEXT:    flds {{[0-9]+}}(%esp)
 ; X86-NEXT:    fsqrt
 ; X86-NEXT:    fld1
-; X86-NEXT:    fdiv %st(1)
+; X86-NEXT:    fdiv %st(1), %st
 ; X86-NEXT:    fxch %st(1)
 ; X86-NEXT:    fstps sqrt1
 ; X86-NEXT:    retl
index ab3d40ddcaa527bb038672b22918f396d5a8cbae..71738cb85d2e42bdaa142e2ad32c0a0c05744ae7 100644 (file)
@@ -486,7 +486,7 @@ define i64 @fptoui_i64_fp80(x86_fp80 %a0) nounwind {
 ; X64-X87-NEXT:    xorl %eax, %eax
 ; X64-X87-NEXT:    fxch %st(1)
 ; X64-X87-NEXT:    fucompi %st(2)
-; X64-X87-NEXT:    fcmovnbe %st(1), %st(0)
+; X64-X87-NEXT:    fcmovnbe %st(1), %st
 ; X64-X87-NEXT:    fstp %st(1)
 ; X64-X87-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
 ; X64-X87-NEXT:    movzwl -{{[0-9]+}}(%rsp), %ecx
@@ -509,7 +509,7 @@ define i64 @fptoui_i64_fp80(x86_fp80 %a0) nounwind {
 ; X64-SSSE3-NEXT:    xorl %eax, %eax
 ; X64-SSSE3-NEXT:    fxch %st(1)
 ; X64-SSSE3-NEXT:    fucompi %st(2)
-; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st(0)
+; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st
 ; X64-SSSE3-NEXT:    fstp %st(1)
 ; X64-SSSE3-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; X64-SSSE3-NEXT:    setbe %al
@@ -568,7 +568,7 @@ define i64 @fptoui_i64_fp80_ld(x86_fp80 *%a0) nounwind {
 ; X64-X87-NEXT:    xorl %eax, %eax
 ; X64-X87-NEXT:    fxch %st(1)
 ; X64-X87-NEXT:    fucompi %st(2)
-; X64-X87-NEXT:    fcmovnbe %st(1), %st(0)
+; X64-X87-NEXT:    fcmovnbe %st(1), %st
 ; X64-X87-NEXT:    fstp %st(1)
 ; X64-X87-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
 ; X64-X87-NEXT:    movzwl -{{[0-9]+}}(%rsp), %ecx
@@ -591,7 +591,7 @@ define i64 @fptoui_i64_fp80_ld(x86_fp80 *%a0) nounwind {
 ; X64-SSSE3-NEXT:    xorl %eax, %eax
 ; X64-SSSE3-NEXT:    fxch %st(1)
 ; X64-SSSE3-NEXT:    fucompi %st(2)
-; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st(0)
+; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st
 ; X64-SSSE3-NEXT:    fstp %st(1)
 ; X64-SSSE3-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; X64-SSSE3-NEXT:    setbe %al
diff --git a/test/CodeGen/X86/inline-asm-default-clobbers.ll b/test/CodeGen/X86/inline-asm-default-clobbers.ll
new file mode 100644 (file)
index 0000000..34a77ea
--- /dev/null
@@ -0,0 +1,8 @@
+; RUN: llc < %s -mtriple=i686 -stop-after=expand-isel-pseudos | FileCheck %s
+
+; CHECK: INLINEASM &"", 1, 12, implicit-def early-clobber $df, 12, implicit-def early-clobber $fpsw, 12, implicit-def early-clobber $eflags
+define void @foo() {
+entry:
+  call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"()
+  ret void
+}
index 1c36d31c480b5837bf2e852a478efc41178dc41c..db6127acb0ae72cfb2ea05fdd2b8a235d1ecbcb3 100644 (file)
@@ -75,20 +75,20 @@ define void @test6(double %A, double %B, double %C, double %D, double %E) nounwi
 ; CHECK-NEXT:    fldl {{[0-9]+}}(%esp)
 ; CHECK-NEXT:    fldl {{[0-9]+}}(%esp)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    foo %st(0) %st(0)
+; CHECK-NEXT:    foo %st %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    bar %st(1) %st(0)
+; CHECK-NEXT:    bar %st(1) %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(1)
 ; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    baz %st(1) %st(0)
+; CHECK-NEXT:    baz %st(1) %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    baz %st(0)
+; CHECK-NEXT:    baz %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
@@ -117,10 +117,10 @@ define void @testPR4185() {
 ; CHECK-NEXT:    flds LCPI6_0
 ; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 return:
@@ -138,10 +138,10 @@ define void @testPR4185b() {
 ; CHECK:       ## %bb.0: ## %return
 ; CHECK-NEXT:    flds LCPI7_0
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistl %st(0)
+; CHECK-NEXT:    fistl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 return:
@@ -163,7 +163,7 @@ define void @testPR4459(x86_fp80 %a) {
 ; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstpt (%esp)
 ; CHECK-NEXT:    calll _test3
@@ -191,7 +191,7 @@ define void @testPR4484(x86_fp80 %a) {
 ; CHECK-NEXT:    calll _test1
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%esp) ## 10-byte Folded Reload
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstpt (%esp)
 ; CHECK-NEXT:    calll _test3
@@ -211,18 +211,18 @@ define void @testPR4485(x86_fp80* %a) {
 ; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; CHECK-NEXT:    fldt (%eax)
 ; CHECK-NEXT:    flds LCPI10_0
-; CHECK-NEXT:    fmul %st(0), %st(1)
+; CHECK-NEXT:    fmul %st, %st(1)
 ; CHECK-NEXT:    flds LCPI10_1
-; CHECK-NEXT:    fmul %st(0), %st(2)
+; CHECK-NEXT:    fmul %st, %st(2)
 ; CHECK-NEXT:    fxch %st(2)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fldt (%eax)
-; CHECK-NEXT:    fmulp %st(1)
-; CHECK-NEXT:    fmulp %st(1)
+; CHECK-NEXT:    fmulp %st, %st(1)
+; CHECK-NEXT:    fmulp %st, %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st(0)
+; CHECK-NEXT:    fistpl %st
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 entry:
@@ -422,7 +422,7 @@ define i32 @PR10602() nounwind ssp {
 ; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fcomi %st(1), %st(0); pushf; pop %eax
+; CHECK-NEXT:    fcomi %st(1), %st; pushf; pop %eax
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    fstp %st(0)
@@ -505,9 +505,9 @@ define double @test_operand_rewrite() {
 ; CHECK-LABEL: test_operand_rewrite:
 ; CHECK:       ## %bb.0: ## %entry
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    foo %st(0), %st(1)
+; CHECK-NEXT:    foo %st, %st(1)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fsubp %st(1)
+; CHECK-NEXT:    fsubp %st, %st(1)
 ; CHECK-NEXT:    retl
 entry:
   %0 = tail call { double, double } asm sideeffect "foo $0, $1", "={st},={st(1)},~{dirflag},~{fpsr},~{flags}"()
index 3e57ef218442678b3e572cfcd3d7376fdc42ff3e..2a557f2902a21d506c01384b45d8504597498e63 100644 (file)
@@ -3,7 +3,7 @@
 target triple = "x86_64-unknown-unknown"
 declare void @bar1()
 define preserve_allcc void @foo()#0 {
-; CHECK: foo Clobbered Registers: $cs $df $ds $eflags $eip $eiz $es $fpsw $fs $gs $hip $ip $rip $riz $ss $ssp $bnd0 $bnd1 $bnd2 $bnd3 $cr0 $cr1 $cr2 $cr3 $cr4 $cr5 $cr6 $cr7 $cr8 $cr9 $cr10 $cr11 $cr12 $cr13 $cr14 $cr15 $dr0 $dr1 $dr2 $dr3 $dr4 $dr5 $dr6 $dr7 $dr8 $dr9 $dr10 $dr11 $dr12 $dr13 $dr14 $dr15 $fp0 $fp1 $fp2 $fp3 $fp4 $fp5 $fp6 $fp7 $k0 $k1 $k2 $k3 $k4 $k5 $k6 $k7 $mm0 $mm1 $mm2 $mm3 $mm4 $mm5 $mm6 $mm7 $r11 $st0 $st1 $st2 $st3 $st4 $st5 $st6 $st7 $xmm16 $xmm17 $xmm18 $xmm19 $xmm20 $xmm21 $xmm22 $xmm23 $xmm24 $xmm25 $xmm26 $xmm27 $xmm28 $xmm29 $xmm30 $xmm31 $ymm0 $ymm1 $ymm2 $ymm3 $ymm4 $ymm5 $ymm6 $ymm7 $ymm8 $ymm9 $ymm10 $ymm11 $ymm12 $ymm13 $ymm14 $ymm15 $ymm16 $ymm17 $ymm18 $ymm19 $ymm20 $ymm21 $ymm22 $ymm23 $ymm24 $ymm25 $ymm26 $ymm27 $ymm28 $ymm29 $ymm30 $ymm31 $zmm0 $zmm1 $zmm2 $zmm3 $zmm4 $zmm5 $zmm6 $zmm7 $zmm8 $zmm9 $zmm10 $zmm11 $zmm12 $zmm13 $zmm14 $zmm15 $zmm16 $zmm17 $zmm18 $zmm19 $zmm20 $zmm21 $zmm22 $zmm23 $zmm24 $zmm25 $zmm26 $zmm27 $zmm28 $zmm29 $zmm30 $zmm31 $r11b $r11bh $r11d $r11w $r11wh
+; CHECK: foo Clobbered Registers: $cs $df $ds $eflags $eip $eiz $es $fpcw $fpsw $fs $gs $hip $ip $rip $riz $ss $ssp $bnd0 $bnd1 $bnd2 $bnd3 $cr0 $cr1 $cr2 $cr3 $cr4 $cr5 $cr6 $cr7 $cr8 $cr9 $cr10 $cr11 $cr12 $cr13 $cr14 $cr15 $dr0 $dr1 $dr2 $dr3 $dr4 $dr5 $dr6 $dr7 $dr8 $dr9 $dr10 $dr11 $dr12 $dr13 $dr14 $dr15 $fp0 $fp1 $fp2 $fp3 $fp4 $fp5 $fp6 $fp7 $k0 $k1 $k2 $k3 $k4 $k5 $k6 $k7 $mm0 $mm1 $mm2 $mm3 $mm4 $mm5 $mm6 $mm7 $r11 $st0 $st1 $st2 $st3 $st4 $st5 $st6 $st7 $xmm16 $xmm17 $xmm18 $xmm19 $xmm20 $xmm21 $xmm22 $xmm23 $xmm24 $xmm25 $xmm26 $xmm27 $xmm28 $xmm29 $xmm30 $xmm31 $ymm0 $ymm1 $ymm2 $ymm3 $ymm4 $ymm5 $ymm6 $ymm7 $ymm8 $ymm9 $ymm10 $ymm11 $ymm12 $ymm13 $ymm14 $ymm15 $ymm16 $ymm17 $ymm18 $ymm19 $ymm20 $ymm21 $ymm22 $ymm23 $ymm24 $ymm25 $ymm26 $ymm27 $ymm28 $ymm29 $ymm30 $ymm31 $zmm0 $zmm1 $zmm2 $zmm3 $zmm4 $zmm5 $zmm6 $zmm7 $zmm8 $zmm9 $zmm10 $zmm11 $zmm12 $zmm13 $zmm14 $zmm15 $zmm16 $zmm17 $zmm18 $zmm19 $zmm20 $zmm21 $zmm22 $zmm23 $zmm24 $zmm25 $zmm26 $zmm27 $zmm28 $zmm29 $zmm30 $zmm31 $r11b $r11bh $r11d $r11w $r11wh
   call void @bar1()
   call void @bar2()
   ret void
index e0e90f81bc42c32460cbbbb7d8105cf3d88442a1..3f9e2f953bae370aa707e3bff4499f9cc377bfb5 100644 (file)
@@ -14,7 +14,7 @@ define x86_fp80 @foo(x86_fp80 %a) {
 ; CHECK-NEXT:    testb $-128, -{{[0-9]+}}(%rsp)
 ; CHECK-NEXT:    flds {{.*}}(%rip)
 ; CHECK-NEXT:    flds {{.*}}(%rip)
-; CHECK-NEXT:    fcmovne %st(1), %st(0)
+; CHECK-NEXT:    fcmovne %st(1), %st
 ; CHECK-NEXT:    fstp %st(1)
 ; CHECK-NEXT:    retq
   %1 = tail call x86_fp80 @copysignl(x86_fp80 0xK7FFF8000000000000000, x86_fp80 %a) nounwind readnone
index 63edae044f87cb5f9724677895e18d1def5c8306..9aa28384f4e81d1efeb8243b2243133d04046daa 100644 (file)
@@ -19,18 +19,18 @@ target triple = "x86_64-unknown-linux-gnu"
 ; KNL-NEXT:    fld1
 ; KNL-NEXT:    fldz
 ; KNL-NEXT:    fld %st(0)
-; KNL-NEXT:    fcmovne %st(2), %st(0)
+; KNL-NEXT:    fcmovne %st(2), %st
 ; KNL-NEXT:    testb $1, %cl
 ; KNL-NEXT:    fld %st(1)
-; KNL-NEXT:    fcmovne %st(3), %st(0)
+; KNL-NEXT:    fcmovne %st(3), %st
 ; KNL-NEXT:    kmovw %k2, %eax
 ; KNL-NEXT:    testb $1, %al
 ; KNL-NEXT:    fld %st(2)
-; KNL-NEXT:    fcmovne %st(4), %st(0)
+; KNL-NEXT:    fcmovne %st(4), %st
 ; KNL-NEXT:    kmovw %k0, %eax
 ; KNL-NEXT:    testb $1, %al
 ; KNL-NEXT:    fxch %st(3)
-; KNL-NEXT:    fcmovne %st(4), %st(0)
+; KNL-NEXT:    fcmovne %st(4), %st
 ; KNL-NEXT:    fstp %st(4)
 ; KNL-NEXT:    fxch %st(3)
 ; KNL-NEXT:    fstpt (%rdi)
@@ -55,18 +55,18 @@ target triple = "x86_64-unknown-linux-gnu"
 ; SKX-NEXT:    fld1
 ; SKX-NEXT:    fldz
 ; SKX-NEXT:    fld %st(0)
-; SKX-NEXT:    fcmovne %st(2), %st(0)
+; SKX-NEXT:    fcmovne %st(2), %st
 ; SKX-NEXT:    testb $1, %cl
 ; SKX-NEXT:    fld %st(1)
-; SKX-NEXT:    fcmovne %st(3), %st(0)
+; SKX-NEXT:    fcmovne %st(3), %st
 ; SKX-NEXT:    kmovd %k2, %eax
 ; SKX-NEXT:    testb $1, %al
 ; SKX-NEXT:    fld %st(2)
-; SKX-NEXT:    fcmovne %st(4), %st(0)
+; SKX-NEXT:    fcmovne %st(4), %st
 ; SKX-NEXT:    kmovd %k0, %eax
 ; SKX-NEXT:    testb $1, %al
 ; SKX-NEXT:    fxch %st(3)
-; SKX-NEXT:    fcmovne %st(4), %st(0)
+; SKX-NEXT:    fcmovne %st(4), %st
 ; SKX-NEXT:    fstp %st(4)
 ; SKX-NEXT:    fxch %st(3)
 ; SKX-NEXT:    fstpt (%rdi)
index a709a4840e5303572373193cbc02519a6a73df3a..0b23ab7d4b5d7975d15b82da167eeb6ada2cccd2 100644 (file)
@@ -27,7 +27,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE2-NEXT:    movsd %xmm0, -32(%rbp)
 ; SSE2-NEXT:    fsubl -32(%rbp)
 ; SSE2-NEXT:    flds {{.*}}(%rip)
-; SSE2-NEXT:    fmul %st(0), %st(1)
+; SSE2-NEXT:    fmul %st, %st(1)
 ; SSE2-NEXT:    fnstcw -2(%rbp)
 ; SSE2-NEXT:    movzwl -2(%rbp), %eax
 ; SSE2-NEXT:    movw $3199, -2(%rbp) ## imm = 0xC7F
@@ -41,7 +41,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE2-NEXT:    movsd %xmm0, -56(%rbp)
 ; SSE2-NEXT:    movsd %xmm0, -24(%rbp)
 ; SSE2-NEXT:    fsubl -24(%rbp)
-; SSE2-NEXT:    fmulp %st(1)
+; SSE2-NEXT:    fmulp %st, %st(1)
 ; SSE2-NEXT:    fstpl -48(%rbp)
 ; SSE2-NEXT:    popq %rbp
 ; SSE2-NEXT:    retq
@@ -65,12 +65,12 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE2-SCHEDULE-NEXT:    movsd %xmm0, -64(%rbp)
 ; SSE2-SCHEDULE-NEXT:    movsd %xmm0, -32(%rbp)
 ; SSE2-SCHEDULE-NEXT:    fsubl -32(%rbp)
-; SSE2-SCHEDULE-NEXT:    fnstcw -2(%rbp)
 ; SSE2-SCHEDULE-NEXT:    flds {{.*}}(%rip)
+; SSE2-SCHEDULE-NEXT:    fnstcw -2(%rbp)
+; SSE2-SCHEDULE-NEXT:    fmul %st, %st(1)
 ; SSE2-SCHEDULE-NEXT:    movzwl -2(%rbp), %eax
 ; SSE2-SCHEDULE-NEXT:    movw $3199, -2(%rbp) ## imm = 0xC7F
 ; SSE2-SCHEDULE-NEXT:    fldcw -2(%rbp)
-; SSE2-SCHEDULE-NEXT:    fmul %st(0), %st(1)
 ; SSE2-SCHEDULE-NEXT:    movw %ax, -2(%rbp)
 ; SSE2-SCHEDULE-NEXT:    fxch %st(1)
 ; SSE2-SCHEDULE-NEXT:    fistl -12(%rbp)
@@ -80,7 +80,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE2-SCHEDULE-NEXT:    movsd %xmm0, -56(%rbp)
 ; SSE2-SCHEDULE-NEXT:    movsd %xmm0, -24(%rbp)
 ; SSE2-SCHEDULE-NEXT:    fsubl -24(%rbp)
-; SSE2-SCHEDULE-NEXT:    fmulp %st(1)
+; SSE2-SCHEDULE-NEXT:    fmulp %st, %st(1)
 ; SSE2-SCHEDULE-NEXT:    fstpl -48(%rbp)
 ; SSE2-SCHEDULE-NEXT:    popq %rbp
 ; SSE2-SCHEDULE-NEXT:    retq
@@ -100,7 +100,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE3-NEXT:    movsd %xmm0, -24(%rbp)
 ; SSE3-NEXT:    fsubl -24(%rbp)
 ; SSE3-NEXT:    flds {{.*}}(%rip)
-; SSE3-NEXT:    fmul %st(0), %st(1)
+; SSE3-NEXT:    fmul %st, %st(1)
 ; SSE3-NEXT:    fld %st(1)
 ; SSE3-NEXT:    fisttpl -8(%rbp)
 ; SSE3-NEXT:    xorps %xmm0, %xmm0
@@ -109,7 +109,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE3-NEXT:    movsd %xmm0, -16(%rbp)
 ; SSE3-NEXT:    fxch %st(1)
 ; SSE3-NEXT:    fsubl -16(%rbp)
-; SSE3-NEXT:    fmulp %st(1)
+; SSE3-NEXT:    fmulp %st, %st(1)
 ; SSE3-NEXT:    fstpl -32(%rbp)
 ; SSE3-NEXT:    popq %rbp
 ; SSE3-NEXT:    retq
@@ -129,7 +129,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; AVX-NEXT:    vmovsd %xmm0, -24(%rbp)
 ; AVX-NEXT:    fsubl -24(%rbp)
 ; AVX-NEXT:    flds {{.*}}(%rip)
-; AVX-NEXT:    fmul %st(0), %st(1)
+; AVX-NEXT:    fmul %st, %st(1)
 ; AVX-NEXT:    fld %st(1)
 ; AVX-NEXT:    fisttpl -8(%rbp)
 ; AVX-NEXT:    vcvtsi2sdl -8(%rbp), %xmm1, %xmm0
@@ -137,7 +137,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; AVX-NEXT:    vmovsd %xmm0, -16(%rbp)
 ; AVX-NEXT:    fxch %st(1)
 ; AVX-NEXT:    fsubl -16(%rbp)
-; AVX-NEXT:    fmulp %st(1)
+; AVX-NEXT:    fmulp %st, %st(1)
 ; AVX-NEXT:    fstpl -32(%rbp)
 ; AVX-NEXT:    popq %rbp
 ; AVX-NEXT:    retq
index 3fe56277fb4b3ead0b3a324753f8162e57f16422..f6b8dec3c3b39d5a8c641bc4915206d8c48c2a1b 100644 (file)
@@ -20,17 +20,17 @@ define void @test(<4x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unna
 ; CHECK-NEXT:    fld1
 ; CHECK-NEXT:    fldz
 ; CHECK-NEXT:    fld %st(0)
-; CHECK-NEXT:    fcmove %st(2), %st(0)
+; CHECK-NEXT:    fcmove %st(2), %st
 ; CHECK-NEXT:    cmpq %rax, %rsi
 ; CHECK-NEXT:    fld %st(1)
-; CHECK-NEXT:    fcmove %st(3), %st(0)
+; CHECK-NEXT:    fcmove %st(3), %st
 ; CHECK-NEXT:    cmpq %rdx, %r9
 ; CHECK-NEXT:    fld %st(2)
-; CHECK-NEXT:    fcmove %st(4), %st(0)
+; CHECK-NEXT:    fcmove %st(4), %st
 ; CHECK-NEXT:    movl $1, %eax
 ; CHECK-NEXT:    cmpq %r8, %rax
 ; CHECK-NEXT:    fxch %st(3)
-; CHECK-NEXT:    fcmove %st(4), %st(0)
+; CHECK-NEXT:    fcmove %st(4), %st
 ; CHECK-NEXT:    fstp %st(4)
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp)
 ; CHECK-NEXT:    fstpt 70(%rdi)
@@ -40,15 +40,15 @@ define void @test(<4x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unna
 ; CHECK-NEXT:    fstpt 30(%rdi)
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp)
 ; CHECK-NEXT:    fstpt 10(%rdi)
-; CHECK-NEXT:    fadd %st(0), %st(0)
+; CHECK-NEXT:    fadd %st, %st(0)
 ; CHECK-NEXT:    fstpt 60(%rdi)
 ; CHECK-NEXT:    fxch %st(1)
-; CHECK-NEXT:    fadd %st(0), %st(0)
+; CHECK-NEXT:    fadd %st, %st(0)
 ; CHECK-NEXT:    fstpt 40(%rdi)
 ; CHECK-NEXT:    fxch %st(1)
-; CHECK-NEXT:    fadd %st(0), %st(0)
+; CHECK-NEXT:    fadd %st, %st(0)
 ; CHECK-NEXT:    fstpt 20(%rdi)
-; CHECK-NEXT:    fadd %st(0), %st(0)
+; CHECK-NEXT:    fadd %st, %st(0)
 ; CHECK-NEXT:    fstpt (%rdi)
   %1 = icmp eq <4 x i64> <i64 0, i64 1, i64 2, i64 3>, %a
   %2 = select <4 x i1> %1, <4 x x86_fp80> <x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000>, <4 x x86_fp80> zeroinitializer
diff --git a/test/CodeGen/X86/pr40529.ll b/test/CodeGen/X86/pr40529.ll
new file mode 100644 (file)
index 0000000..9520ac2
--- /dev/null
@@ -0,0 +1,43 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-unknown-linux -mcpu=x86-64 | FileCheck %s
+
+define x86_fp80 @rem_pio2l_min(x86_fp80 %z) {
+; CHECK-LABEL: rem_pio2l_min:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    movzwl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT:    movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F
+; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp)
+; CHECK-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fistl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    movl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fisubl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    flds {{.*}}(%rip)
+; CHECK-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fmul %st, %st(1)
+; CHECK-NEXT:    movzwl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT:    movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F
+; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fxch %st(1)
+; CHECK-NEXT:    fistl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    movl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fisubl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT:    fmulp %st, %st(1)
+; CHECK-NEXT:    retq
+entry:
+  %conv = fptosi x86_fp80 %z to i32
+  %conv1 = sitofp i32 %conv to x86_fp80
+  %sub = fsub x86_fp80 %z, %conv1
+  %mul = fmul x86_fp80 %sub, 0xK40178000000000000000
+  %conv2 = fptosi x86_fp80 %mul to i32
+  %conv3 = sitofp i32 %conv2 to x86_fp80
+  %sub4 = fsub x86_fp80 %mul, %conv3
+  %mul5 = fmul x86_fp80 %sub4, 0xK40178000000000000000
+  ret x86_fp80 %mul5
+}
index 7ed61f8fdc7d24b73da97f075e5605ad13b588f8..92361efa49fac33902ff49c5c7cb2e33573b097f 100644 (file)
@@ -1028,7 +1028,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; AVX512_32_WIN-NEXT:    xorl %edx, %edx
 ; AVX512_32_WIN-NEXT:    fxch %st(1)
 ; AVX512_32_WIN-NEXT:    fucompi %st(2)
-; AVX512_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; AVX512_32_WIN-NEXT:    fcmovnbe %st(1), %st
 ; AVX512_32_WIN-NEXT:    fstp %st(1)
 ; AVX512_32_WIN-NEXT:    fisttpll (%esp)
 ; AVX512_32_WIN-NEXT:    setbe %dl
@@ -1049,7 +1049,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; AVX512_32_LIN-NEXT:    xorl %edx, %edx
 ; AVX512_32_LIN-NEXT:    fxch %st(1)
 ; AVX512_32_LIN-NEXT:    fucompi %st(2)
-; AVX512_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; AVX512_32_LIN-NEXT:    fcmovnbe %st(1), %st
 ; AVX512_32_LIN-NEXT:    fstp %st(1)
 ; AVX512_32_LIN-NEXT:    fisttpll (%esp)
 ; AVX512_32_LIN-NEXT:    setbe %dl
@@ -1069,7 +1069,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; AVX512_64_WIN-NEXT:    xorl %ecx, %ecx
 ; AVX512_64_WIN-NEXT:    fxch %st(1)
 ; AVX512_64_WIN-NEXT:    fucompi %st(2)
-; AVX512_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; AVX512_64_WIN-NEXT:    fcmovnbe %st(1), %st
 ; AVX512_64_WIN-NEXT:    fstp %st(1)
 ; AVX512_64_WIN-NEXT:    fisttpll (%rsp)
 ; AVX512_64_WIN-NEXT:    setbe %cl
@@ -1090,7 +1090,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; AVX512_64_LIN-NEXT:    xorl %ecx, %ecx
 ; AVX512_64_LIN-NEXT:    fxch %st(1)
 ; AVX512_64_LIN-NEXT:    fucompi %st(2)
-; AVX512_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; AVX512_64_LIN-NEXT:    fcmovnbe %st(1), %st
 ; AVX512_64_LIN-NEXT:    fstp %st(1)
 ; AVX512_64_LIN-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; AVX512_64_LIN-NEXT:    setbe %cl
@@ -1114,7 +1114,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE3_32_WIN-NEXT:    xorl %edx, %edx
 ; SSE3_32_WIN-NEXT:    fxch %st(1)
 ; SSE3_32_WIN-NEXT:    fucompi %st(2)
-; SSE3_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE3_32_WIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE3_32_WIN-NEXT:    fstp %st(1)
 ; SSE3_32_WIN-NEXT:    fisttpll (%esp)
 ; SSE3_32_WIN-NEXT:    setbe %dl
@@ -1135,7 +1135,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE3_32_LIN-NEXT:    xorl %edx, %edx
 ; SSE3_32_LIN-NEXT:    fxch %st(1)
 ; SSE3_32_LIN-NEXT:    fucompi %st(2)
-; SSE3_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE3_32_LIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE3_32_LIN-NEXT:    fstp %st(1)
 ; SSE3_32_LIN-NEXT:    fisttpll (%esp)
 ; SSE3_32_LIN-NEXT:    setbe %dl
@@ -1155,7 +1155,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE3_64_WIN-NEXT:    xorl %eax, %eax
 ; SSE3_64_WIN-NEXT:    fxch %st(1)
 ; SSE3_64_WIN-NEXT:    fucompi %st(2)
-; SSE3_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE3_64_WIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE3_64_WIN-NEXT:    fstp %st(1)
 ; SSE3_64_WIN-NEXT:    fisttpll (%rsp)
 ; SSE3_64_WIN-NEXT:    setbe %al
@@ -1173,7 +1173,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE3_64_LIN-NEXT:    xorl %eax, %eax
 ; SSE3_64_LIN-NEXT:    fxch %st(1)
 ; SSE3_64_LIN-NEXT:    fucompi %st(2)
-; SSE3_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE3_64_LIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE3_64_LIN-NEXT:    fstp %st(1)
 ; SSE3_64_LIN-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; SSE3_64_LIN-NEXT:    setbe %al
@@ -1194,7 +1194,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE2_32_WIN-NEXT:    xorl %edx, %edx
 ; SSE2_32_WIN-NEXT:    fxch %st(1)
 ; SSE2_32_WIN-NEXT:    fucompi %st(2)
-; SSE2_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE2_32_WIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE2_32_WIN-NEXT:    fstp %st(1)
 ; SSE2_32_WIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; SSE2_32_WIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
@@ -1221,7 +1221,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE2_32_LIN-NEXT:    xorl %edx, %edx
 ; SSE2_32_LIN-NEXT:    fxch %st(1)
 ; SSE2_32_LIN-NEXT:    fucompi %st(2)
-; SSE2_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE2_32_LIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE2_32_LIN-NEXT:    fstp %st(1)
 ; SSE2_32_LIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; SSE2_32_LIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
@@ -1247,7 +1247,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE2_64_WIN-NEXT:    xorl %eax, %eax
 ; SSE2_64_WIN-NEXT:    fxch %st(1)
 ; SSE2_64_WIN-NEXT:    fucompi %st(2)
-; SSE2_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE2_64_WIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE2_64_WIN-NEXT:    fstp %st(1)
 ; SSE2_64_WIN-NEXT:    fnstcw {{[0-9]+}}(%rsp)
 ; SSE2_64_WIN-NEXT:    movzwl {{[0-9]+}}(%rsp), %ecx
@@ -1271,7 +1271,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; SSE2_64_LIN-NEXT:    xorl %eax, %eax
 ; SSE2_64_LIN-NEXT:    fxch %st(1)
 ; SSE2_64_LIN-NEXT:    fucompi %st(2)
-; SSE2_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
+; SSE2_64_LIN-NEXT:    fcmovnbe %st(1), %st
 ; SSE2_64_LIN-NEXT:    fstp %st(1)
 ; SSE2_64_LIN-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
 ; SSE2_64_LIN-NEXT:    movzwl -{{[0-9]+}}(%rsp), %ecx
index 947c95137206de701d5c01474b269cde991adb1a..9429e1854d44c3ce02514bff4998d1feba014df2 100644 (file)
@@ -293,25 +293,25 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
 ; ATHLON-NEXT:    flds 4(%ecx)
 ; ATHLON-NEXT:    flds (%ecx)
 ; ATHLON-NEXT:    flds (%eax)
-; ATHLON-NEXT:    fmul %st(0), %st(0)
+; ATHLON-NEXT:    fmul %st, %st(0)
 ; ATHLON-NEXT:    cmpl $0, {{[0-9]+}}(%esp)
 ; ATHLON-NEXT:    fxch %st(1)
-; ATHLON-NEXT:    fcmove %st(1), %st(0)
+; ATHLON-NEXT:    fcmove %st(1), %st
 ; ATHLON-NEXT:    fstp %st(1)
 ; ATHLON-NEXT:    flds 4(%eax)
-; ATHLON-NEXT:    fmul %st(0), %st(0)
+; ATHLON-NEXT:    fmul %st, %st(0)
 ; ATHLON-NEXT:    fxch %st(2)
-; ATHLON-NEXT:    fcmove %st(2), %st(0)
+; ATHLON-NEXT:    fcmove %st(2), %st
 ; ATHLON-NEXT:    fstp %st(2)
 ; ATHLON-NEXT:    flds 8(%eax)
-; ATHLON-NEXT:    fmul %st(0), %st(0)
+; ATHLON-NEXT:    fmul %st, %st(0)
 ; ATHLON-NEXT:    fxch %st(3)
-; ATHLON-NEXT:    fcmove %st(3), %st(0)
+; ATHLON-NEXT:    fcmove %st(3), %st
 ; ATHLON-NEXT:    fstp %st(3)
 ; ATHLON-NEXT:    flds 12(%eax)
-; ATHLON-NEXT:    fmul %st(0), %st(0)
+; ATHLON-NEXT:    fmul %st, %st(0)
 ; ATHLON-NEXT:    fxch %st(4)
-; ATHLON-NEXT:    fcmove %st(4), %st(0)
+; ATHLON-NEXT:    fcmove %st(4), %st
 ; ATHLON-NEXT:    fstp %st(4)
 ; ATHLON-NEXT:    fxch %st(3)
 ; ATHLON-NEXT:    fstps 12(%ecx)
@@ -332,13 +332,13 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
 ; MCU-NEXT:    flds 4(%ecx)
 ; MCU-NEXT:    flds 8(%ecx)
 ; MCU-NEXT:    flds 12(%ecx)
-; MCU-NEXT:    fmul %st(0), %st(0)
+; MCU-NEXT:    fmul %st, %st(0)
 ; MCU-NEXT:    fxch %st(1)
-; MCU-NEXT:    fmul %st(0), %st(0)
+; MCU-NEXT:    fmul %st, %st(0)
 ; MCU-NEXT:    fxch %st(2)
-; MCU-NEXT:    fmul %st(0), %st(0)
+; MCU-NEXT:    fmul %st, %st(0)
 ; MCU-NEXT:    fxch %st(3)
-; MCU-NEXT:    fmul %st(0), %st(0)
+; MCU-NEXT:    fmul %st, %st(0)
 ; MCU-NEXT:    testl %eax, %eax
 ; MCU-NEXT:    flds (%edx)
 ; MCU-NEXT:    je .LBB5_2
index b4330ea58ea5a3d832e1508b4c4397d2743ec25f..b64450863427ba8c37e49ff85932deffe8088fb3 100644 (file)
@@ -115,13 +115,13 @@ entry:
 ; GNU_SINCOS: callq sincosl
 ; GNU_SINCOS: fldt 16(%rsp)
 ; GNU_SINCOS: fldt 32(%rsp)
-; GNU_SINCOS: faddp %st(1)
+; GNU_SINCOS: faddp %st, %st(1)
 
 ; GNU_SINCOS_FASTMATH-LABEL: test3:
 ; GNU_SINCOS_FASTMATH: callq sincosl
 ; GNU_SINCOS_FASTMATH: fldt 16(%{{[re]}}sp)
 ; GNU_SINCOS_FASTMATH: fldt 32(%{{[re]}}sp)
-; GNU_SINCOS_FASTMATH: faddp %st(1)
+; GNU_SINCOS_FASTMATH: faddp %st, %st(1)
   %call = tail call x86_fp80 @sinl(x86_fp80 %x) readnone
   %call1 = tail call x86_fp80 @cosl(x86_fp80 %x) readnone
   %add = fadd x86_fp80 %call, %call1
index 1921f8c75a3d10ce302c3470f5d19f082d70aed2..599f313b13025f22c08498969800392f35687e76 100644 (file)
@@ -180,8 +180,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fadd %st(0), %st(1)
-; GENERIC-NEXT:    fadd %st(2)
+; GENERIC-NEXT:    fadd %st, %st(1)
+; GENERIC-NEXT:    fadd %st(2), %st
 ; GENERIC-NEXT:    fadds (%ecx)
 ; GENERIC-NEXT:    faddl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -192,8 +192,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fadd %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    fadd %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    fadd %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fadd %st(2), %st # sched: [5:5.00]
 ; ATOM-NEXT:    fadds (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    faddl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -204,8 +204,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT:    fadd %st(2) # sched: [3:1.00]
+; SLM-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; SLM-NEXT:    fadds (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    faddl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -216,8 +216,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    fadd %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; SANDY-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -228,8 +228,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; HASWELL-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -240,8 +240,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    fadds (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    faddl (%eax) # sched: [9:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -252,8 +252,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fadd %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -264,8 +264,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT:    fadd %st(2) # sched: [3:1.00]
+; SKX-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; SKX-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -276,8 +276,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fadd %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fadd %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fadd %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fadd %st(2), %st # sched: [5:1.00]
 ; BDVER2-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -288,8 +288,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    fadd %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    fadds (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    faddl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -300,8 +300,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    fadd %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fadd %st(2), %st # sched: [3:1.00]
 ; ZNVER1-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    faddl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -316,8 +316,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    faddp %st(1)
-; GENERIC-NEXT:    faddp %st(2)
+; GENERIC-NEXT:    faddp %st, %st(1)
+; GENERIC-NEXT:    faddp %st, %st(2)
 ; GENERIC-NEXT:    fiadds (%ecx)
 ; GENERIC-NEXT:    fiaddl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -328,8 +328,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    faddp %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    faddp %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    faddp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    faddp %st, %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fiadds (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fiaddl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -340,8 +340,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    faddp %st(1) # sched: [3:1.00]
-; SLM-NEXT:    faddp %st(2) # sched: [3:1.00]
+; SLM-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fiadds (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fiaddl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -352,8 +352,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    faddp %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    faddp %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fiadds (%ecx) # sched: [13:2.00]
 ; SANDY-NEXT:    fiaddl (%eax) # sched: [13:2.00]
 ; SANDY-NEXT:    #NO_APP
@@ -364,8 +364,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    faddp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    faddp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fiadds (%ecx) # sched: [13:2.00]
 ; HASWELL-NEXT:    fiaddl (%eax) # sched: [13:2.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -376,8 +376,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    faddp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    faddp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fiadds (%ecx) # sched: [12:2.00]
 ; BROADWELL-NEXT:    fiaddl (%eax) # sched: [12:2.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -388,8 +388,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    faddp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    faddp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fiadds (%ecx) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    fiaddl (%eax) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -400,8 +400,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    faddp %st(1) # sched: [3:1.00]
-; SKX-NEXT:    faddp %st(2) # sched: [3:1.00]
+; SKX-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fiadds (%ecx) # sched: [13:2.00]
 ; SKX-NEXT:    fiaddl (%eax) # sched: [13:2.00]
 ; SKX-NEXT:    #NO_APP
@@ -412,8 +412,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    faddp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    faddp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    faddp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    faddp %st, %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fiadds (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fiaddl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -424,8 +424,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    faddp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    faddp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fiadds (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fiaddl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -436,8 +436,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    faddp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    faddp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    faddp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    faddp %st, %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fiadds (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fiaddl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -807,154 +807,154 @@ define void @test_fcmov() optsize {
 ; GENERIC-LABEL: test_fcmov:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fcmovb %st(1), %st(0)
-; GENERIC-NEXT:    fcmovbe %st(1), %st(0)
-; GENERIC-NEXT:    fcmove %st(1), %st(0)
-; GENERIC-NEXT:    fcmovnb %st(1), %st(0)
-; GENERIC-NEXT:    fcmovnbe %st(1), %st(0)
-; GENERIC-NEXT:    fcmovne %st(1), %st(0)
-; GENERIC-NEXT:    fcmovnu %st(1), %st(0)
-; GENERIC-NEXT:    fcmovu %st(1), %st(0)
+; GENERIC-NEXT:    fcmovb %st(1), %st
+; GENERIC-NEXT:    fcmovbe %st(1), %st
+; GENERIC-NEXT:    fcmove %st(1), %st
+; GENERIC-NEXT:    fcmovnb %st(1), %st
+; GENERIC-NEXT:    fcmovnbe %st(1), %st
+; GENERIC-NEXT:    fcmovne %st(1), %st
+; GENERIC-NEXT:    fcmovnu %st(1), %st
+; GENERIC-NEXT:    fcmovu %st(1), %st
 ; GENERIC-NEXT:    #NO_APP
 ; GENERIC-NEXT:    retl
 ;
 ; ATOM-LABEL: test_fcmov:
 ; ATOM:       # %bb.0:
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fcmovb %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovbe %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmove %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovnb %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovnbe %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovne %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovnu %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT:    fcmovu %st(1), %st(0) # sched: [9:4.50]
+; ATOM-NEXT:    fcmovb %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovbe %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmove %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovnb %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovnbe %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovne %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovnu %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcmovu %st(1), %st # sched: [9:4.50]
 ; ATOM-NEXT:    #NO_APP
 ; ATOM-NEXT:    retl # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_fcmov:
 ; SLM:       # %bb.0:
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SLM-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; SLM-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; SLM-NEXT:    #NO_APP
 ; SLM-NEXT:    retl # sched: [4:1.00]
 ;
 ; SANDY-LABEL: test_fcmov:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fcmovb %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmove %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovne %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT:    fcmovu %st(1), %st(0) # sched: [3:2.00]
+; SANDY-NEXT:    fcmovb %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovbe %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmove %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovnb %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovnbe %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovne %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovnu %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT:    fcmovu %st(1), %st # sched: [3:2.00]
 ; SANDY-NEXT:    #NO_APP
 ; SANDY-NEXT:    retl # sched: [6:1.00]
 ;
 ; HASWELL-LABEL: test_fcmov:
 ; HASWELL:       # %bb.0:
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; HASWELL-NEXT:    #NO_APP
 ; HASWELL-NEXT:    retl # sched: [7:1.00]
 ;
 ; BROADWELL-LABEL: test_fcmov:
 ; BROADWELL:       # %bb.0:
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    #NO_APP
 ; BROADWELL-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKYLAKE-LABEL: test_fcmov:
 ; SKYLAKE:       # %bb.0:
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
 ; SKYLAKE-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKX-LABEL: test_fcmov:
 ; SKX:       # %bb.0:
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SKX-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; SKX-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; SKX-NEXT:    #NO_APP
 ; SKX-NEXT:    retl # sched: [6:0.50]
 ;
 ; BDVER2-LABEL: test_fcmov:
 ; BDVER2:       # %bb.0:
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fcmovb %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovbe %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmove %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovnb %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovnbe %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovne %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovnu %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT:    fcmovu %st(1), %st(0) # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovb %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovbe %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmove %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovnb %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovnbe %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovne %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovnu %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcmovu %st(1), %st # sched: [1:1.00]
 ; BDVER2-NEXT:    #NO_APP
 ; BDVER2-NEXT:    retl # sched: [5:1.00]
 ;
 ; BTVER2-LABEL: test_fcmov:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovb %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovbe %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmove %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovnb %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovnbe %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovne %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovnu %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcmovu %st(1), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retl # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_fcmov:
 ; ZNVER1:       # %bb.0:
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fcmovb %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovbe %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmove %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovnb %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovnbe %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovne %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovnu %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT:    fcmovu %st(1), %st(0) # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovb %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovbe %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmove %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovnb %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovnbe %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovne %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovnu %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT:    fcmovu %st(1), %st # sched: [100:0.25]
 ; ZNVER1-NEXT:    #NO_APP
 ; ZNVER1-NEXT:    retl # sched: [1:0.50]
   tail call void asm sideeffect "fcmovb %st(1), %st(0) \0A\09 fcmovbe %st(1), %st(0) \0A\09 fcmove %st(1), %st(0) \0A\09 fcmovnb %st(1), %st(0) \0A\09 fcmovnbe %st(1), %st(0) \0A\09 fcmovne %st(1), %st(0) \0A\09 fcmovnu %st(1), %st(0) \0A\09 fcmovu %st(1), %st(0)", ""() nounwind
@@ -1248,88 +1248,88 @@ define void @test_fcomi_fcomip() optsize {
 ; GENERIC-LABEL: test_fcomi_fcomip:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fcomi %st(3)
-; GENERIC-NEXT:    fcompi %st(3)
+; GENERIC-NEXT:    fcomi %st(3), %st
+; GENERIC-NEXT:    fcompi %st(3), %st
 ; GENERIC-NEXT:    #NO_APP
 ; GENERIC-NEXT:    retl
 ;
 ; ATOM-LABEL: test_fcomi_fcomip:
 ; ATOM:       # %bb.0:
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fcomi %st(3) # sched: [9:4.50]
-; ATOM-NEXT:    fcompi %st(3) # sched: [9:4.50]
+; ATOM-NEXT:    fcomi %st(3), %st # sched: [9:4.50]
+; ATOM-NEXT:    fcompi %st(3), %st # sched: [9:4.50]
 ; ATOM-NEXT:    #NO_APP
 ; ATOM-NEXT:    retl # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_fcomi_fcomip:
 ; SLM:       # %bb.0:
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fcomi %st(3) # sched: [3:1.00]
-; SLM-NEXT:    fcompi %st(3) # sched: [3:1.00]
+; SLM-NEXT:    fcomi %st(3), %st # sched: [3:1.00]
+; SLM-NEXT:    fcompi %st(3), %st # sched: [3:1.00]
 ; SLM-NEXT:    #NO_APP
 ; SLM-NEXT:    retl # sched: [4:1.00]
 ;
 ; SANDY-LABEL: test_fcomi_fcomip:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fcomi %st(3) # sched: [3:1.00]
-; SANDY-NEXT:    fcompi %st(3) # sched: [3:1.00]
+; SANDY-NEXT:    fcomi %st(3), %st # sched: [3:1.00]
+; SANDY-NEXT:    fcompi %st(3), %st # sched: [3:1.00]
 ; SANDY-NEXT:    #NO_APP
 ; SANDY-NEXT:    retl # sched: [6:1.00]
 ;
 ; HASWELL-LABEL: test_fcomi_fcomip:
 ; HASWELL:       # %bb.0:
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fcomi %st(3) # sched: [1:0.50]
-; HASWELL-NEXT:    fcompi %st(3) # sched: [1:0.50]
+; HASWELL-NEXT:    fcomi %st(3), %st # sched: [1:0.50]
+; HASWELL-NEXT:    fcompi %st(3), %st # sched: [1:0.50]
 ; HASWELL-NEXT:    #NO_APP
 ; HASWELL-NEXT:    retl # sched: [7:1.00]
 ;
 ; BROADWELL-LABEL: test_fcomi_fcomip:
 ; BROADWELL:       # %bb.0:
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fcomi %st(3) # sched: [3:1.00]
-; BROADWELL-NEXT:    fcompi %st(3) # sched: [3:1.00]
+; BROADWELL-NEXT:    fcomi %st(3), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fcompi %st(3), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    #NO_APP
 ; BROADWELL-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKYLAKE-LABEL: test_fcomi_fcomip:
 ; SKYLAKE:       # %bb.0:
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fcomi %st(3) # sched: [2:1.00]
-; SKYLAKE-NEXT:    fcompi %st(3) # sched: [2:1.00]
+; SKYLAKE-NEXT:    fcomi %st(3), %st # sched: [2:1.00]
+; SKYLAKE-NEXT:    fcompi %st(3), %st # sched: [2:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
 ; SKYLAKE-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKX-LABEL: test_fcomi_fcomip:
 ; SKX:       # %bb.0:
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fcomi %st(3) # sched: [2:1.00]
-; SKX-NEXT:    fcompi %st(3) # sched: [2:1.00]
+; SKX-NEXT:    fcomi %st(3), %st # sched: [2:1.00]
+; SKX-NEXT:    fcompi %st(3), %st # sched: [2:1.00]
 ; SKX-NEXT:    #NO_APP
 ; SKX-NEXT:    retl # sched: [6:0.50]
 ;
 ; BDVER2-LABEL: test_fcomi_fcomip:
 ; BDVER2:       # %bb.0:
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fcomi %st(3) # sched: [1:1.00]
-; BDVER2-NEXT:    fcompi %st(3) # sched: [1:1.00]
+; BDVER2-NEXT:    fcomi %st(3), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fcompi %st(3), %st # sched: [1:1.00]
 ; BDVER2-NEXT:    #NO_APP
 ; BDVER2-NEXT:    retl # sched: [5:1.00]
 ;
 ; BTVER2-LABEL: test_fcomi_fcomip:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fcomi %st(3) # sched: [3:1.00]
-; BTVER2-NEXT:    fcompi %st(3) # sched: [3:1.00]
+; BTVER2-NEXT:    fcomi %st(3), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fcompi %st(3), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retl # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_fcomi_fcomip:
 ; ZNVER1:       # %bb.0:
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fcomi %st(3) # sched: [9:0.50]
-; ZNVER1-NEXT:    fcompi %st(3) # sched: [9:0.50]
+; ZNVER1-NEXT:    fcomi %st(3), %st # sched: [9:0.50]
+; ZNVER1-NEXT:    fcompi %st(3), %st # sched: [9:0.50]
 ; ZNVER1-NEXT:    #NO_APP
 ; ZNVER1-NEXT:    retl # sched: [1:0.50]
   tail call void asm sideeffect "fcomi %st(3) \0A\09 fcomip %st(3)", ""() nounwind
@@ -1504,8 +1504,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fdiv %st(0), %st(1)
-; GENERIC-NEXT:    fdiv %st(2)
+; GENERIC-NEXT:    fdiv %st, %st(1)
+; GENERIC-NEXT:    fdiv %st(2), %st
 ; GENERIC-NEXT:    fdivs (%ecx)
 ; GENERIC-NEXT:    fdivl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -1516,8 +1516,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fdiv %st(0), %st(1) # sched: [34:17.00]
-; ATOM-NEXT:    fdiv %st(2) # sched: [34:17.00]
+; ATOM-NEXT:    fdiv %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdiv %st(2), %st # sched: [34:17.00]
 ; ATOM-NEXT:    fdivs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivl (%eax) # sched: [34:17.00]
 ; ATOM-NEXT:    #NO_APP
@@ -1528,8 +1528,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fdiv %st(0), %st(1) # sched: [19:17.00]
-; SLM-NEXT:    fdiv %st(2) # sched: [19:17.00]
+; SLM-NEXT:    fdiv %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdiv %st(2), %st # sched: [19:17.00]
 ; SLM-NEXT:    fdivs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fdivl (%eax) # sched: [22:17.00]
 ; SLM-NEXT:    #NO_APP
@@ -1540,8 +1540,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fdiv %st(0), %st(1) # sched: [14:14.00]
-; SANDY-NEXT:    fdiv %st(2) # sched: [14:14.00]
+; SANDY-NEXT:    fdiv %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdiv %st(2), %st # sched: [14:14.00]
 ; SANDY-NEXT:    fdivs (%ecx) # sched: [31:1.00]
 ; SANDY-NEXT:    fdivl (%eax) # sched: [31:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -1552,8 +1552,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fdiv %st(0), %st(1) # sched: [24:1.00]
-; HASWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
+; HASWELL-NEXT:    fdiv %st, %st(1) # sched: [24:1.00]
+; HASWELL-NEXT:    fdiv %st(2), %st # sched: [20:1.00]
 ; HASWELL-NEXT:    fdivs (%ecx) # sched: [31:1.00]
 ; HASWELL-NEXT:    fdivl (%eax) # sched: [31:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -1564,8 +1564,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
-; BROADWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
+; BROADWELL-NEXT:    fdiv %st, %st(1) # sched: [15:1.00]
+; BROADWELL-NEXT:    fdiv %st(2), %st # sched: [20:1.00]
 ; BROADWELL-NEXT:    fdivs (%ecx) # sched: [21:1.00]
 ; BROADWELL-NEXT:    fdivl (%eax) # sched: [21:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -1576,8 +1576,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
-; SKYLAKE-NEXT:    fdiv %st(2) # sched: [20:1.00]
+; SKYLAKE-NEXT:    fdiv %st, %st(1) # sched: [15:1.00]
+; SKYLAKE-NEXT:    fdiv %st(2), %st # sched: [20:1.00]
 ; SKYLAKE-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; SKYLAKE-NEXT:    fdivl (%eax) # sched: [22:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -1588,8 +1588,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
-; SKX-NEXT:    fdiv %st(2) # sched: [20:1.00]
+; SKX-NEXT:    fdiv %st, %st(1) # sched: [15:1.00]
+; SKX-NEXT:    fdiv %st(2), %st # sched: [20:1.00]
 ; SKX-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; SKX-NEXT:    fdivl (%eax) # sched: [22:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -1600,8 +1600,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fdiv %st(0), %st(1) # sched: [9:9.50]
-; BDVER2-NEXT:    fdiv %st(2) # sched: [9:9.50]
+; BDVER2-NEXT:    fdiv %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdiv %st(2), %st # sched: [9:9.50]
 ; BDVER2-NEXT:    fdivs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fdivl (%eax) # sched: [14:9.50]
 ; BDVER2-NEXT:    #NO_APP
@@ -1612,8 +1612,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdiv %st(0), %st(1) # sched: [19:19.00]
-; BTVER2-NEXT:    fdiv %st(2) # sched: [19:19.00]
+; BTVER2-NEXT:    fdiv %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdiv %st(2), %st # sched: [19:19.00]
 ; BTVER2-NEXT:    fdivs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fdivl (%eax) # sched: [24:19.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -1624,8 +1624,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT:    fdiv %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdiv %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdiv %st(2), %st # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fdivl (%eax) # sched: [22:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -1640,8 +1640,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fdivp %st(1)
-; GENERIC-NEXT:    fdivp %st(2)
+; GENERIC-NEXT:    fdivp %st, %st(1)
+; GENERIC-NEXT:    fdivp %st, %st(2)
 ; GENERIC-NEXT:    fidivs (%ecx)
 ; GENERIC-NEXT:    fidivl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -1652,8 +1652,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fdivp %st(1) # sched: [34:17.00]
-; ATOM-NEXT:    fdivp %st(2) # sched: [34:17.00]
+; ATOM-NEXT:    fdivp %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdivp %st, %st(2) # sched: [34:17.00]
 ; ATOM-NEXT:    fidivs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fidivl (%eax) # sched: [34:17.00]
 ; ATOM-NEXT:    #NO_APP
@@ -1664,8 +1664,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fdivp %st(1) # sched: [19:17.00]
-; SLM-NEXT:    fdivp %st(2) # sched: [19:17.00]
+; SLM-NEXT:    fdivp %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdivp %st, %st(2) # sched: [19:17.00]
 ; SLM-NEXT:    fidivs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fidivl (%eax) # sched: [22:17.00]
 ; SLM-NEXT:    #NO_APP
@@ -1676,8 +1676,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fdivp %st(1) # sched: [14:14.00]
-; SANDY-NEXT:    fdivp %st(2) # sched: [14:14.00]
+; SANDY-NEXT:    fdivp %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdivp %st, %st(2) # sched: [14:14.00]
 ; SANDY-NEXT:    fidivs (%ecx) # sched: [34:1.00]
 ; SANDY-NEXT:    fidivl (%eax) # sched: [34:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -1688,8 +1688,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fdivp %st(1) # sched: [24:1.00]
-; HASWELL-NEXT:    fdivp %st(2) # sched: [24:1.00]
+; HASWELL-NEXT:    fdivp %st, %st(1) # sched: [24:1.00]
+; HASWELL-NEXT:    fdivp %st, %st(2) # sched: [24:1.00]
 ; HASWELL-NEXT:    fidivs (%ecx) # sched: [34:1.00]
 ; HASWELL-NEXT:    fidivl (%eax) # sched: [34:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -1700,8 +1700,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fdivp %st(1) # sched: [15:1.00]
-; BROADWELL-NEXT:    fdivp %st(2) # sched: [15:1.00]
+; BROADWELL-NEXT:    fdivp %st, %st(1) # sched: [15:1.00]
+; BROADWELL-NEXT:    fdivp %st, %st(2) # sched: [15:1.00]
 ; BROADWELL-NEXT:    fidivs (%ecx) # sched: [24:1.00]
 ; BROADWELL-NEXT:    fidivl (%eax) # sched: [24:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -1712,8 +1712,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fdivp %st(1) # sched: [15:1.00]
-; SKYLAKE-NEXT:    fdivp %st(2) # sched: [15:1.00]
+; SKYLAKE-NEXT:    fdivp %st, %st(1) # sched: [15:1.00]
+; SKYLAKE-NEXT:    fdivp %st, %st(2) # sched: [15:1.00]
 ; SKYLAKE-NEXT:    fidivs (%ecx) # sched: [25:1.00]
 ; SKYLAKE-NEXT:    fidivl (%eax) # sched: [25:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -1724,8 +1724,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fdivp %st(1) # sched: [15:1.00]
-; SKX-NEXT:    fdivp %st(2) # sched: [15:1.00]
+; SKX-NEXT:    fdivp %st, %st(1) # sched: [15:1.00]
+; SKX-NEXT:    fdivp %st, %st(2) # sched: [15:1.00]
 ; SKX-NEXT:    fidivs (%ecx) # sched: [25:1.00]
 ; SKX-NEXT:    fidivl (%eax) # sched: [25:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -1736,8 +1736,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fdivp %st(1) # sched: [9:9.50]
-; BDVER2-NEXT:    fdivp %st(2) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivp %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivp %st, %st(2) # sched: [9:9.50]
 ; BDVER2-NEXT:    fidivs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fidivl (%eax) # sched: [14:9.50]
 ; BDVER2-NEXT:    #NO_APP
@@ -1748,8 +1748,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdivp %st(1) # sched: [19:19.00]
-; BTVER2-NEXT:    fdivp %st(2) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivp %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivp %st, %st(2) # sched: [19:19.00]
 ; BTVER2-NEXT:    fidivs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fidivl (%eax) # sched: [24:19.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -1760,8 +1760,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fdivp %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT:    fdivp %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivp %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivp %st, %st(2) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fidivs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fidivl (%eax) # sched: [22:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -1776,8 +1776,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fdivr %st(0), %st(1)
-; GENERIC-NEXT:    fdivr %st(2)
+; GENERIC-NEXT:    fdivr %st, %st(1)
+; GENERIC-NEXT:    fdivr %st(2), %st
 ; GENERIC-NEXT:    fdivrs (%ecx)
 ; GENERIC-NEXT:    fdivrl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -1788,8 +1788,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fdivr %st(0), %st(1) # sched: [34:17.00]
-; ATOM-NEXT:    fdivr %st(2) # sched: [34:17.00]
+; ATOM-NEXT:    fdivr %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdivr %st(2), %st # sched: [34:17.00]
 ; ATOM-NEXT:    fdivrs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivrl (%eax) # sched: [34:17.00]
 ; ATOM-NEXT:    #NO_APP
@@ -1800,8 +1800,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fdivr %st(0), %st(1) # sched: [19:17.00]
-; SLM-NEXT:    fdivr %st(2) # sched: [19:17.00]
+; SLM-NEXT:    fdivr %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdivr %st(2), %st # sched: [19:17.00]
 ; SLM-NEXT:    fdivrs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fdivrl (%eax) # sched: [22:17.00]
 ; SLM-NEXT:    #NO_APP
@@ -1812,8 +1812,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fdivr %st(0), %st(1) # sched: [14:14.00]
-; SANDY-NEXT:    fdivr %st(2) # sched: [14:14.00]
+; SANDY-NEXT:    fdivr %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdivr %st(2), %st # sched: [14:14.00]
 ; SANDY-NEXT:    fdivrs (%ecx) # sched: [31:1.00]
 ; SANDY-NEXT:    fdivrl (%eax) # sched: [31:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -1824,8 +1824,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
-; HASWELL-NEXT:    fdivr %st(2) # sched: [24:1.00]
+; HASWELL-NEXT:    fdivr %st, %st(1) # sched: [20:1.00]
+; HASWELL-NEXT:    fdivr %st(2), %st # sched: [24:1.00]
 ; HASWELL-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; HASWELL-NEXT:    fdivrl (%eax) # sched: [27:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -1836,8 +1836,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
-; BROADWELL-NEXT:    fdivr %st(2) # sched: [15:1.00]
+; BROADWELL-NEXT:    fdivr %st, %st(1) # sched: [20:1.00]
+; BROADWELL-NEXT:    fdivr %st(2), %st # sched: [15:1.00]
 ; BROADWELL-NEXT:    fdivrs (%ecx) # sched: [26:1.00]
 ; BROADWELL-NEXT:    fdivrl (%eax) # sched: [26:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -1848,8 +1848,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
-; SKYLAKE-NEXT:    fdivr %st(2) # sched: [15:1.00]
+; SKYLAKE-NEXT:    fdivr %st, %st(1) # sched: [20:1.00]
+; SKYLAKE-NEXT:    fdivr %st(2), %st # sched: [15:1.00]
 ; SKYLAKE-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; SKYLAKE-NEXT:    fdivrl (%eax) # sched: [27:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -1860,8 +1860,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
-; SKX-NEXT:    fdivr %st(2) # sched: [15:1.00]
+; SKX-NEXT:    fdivr %st, %st(1) # sched: [20:1.00]
+; SKX-NEXT:    fdivr %st(2), %st # sched: [15:1.00]
 ; SKX-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; SKX-NEXT:    fdivrl (%eax) # sched: [27:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -1872,8 +1872,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fdivr %st(0), %st(1) # sched: [9:9.50]
-; BDVER2-NEXT:    fdivr %st(2) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivr %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivr %st(2), %st # sched: [9:9.50]
 ; BDVER2-NEXT:    fdivrs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fdivrl (%eax) # sched: [14:9.50]
 ; BDVER2-NEXT:    #NO_APP
@@ -1884,8 +1884,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdivr %st(0), %st(1) # sched: [19:19.00]
-; BTVER2-NEXT:    fdivr %st(2) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivr %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivr %st(2), %st # sched: [19:19.00]
 ; BTVER2-NEXT:    fdivrs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fdivrl (%eax) # sched: [24:19.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -1896,8 +1896,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fdivr %st(0), %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT:    fdivr %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivr %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivr %st(2), %st # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdivrs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fdivrl (%eax) # sched: [22:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -1912,8 +1912,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fdivrp %st(1)
-; GENERIC-NEXT:    fdivrp %st(2)
+; GENERIC-NEXT:    fdivrp %st, %st(1)
+; GENERIC-NEXT:    fdivrp %st, %st(2)
 ; GENERIC-NEXT:    fidivrs (%ecx)
 ; GENERIC-NEXT:    fidivrl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -1924,8 +1924,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fdivrp %st(1) # sched: [34:17.00]
-; ATOM-NEXT:    fdivrp %st(2) # sched: [34:17.00]
+; ATOM-NEXT:    fdivrp %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdivrp %st, %st(2) # sched: [34:17.00]
 ; ATOM-NEXT:    fidivrs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fidivrl (%eax) # sched: [34:17.00]
 ; ATOM-NEXT:    #NO_APP
@@ -1936,8 +1936,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fdivrp %st(1) # sched: [19:17.00]
-; SLM-NEXT:    fdivrp %st(2) # sched: [19:17.00]
+; SLM-NEXT:    fdivrp %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdivrp %st, %st(2) # sched: [19:17.00]
 ; SLM-NEXT:    fidivrs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fidivrl (%eax) # sched: [22:17.00]
 ; SLM-NEXT:    #NO_APP
@@ -1948,8 +1948,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fdivrp %st(1) # sched: [14:14.00]
-; SANDY-NEXT:    fdivrp %st(2) # sched: [14:14.00]
+; SANDY-NEXT:    fdivrp %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdivrp %st, %st(2) # sched: [14:14.00]
 ; SANDY-NEXT:    fidivrs (%ecx) # sched: [34:1.00]
 ; SANDY-NEXT:    fidivrl (%eax) # sched: [34:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -1960,8 +1960,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fdivrp %st(1) # sched: [20:1.00]
-; HASWELL-NEXT:    fdivrp %st(2) # sched: [20:1.00]
+; HASWELL-NEXT:    fdivrp %st, %st(1) # sched: [20:1.00]
+; HASWELL-NEXT:    fdivrp %st, %st(2) # sched: [20:1.00]
 ; HASWELL-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
 ; HASWELL-NEXT:    fidivrl (%eax) # sched: [30:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -1972,8 +1972,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fdivrp %st(1) # sched: [20:1.00]
-; BROADWELL-NEXT:    fdivrp %st(2) # sched: [20:1.00]
+; BROADWELL-NEXT:    fdivrp %st, %st(1) # sched: [20:1.00]
+; BROADWELL-NEXT:    fdivrp %st, %st(2) # sched: [20:1.00]
 ; BROADWELL-NEXT:    fidivrs (%ecx) # sched: [29:1.00]
 ; BROADWELL-NEXT:    fidivrl (%eax) # sched: [29:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -1984,8 +1984,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fdivrp %st(1) # sched: [20:1.00]
-; SKYLAKE-NEXT:    fdivrp %st(2) # sched: [20:1.00]
+; SKYLAKE-NEXT:    fdivrp %st, %st(1) # sched: [20:1.00]
+; SKYLAKE-NEXT:    fdivrp %st, %st(2) # sched: [20:1.00]
 ; SKYLAKE-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
 ; SKYLAKE-NEXT:    fidivrl (%eax) # sched: [30:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -1996,8 +1996,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fdivrp %st(1) # sched: [20:1.00]
-; SKX-NEXT:    fdivrp %st(2) # sched: [20:1.00]
+; SKX-NEXT:    fdivrp %st, %st(1) # sched: [20:1.00]
+; SKX-NEXT:    fdivrp %st, %st(2) # sched: [20:1.00]
 ; SKX-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
 ; SKX-NEXT:    fidivrl (%eax) # sched: [30:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -2008,8 +2008,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fdivrp %st(1) # sched: [9:9.50]
-; BDVER2-NEXT:    fdivrp %st(2) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivrp %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivrp %st, %st(2) # sched: [9:9.50]
 ; BDVER2-NEXT:    fidivrs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fidivrl (%eax) # sched: [14:9.50]
 ; BDVER2-NEXT:    #NO_APP
@@ -2020,8 +2020,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdivrp %st(1) # sched: [19:19.00]
-; BTVER2-NEXT:    fdivrp %st(2) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivrp %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivrp %st, %st(2) # sched: [19:19.00]
 ; BTVER2-NEXT:    fidivrs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fidivrl (%eax) # sched: [24:19.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -2032,8 +2032,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fdivrp %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT:    fdivrp %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivrp %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivrp %st, %st(2) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fidivrs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fidivrl (%eax) # sched: [22:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -3243,8 +3243,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fmul %st(0), %st(1)
-; GENERIC-NEXT:    fmul %st(2)
+; GENERIC-NEXT:    fmul %st, %st(1)
+; GENERIC-NEXT:    fmul %st(2), %st
 ; GENERIC-NEXT:    fmuls (%ecx)
 ; GENERIC-NEXT:    fmull (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -3255,8 +3255,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fmul %st(0), %st(1) # sched: [4:4.00]
-; ATOM-NEXT:    fmul %st(2) # sched: [4:4.00]
+; ATOM-NEXT:    fmul %st, %st(1) # sched: [4:4.00]
+; ATOM-NEXT:    fmul %st(2), %st # sched: [4:4.00]
 ; ATOM-NEXT:    fmuls (%ecx) # sched: [4:4.00]
 ; ATOM-NEXT:    fmull (%eax) # sched: [4:4.00]
 ; ATOM-NEXT:    #NO_APP
@@ -3267,8 +3267,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fmul %st(0), %st(1) # sched: [5:2.00]
-; SLM-NEXT:    fmul %st(2) # sched: [5:2.00]
+; SLM-NEXT:    fmul %st, %st(1) # sched: [5:2.00]
+; SLM-NEXT:    fmul %st(2), %st # sched: [5:2.00]
 ; SLM-NEXT:    fmuls (%ecx) # sched: [8:2.00]
 ; SLM-NEXT:    fmull (%eax) # sched: [8:2.00]
 ; SLM-NEXT:    #NO_APP
@@ -3279,8 +3279,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
-; SANDY-NEXT:    fmul %st(2) # sched: [5:1.00]
+; SANDY-NEXT:    fmul %st, %st(1) # sched: [5:1.00]
+; SANDY-NEXT:    fmul %st(2), %st # sched: [5:1.00]
 ; SANDY-NEXT:    fmuls (%ecx) # sched: [12:1.00]
 ; SANDY-NEXT:    fmull (%eax) # sched: [12:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -3291,8 +3291,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
-; HASWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
+; HASWELL-NEXT:    fmul %st, %st(1) # sched: [5:1.00]
+; HASWELL-NEXT:    fmul %st(2), %st # sched: [5:1.00]
 ; HASWELL-NEXT:    fmuls (%ecx) # sched: [12:1.00]
 ; HASWELL-NEXT:    fmull (%eax) # sched: [12:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -3303,8 +3303,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
-; BROADWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
+; BROADWELL-NEXT:    fmul %st, %st(1) # sched: [5:1.00]
+; BROADWELL-NEXT:    fmul %st(2), %st # sched: [5:1.00]
 ; BROADWELL-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; BROADWELL-NEXT:    fmull (%eax) # sched: [11:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -3315,8 +3315,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
-; SKYLAKE-NEXT:    fmul %st(2) # sched: [4:1.00]
+; SKYLAKE-NEXT:    fmul %st, %st(1) # sched: [4:1.00]
+; SKYLAKE-NEXT:    fmul %st(2), %st # sched: [4:1.00]
 ; SKYLAKE-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; SKYLAKE-NEXT:    fmull (%eax) # sched: [11:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -3327,8 +3327,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
-; SKX-NEXT:    fmul %st(2) # sched: [4:1.00]
+; SKX-NEXT:    fmul %st, %st(1) # sched: [4:1.00]
+; SKX-NEXT:    fmul %st(2), %st # sched: [4:1.00]
 ; SKX-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; SKX-NEXT:    fmull (%eax) # sched: [11:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -3339,8 +3339,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fmul %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fmul %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fmul %st(2), %st # sched: [5:1.00]
 ; BDVER2-NEXT:    fmuls (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fmull (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -3351,8 +3351,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fmul %st(0), %st(1) # sched: [2:1.00]
-; BTVER2-NEXT:    fmul %st(2) # sched: [2:1.00]
+; BTVER2-NEXT:    fmul %st, %st(1) # sched: [2:1.00]
+; BTVER2-NEXT:    fmul %st(2), %st # sched: [2:1.00]
 ; BTVER2-NEXT:    fmuls (%ecx) # sched: [7:1.00]
 ; BTVER2-NEXT:    fmull (%eax) # sched: [7:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -3363,8 +3363,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fmul %st(0), %st(1) # sched: [3:0.50]
-; ZNVER1-NEXT:    fmul %st(2) # sched: [3:0.50]
+; ZNVER1-NEXT:    fmul %st, %st(1) # sched: [3:0.50]
+; ZNVER1-NEXT:    fmul %st(2), %st # sched: [3:0.50]
 ; ZNVER1-NEXT:    fmuls (%ecx) # sched: [10:0.50]
 ; ZNVER1-NEXT:    fmull (%eax) # sched: [10:0.50]
 ; ZNVER1-NEXT:    #NO_APP
@@ -3379,8 +3379,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fmulp %st(1)
-; GENERIC-NEXT:    fmulp %st(2)
+; GENERIC-NEXT:    fmulp %st, %st(1)
+; GENERIC-NEXT:    fmulp %st, %st(2)
 ; GENERIC-NEXT:    fimuls (%ecx)
 ; GENERIC-NEXT:    fimull (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -3391,8 +3391,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fmulp %st(1) # sched: [4:4.00]
-; ATOM-NEXT:    fmulp %st(2) # sched: [4:4.00]
+; ATOM-NEXT:    fmulp %st, %st(1) # sched: [4:4.00]
+; ATOM-NEXT:    fmulp %st, %st(2) # sched: [4:4.00]
 ; ATOM-NEXT:    fimuls (%ecx) # sched: [4:4.00]
 ; ATOM-NEXT:    fimull (%eax) # sched: [4:4.00]
 ; ATOM-NEXT:    #NO_APP
@@ -3403,8 +3403,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fmulp %st(1) # sched: [5:2.00]
-; SLM-NEXT:    fmulp %st(2) # sched: [5:2.00]
+; SLM-NEXT:    fmulp %st, %st(1) # sched: [5:2.00]
+; SLM-NEXT:    fmulp %st, %st(2) # sched: [5:2.00]
 ; SLM-NEXT:    fimuls (%ecx) # sched: [8:2.00]
 ; SLM-NEXT:    fimull (%eax) # sched: [8:2.00]
 ; SLM-NEXT:    #NO_APP
@@ -3415,8 +3415,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fmulp %st(1) # sched: [5:1.00]
-; SANDY-NEXT:    fmulp %st(2) # sched: [5:1.00]
+; SANDY-NEXT:    fmulp %st, %st(1) # sched: [5:1.00]
+; SANDY-NEXT:    fmulp %st, %st(2) # sched: [5:1.00]
 ; SANDY-NEXT:    fimuls (%ecx) # sched: [15:1.00]
 ; SANDY-NEXT:    fimull (%eax) # sched: [15:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -3427,8 +3427,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fmulp %st(1) # sched: [5:1.00]
-; HASWELL-NEXT:    fmulp %st(2) # sched: [5:1.00]
+; HASWELL-NEXT:    fmulp %st, %st(1) # sched: [5:1.00]
+; HASWELL-NEXT:    fmulp %st, %st(2) # sched: [5:1.00]
 ; HASWELL-NEXT:    fimuls (%ecx) # sched: [15:1.00]
 ; HASWELL-NEXT:    fimull (%eax) # sched: [15:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -3439,8 +3439,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fmulp %st(1) # sched: [5:1.00]
-; BROADWELL-NEXT:    fmulp %st(2) # sched: [5:1.00]
+; BROADWELL-NEXT:    fmulp %st, %st(1) # sched: [5:1.00]
+; BROADWELL-NEXT:    fmulp %st, %st(2) # sched: [5:1.00]
 ; BROADWELL-NEXT:    fimuls (%ecx) # sched: [14:1.00]
 ; BROADWELL-NEXT:    fimull (%eax) # sched: [14:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -3451,8 +3451,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fmulp %st(1) # sched: [4:1.00]
-; SKYLAKE-NEXT:    fmulp %st(2) # sched: [4:1.00]
+; SKYLAKE-NEXT:    fmulp %st, %st(1) # sched: [4:1.00]
+; SKYLAKE-NEXT:    fmulp %st, %st(2) # sched: [4:1.00]
 ; SKYLAKE-NEXT:    fimuls (%ecx) # sched: [14:1.00]
 ; SKYLAKE-NEXT:    fimull (%eax) # sched: [14:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -3463,8 +3463,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fmulp %st(1) # sched: [4:1.00]
-; SKX-NEXT:    fmulp %st(2) # sched: [4:1.00]
+; SKX-NEXT:    fmulp %st, %st(1) # sched: [4:1.00]
+; SKX-NEXT:    fmulp %st, %st(2) # sched: [4:1.00]
 ; SKX-NEXT:    fimuls (%ecx) # sched: [14:1.00]
 ; SKX-NEXT:    fimull (%eax) # sched: [14:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -3475,8 +3475,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fmulp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fmulp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fmulp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fmulp %st, %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fimuls (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fimull (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -3487,8 +3487,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fmulp %st(1) # sched: [2:1.00]
-; BTVER2-NEXT:    fmulp %st(2) # sched: [2:1.00]
+; BTVER2-NEXT:    fmulp %st, %st(1) # sched: [2:1.00]
+; BTVER2-NEXT:    fmulp %st, %st(2) # sched: [2:1.00]
 ; BTVER2-NEXT:    fimuls (%ecx) # sched: [7:1.00]
 ; BTVER2-NEXT:    fimull (%eax) # sched: [7:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -3499,8 +3499,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fmulp %st(1) # sched: [3:0.50]
-; ZNVER1-NEXT:    fmulp %st(2) # sched: [3:0.50]
+; ZNVER1-NEXT:    fmulp %st, %st(1) # sched: [3:0.50]
+; ZNVER1-NEXT:    fmulp %st, %st(2) # sched: [3:0.50]
 ; ZNVER1-NEXT:    fimuls (%ecx) # sched: [10:0.50]
 ; ZNVER1-NEXT:    fimull (%eax) # sched: [10:0.50]
 ; ZNVER1-NEXT:    #NO_APP
@@ -4983,8 +4983,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fsub %st(0), %st(1)
-; GENERIC-NEXT:    fsub %st(2)
+; GENERIC-NEXT:    fsub %st, %st(1)
+; GENERIC-NEXT:    fsub %st(2), %st
 ; GENERIC-NEXT:    fsubs (%ecx)
 ; GENERIC-NEXT:    fsubl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -4995,8 +4995,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fsub %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    fsub %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    fsub %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsub %st(2), %st # sched: [5:5.00]
 ; ATOM-NEXT:    fsubs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -5007,8 +5007,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT:    fsub %st(2) # sched: [3:1.00]
+; SLM-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; SLM-NEXT:    fsubs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fsubl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -5019,8 +5019,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    fsub %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; SANDY-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -5031,8 +5031,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; HASWELL-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -5043,8 +5043,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsubs (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    fsubl (%eax) # sched: [9:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -5055,8 +5055,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fsub %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -5067,8 +5067,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT:    fsub %st(2) # sched: [3:1.00]
+; SKX-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; SKX-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -5079,8 +5079,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fsub %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fsub %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fsub %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsub %st(2), %st # sched: [5:1.00]
 ; BDVER2-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -5091,8 +5091,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    fsub %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    fsubs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fsubl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -5103,8 +5103,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    fsub %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsub %st(2), %st # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fsubl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -5119,8 +5119,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fsubp %st(1)
-; GENERIC-NEXT:    fsubp %st(2)
+; GENERIC-NEXT:    fsubp %st, %st(1)
+; GENERIC-NEXT:    fsubp %st, %st(2)
 ; GENERIC-NEXT:    fisubs (%ecx)
 ; GENERIC-NEXT:    fisubl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -5131,8 +5131,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fsubp %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    fsubp %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    fsubp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsubp %st, %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fisubs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fisubl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -5143,8 +5143,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; SLM-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; SLM-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fisubs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fisubl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -5155,8 +5155,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fisubs (%ecx) # sched: [13:2.00]
 ; SANDY-NEXT:    fisubl (%eax) # sched: [13:2.00]
 ; SANDY-NEXT:    #NO_APP
@@ -5167,8 +5167,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fisubs (%ecx) # sched: [13:2.00]
 ; HASWELL-NEXT:    fisubl (%eax) # sched: [13:2.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -5179,8 +5179,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fisubs (%ecx) # sched: [12:2.00]
 ; BROADWELL-NEXT:    fisubl (%eax) # sched: [12:2.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -5191,8 +5191,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fisubs (%ecx) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    fisubl (%eax) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -5203,8 +5203,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; SKX-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; SKX-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fisubs (%ecx) # sched: [13:2.00]
 ; SKX-NEXT:    fisubl (%eax) # sched: [13:2.00]
 ; SKX-NEXT:    #NO_APP
@@ -5215,8 +5215,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fsubp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fsubp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubp %st, %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fisubs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fisubl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -5227,8 +5227,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fisubs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fisubl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -5239,8 +5239,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fsubp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    fsubp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubp %st, %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fisubs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fisubl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -5255,8 +5255,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fsubr %st(0), %st(1)
-; GENERIC-NEXT:    fsubr %st(2)
+; GENERIC-NEXT:    fsubr %st, %st(1)
+; GENERIC-NEXT:    fsubr %st(2), %st
 ; GENERIC-NEXT:    fsubrs (%ecx)
 ; GENERIC-NEXT:    fsubrl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -5267,8 +5267,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fsubr %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    fsubr %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    fsubr %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsubr %st(2), %st # sched: [5:5.00]
 ; ATOM-NEXT:    fsubrs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubrl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -5279,8 +5279,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; SLM-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; SLM-NEXT:    fsubrs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fsubrl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -5291,8 +5291,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; SANDY-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; SANDY-NEXT:    #NO_APP
@@ -5303,8 +5303,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; HASWELL-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -5315,8 +5315,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsubrs (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    fsubrl (%eax) # sched: [9:1.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -5327,8 +5327,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -5339,8 +5339,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; SKX-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; SKX-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; SKX-NEXT:    #NO_APP
@@ -5351,8 +5351,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fsubr %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fsubr %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubr %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubr %st(2), %st # sched: [5:1.00]
 ; BDVER2-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -5363,8 +5363,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    fsubrs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fsubrl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -5375,8 +5375,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    fsubr %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubr %st(2), %st # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fsubrl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -5391,8 +5391,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fsubrp %st(1)
-; GENERIC-NEXT:    fsubrp %st(2)
+; GENERIC-NEXT:    fsubrp %st, %st(1)
+; GENERIC-NEXT:    fsubrp %st, %st(2)
 ; GENERIC-NEXT:    fisubrs (%ecx)
 ; GENERIC-NEXT:    fisubrl (%eax)
 ; GENERIC-NEXT:    #NO_APP
@@ -5403,8 +5403,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fsubrp %st(1) # sched: [5:5.00]
-; ATOM-NEXT:    fsubrp %st(2) # sched: [5:5.00]
+; ATOM-NEXT:    fsubrp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsubrp %st, %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fisubrs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fisubrl (%eax) # sched: [5:5.00]
 ; ATOM-NEXT:    #NO_APP
@@ -5415,8 +5415,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; SLM-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; SLM-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fisubrs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fisubrl (%eax) # sched: [6:1.00]
 ; SLM-NEXT:    #NO_APP
@@ -5427,8 +5427,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; SANDY-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; SANDY-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
 ; SANDY-NEXT:    fisubrl (%eax) # sched: [13:2.00]
 ; SANDY-NEXT:    #NO_APP
@@ -5439,8 +5439,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
 ; HASWELL-NEXT:    fisubrl (%eax) # sched: [13:2.00]
 ; HASWELL-NEXT:    #NO_APP
@@ -5451,8 +5451,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fisubrs (%ecx) # sched: [12:2.00]
 ; BROADWELL-NEXT:    fisubrl (%eax) # sched: [12:2.00]
 ; BROADWELL-NEXT:    #NO_APP
@@ -5463,8 +5463,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    fisubrl (%eax) # sched: [13:2.00]
 ; SKYLAKE-NEXT:    #NO_APP
@@ -5475,8 +5475,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; SKX-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; SKX-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
 ; SKX-NEXT:    fisubrl (%eax) # sched: [13:2.00]
 ; SKX-NEXT:    #NO_APP
@@ -5487,8 +5487,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fsubrp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT:    fsubrp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubrp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubrp %st, %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fisubrs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fisubrl (%eax) # sched: [10:1.00]
 ; BDVER2-NEXT:    #NO_APP
@@ -5499,8 +5499,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fisubrs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fisubrl (%eax) # sched: [8:1.00]
 ; BTVER2-NEXT:    #NO_APP
@@ -5511,8 +5511,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fsubrp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT:    fsubrp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubrp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubrp %st, %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fisubrs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fisubrl (%eax) # sched: [10:1.00]
 ; ZNVER1-NEXT:    #NO_APP
@@ -5731,88 +5731,88 @@ define void @test_fucomi_fucomip() optsize {
 ; GENERIC-LABEL: test_fucomi_fucomip:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fucomi %st(3)
-; GENERIC-NEXT:    fucompi %st(3)
+; GENERIC-NEXT:    fucomi %st(3), %st
+; GENERIC-NEXT:    fucompi %st(3), %st
 ; GENERIC-NEXT:    #NO_APP
 ; GENERIC-NEXT:    retl
 ;
 ; ATOM-LABEL: test_fucomi_fucomip:
 ; ATOM:       # %bb.0:
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fucomi %st(3) # sched: [9:4.50]
-; ATOM-NEXT:    fucompi %st(3) # sched: [9:4.50]
+; ATOM-NEXT:    fucomi %st(3), %st # sched: [9:4.50]
+; ATOM-NEXT:    fucompi %st(3), %st # sched: [9:4.50]
 ; ATOM-NEXT:    #NO_APP
 ; ATOM-NEXT:    retl # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_fucomi_fucomip:
 ; SLM:       # %bb.0:
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fucomi %st(3) # sched: [3:1.00]
-; SLM-NEXT:    fucompi %st(3) # sched: [3:1.00]
+; SLM-NEXT:    fucomi %st(3), %st # sched: [3:1.00]
+; SLM-NEXT:    fucompi %st(3), %st # sched: [3:1.00]
 ; SLM-NEXT:    #NO_APP
 ; SLM-NEXT:    retl # sched: [4:1.00]
 ;
 ; SANDY-LABEL: test_fucomi_fucomip:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fucomi %st(3) # sched: [3:1.00]
-; SANDY-NEXT:    fucompi %st(3) # sched: [3:1.00]
+; SANDY-NEXT:    fucomi %st(3), %st # sched: [3:1.00]
+; SANDY-NEXT:    fucompi %st(3), %st # sched: [3:1.00]
 ; SANDY-NEXT:    #NO_APP
 ; SANDY-NEXT:    retl # sched: [6:1.00]
 ;
 ; HASWELL-LABEL: test_fucomi_fucomip:
 ; HASWELL:       # %bb.0:
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fucomi %st(3) # sched: [1:0.50]
-; HASWELL-NEXT:    fucompi %st(3) # sched: [1:0.50]
+; HASWELL-NEXT:    fucomi %st(3), %st # sched: [1:0.50]
+; HASWELL-NEXT:    fucompi %st(3), %st # sched: [1:0.50]
 ; HASWELL-NEXT:    #NO_APP
 ; HASWELL-NEXT:    retl # sched: [7:1.00]
 ;
 ; BROADWELL-LABEL: test_fucomi_fucomip:
 ; BROADWELL:       # %bb.0:
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fucomi %st(3) # sched: [3:1.00]
-; BROADWELL-NEXT:    fucompi %st(3) # sched: [3:1.00]
+; BROADWELL-NEXT:    fucomi %st(3), %st # sched: [3:1.00]
+; BROADWELL-NEXT:    fucompi %st(3), %st # sched: [3:1.00]
 ; BROADWELL-NEXT:    #NO_APP
 ; BROADWELL-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKYLAKE-LABEL: test_fucomi_fucomip:
 ; SKYLAKE:       # %bb.0:
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fucomi %st(3) # sched: [2:1.00]
-; SKYLAKE-NEXT:    fucompi %st(3) # sched: [2:1.00]
+; SKYLAKE-NEXT:    fucomi %st(3), %st # sched: [2:1.00]
+; SKYLAKE-NEXT:    fucompi %st(3), %st # sched: [2:1.00]
 ; SKYLAKE-NEXT:    #NO_APP
 ; SKYLAKE-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKX-LABEL: test_fucomi_fucomip:
 ; SKX:       # %bb.0:
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fucomi %st(3) # sched: [2:1.00]
-; SKX-NEXT:    fucompi %st(3) # sched: [2:1.00]
+; SKX-NEXT:    fucomi %st(3), %st # sched: [2:1.00]
+; SKX-NEXT:    fucompi %st(3), %st # sched: [2:1.00]
 ; SKX-NEXT:    #NO_APP
 ; SKX-NEXT:    retl # sched: [6:0.50]
 ;
 ; BDVER2-LABEL: test_fucomi_fucomip:
 ; BDVER2:       # %bb.0:
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fucomi %st(3) # sched: [1:1.00]
-; BDVER2-NEXT:    fucompi %st(3) # sched: [1:1.00]
+; BDVER2-NEXT:    fucomi %st(3), %st # sched: [1:1.00]
+; BDVER2-NEXT:    fucompi %st(3), %st # sched: [1:1.00]
 ; BDVER2-NEXT:    #NO_APP
 ; BDVER2-NEXT:    retl # sched: [5:1.00]
 ;
 ; BTVER2-LABEL: test_fucomi_fucomip:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fucomi %st(3) # sched: [3:1.00]
-; BTVER2-NEXT:    fucompi %st(3) # sched: [3:1.00]
+; BTVER2-NEXT:    fucomi %st(3), %st # sched: [3:1.00]
+; BTVER2-NEXT:    fucompi %st(3), %st # sched: [3:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retl # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_fucomi_fucomip:
 ; ZNVER1:       # %bb.0:
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fucomi %st(3) # sched: [9:0.50]
-; ZNVER1-NEXT:    fucompi %st(3) # sched: [9:0.50]
+; ZNVER1-NEXT:    fucomi %st(3), %st # sched: [9:0.50]
+; ZNVER1-NEXT:    fucompi %st(3), %st # sched: [9:0.50]
 ; ZNVER1-NEXT:    #NO_APP
 ; ZNVER1-NEXT:    retl # sched: [1:0.50]
   tail call void asm sideeffect "fucomi %st(3) \0A\09 fucomip %st(3)", ""() nounwind
index 8c4ad47eb8732a0ccefe8e52fd4ef87d71168725..1b1687b2a204b6a04476c1eab0ae69fe446a0926 100644 (file)
@@ -1,52 +1,52 @@
 # RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s
 # RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s
 
-# CHECK: fadd %st(0)
+# CHECK: fadd %st(0), %st
 0xd8,0xc0
 
-# CHECK: fadd %st(1)
+# CHECK: fadd %st(1), %st
 0xd8,0xc1
 
-# CHECK: fadd %st(2)
+# CHECK: fadd %st(2), %st
 0xd8,0xc2
 
-# CHECK: fadd %st(3)
+# CHECK: fadd %st(3), %st
 0xd8,0xc3
 
-# CHECK: fadd %st(4)
+# CHECK: fadd %st(4), %st
 0xd8,0xc4
 
-# CHECK: fadd %st(5)
+# CHECK: fadd %st(5), %st
 0xd8,0xc5
 
-# CHECK: fadd %st(6)
+# CHECK: fadd %st(6), %st
 0xd8,0xc6
 
-# CHECK: fadd %st(7)
+# CHECK: fadd %st(7), %st
 0xd8,0xc7
 
-# CHECK: fmul %st(0)
+# CHECK: fmul %st(0), %st
 0xd8,0xc8
 
-# CHECK: fmul %st(1)
+# CHECK: fmul %st(1), %st
 0xd8,0xc9
 
-# CHECK: fmul %st(2)
+# CHECK: fmul %st(2), %st
 0xd8,0xca
 
-# CHECK: fmul %st(3)
+# CHECK: fmul %st(3), %st
 0xd8,0xcb
 
-# CHECK: fmul %st(4)
+# CHECK: fmul %st(4), %st
 0xd8,0xcc
 
-# CHECK: fmul %st(5)
+# CHECK: fmul %st(5), %st
 0xd8,0xcd
 
-# CHECK: fmul %st(6)
+# CHECK: fmul %st(6), %st
 0xd8,0xce
 
-# CHECK: fmul %st(7)
+# CHECK: fmul %st(7), %st
 0xd8,0xcf
 
 # CHECK: fcom %st(0)
 # CHECK: fcomp %st(7)
 0xd8,0xdf
 
-# CHECK: fsub %st(0)
+# CHECK: fsub %st(0), %st
 0xd8,0xe0
 
-# CHECK: fsub %st(1)
+# CHECK: fsub %st(1), %st
 0xd8,0xe1
 
-# CHECK: fsub %st(2)
+# CHECK: fsub %st(2), %st
 0xd8,0xe2
 
-# CHECK: fsub %st(3)
+# CHECK: fsub %st(3), %st
 0xd8,0xe3
 
-# CHECK: fsub %st(4)
+# CHECK: fsub %st(4), %st
 0xd8,0xe4
 
-# CHECK: fsub %st(5)
+# CHECK: fsub %st(5), %st
 0xd8,0xe5
 
-# CHECK: fsub %st(6)
+# CHECK: fsub %st(6), %st
 0xd8,0xe6
 
-# CHECK: fsub %st(7)
+# CHECK: fsub %st(7), %st
 0xd8,0xe7
 
-# CHECK: fsubr %st(0)
+# CHECK: fsubr %st(0), %st
 0xd8,0xe8
 
-# CHECK: fsubr %st(1)
+# CHECK: fsubr %st(1), %st
 0xd8,0xe9
 
-# CHECK: fsubr %st(2)
+# CHECK: fsubr %st(2), %st
 0xd8,0xea
 
-# CHECK: fsubr %st(3)
+# CHECK: fsubr %st(3), %st
 0xd8,0xeb
 
-# CHECK: fsubr %st(4)
+# CHECK: fsubr %st(4), %st
 0xd8,0xec
 
-# CHECK: fsubr %st(5)
+# CHECK: fsubr %st(5), %st
 0xd8,0xed
 
-# CHECK: fsubr %st(6)
+# CHECK: fsubr %st(6), %st
 0xd8,0xee
 
-# CHECK: fsubr %st(7)
+# CHECK: fsubr %st(7), %st
 0xd8,0xef
 
-# CHECK: fdiv %st(0)
+# CHECK: fdiv %st(0), %st
 0xd8,0xf0
 
-# CHECK: fdiv %st(1)
+# CHECK: fdiv %st(1), %st
 0xd8,0xf1
 
-# CHECK: fdiv %st(2)
+# CHECK: fdiv %st(2), %st
 0xd8,0xf2
 
-# CHECK: fdiv %st(3)
+# CHECK: fdiv %st(3), %st
 0xd8,0xf3
 
-# CHECK: fdiv %st(4)
+# CHECK: fdiv %st(4), %st
 0xd8,0xf4
 
-# CHECK: fdiv %st(5)
+# CHECK: fdiv %st(5), %st
 0xd8,0xf5
 
-# CHECK: fdiv %st(6)
+# CHECK: fdiv %st(6), %st
 0xd8,0xf6
 
-# CHECK: fdiv %st(7)
+# CHECK: fdiv %st(7), %st
 0xd8,0xf7
 
-# CHECK: fdivr %st(0)
+# CHECK: fdivr %st(0), %st
 0xd8,0xf8
 
-# CHECK: fdivr %st(1)
+# CHECK: fdivr %st(1), %st
 0xd8,0xf9
 
-# CHECK: fdivr %st(2)
+# CHECK: fdivr %st(2), %st
 0xd8,0xfa
 
-# CHECK: fdivr %st(3)
+# CHECK: fdivr %st(3), %st
 0xd8,0xfb
 
-# CHECK: fdivr %st(4)
+# CHECK: fdivr %st(4), %st
 0xd8,0xfc
 
-# CHECK: fdivr %st(5)
+# CHECK: fdivr %st(5), %st
 0xd8,0xfd
 
-# CHECK: fdivr %st(6)
+# CHECK: fdivr %st(6), %st
 0xd8,0xfe
 
-# CHECK: fdivr %st(7)
+# CHECK: fdivr %st(7), %st
 0xd8,0xff
 
 # CHECK: fld %st(0)
 # CHECK: fcos
 0xd9,0xff
 
-# CHECK: fcmovb %st(0), %st(0)
+# CHECK: fcmovb %st(0), %st
 0xda,0xc0
 
-# CHECK: fcmovb %st(1), %st(0)
+# CHECK: fcmovb %st(1), %st
 0xda,0xc1
 
-# CHECK: fcmovb %st(2), %st(0)
+# CHECK: fcmovb %st(2), %st
 0xda,0xc2
 
-# CHECK: fcmovb %st(3), %st(0)
+# CHECK: fcmovb %st(3), %st
 0xda,0xc3
 
-# CHECK: fcmovb %st(4), %st(0)
+# CHECK: fcmovb %st(4), %st
 0xda,0xc4
 
-# CHECK: fcmovb %st(5), %st(0)
+# CHECK: fcmovb %st(5), %st
 0xda,0xc5
 
-# CHECK: fcmovb %st(6), %st(0)
+# CHECK: fcmovb %st(6), %st
 0xda,0xc6
 
-# CHECK: fcmovb %st(7), %st(0)
+# CHECK: fcmovb %st(7), %st
 0xda,0xc7
 
-# CHECK: fcmove %st(0), %st(0)
+# CHECK: fcmove %st(0), %st
 0xda,0xc8
 
-# CHECK: fcmove %st(1), %st(0)
+# CHECK: fcmove %st(1), %st
 0xda,0xc9
 
-# CHECK: fcmove %st(2), %st(0)
+# CHECK: fcmove %st(2), %st
 0xda,0xca
 
-# CHECK: fcmove %st(3), %st(0)
+# CHECK: fcmove %st(3), %st
 0xda,0xcb
 
-# CHECK: fcmove %st(4), %st(0)
+# CHECK: fcmove %st(4), %st
 0xda,0xcc
 
-# CHECK: fcmove %st(5), %st(0)
+# CHECK: fcmove %st(5), %st
 0xda,0xcd
 
-# CHECK: fcmove %st(6), %st(0)
+# CHECK: fcmove %st(6), %st
 0xda,0xce
 
-# CHECK: fcmove %st(7), %st(0)
+# CHECK: fcmove %st(7), %st
 0xda,0xcf
 
-# CHECK: fcmovbe %st(0), %st(0)
+# CHECK: fcmovbe %st(0), %st
 0xda,0xd0
 
-# CHECK: fcmovbe %st(1), %st(0)
+# CHECK: fcmovbe %st(1), %st
 0xda,0xd1
 
-# CHECK: fcmovbe %st(2), %st(0)
+# CHECK: fcmovbe %st(2), %st
 0xda,0xd2
 
-# CHECK: fcmovbe %st(3), %st(0)
+# CHECK: fcmovbe %st(3), %st
 0xda,0xd3
 
-# CHECK: fcmovbe %st(4), %st(0)
+# CHECK: fcmovbe %st(4), %st
 0xda,0xd4
 
-# CHECK: fcmovbe %st(5), %st(0)
+# CHECK: fcmovbe %st(5), %st
 0xda,0xd5
 
-# CHECK: fcmovbe %st(6), %st(0)
+# CHECK: fcmovbe %st(6), %st
 0xda,0xd6
 
-# CHECK: fcmovbe %st(7), %st(0)
+# CHECK: fcmovbe %st(7), %st
 0xda,0xd7
 
-# CHECK: fcmovu %st(0), %st(0)
+# CHECK: fcmovu %st(0), %st
 0xda,0xd8
 
-# CHECK: fcmovu %st(1), %st(0)
+# CHECK: fcmovu %st(1), %st
 0xda,0xd9
 
-# CHECK: fcmovu %st(2), %st(0)
+# CHECK: fcmovu %st(2), %st
 0xda,0xda
 
-# CHECK: fcmovu %st(3), %st(0)
+# CHECK: fcmovu %st(3), %st
 0xda,0xdb
 
-# CHECK: fcmovu %st(4), %st(0)
+# CHECK: fcmovu %st(4), %st
 0xda,0xdc
 
-# CHECK: fcmovu %st(5), %st(0)
+# CHECK: fcmovu %st(5), %st
 0xda,0xdd
 
-# CHECK: fcmovu %st(6), %st(0)
+# CHECK: fcmovu %st(6), %st
 0xda,0xde
 
-# CHECK: fcmovu %st(7), %st(0)
+# CHECK: fcmovu %st(7), %st
 0xda,0xdf
 
 # CHECK: fucompp
 0xda,0xe9
 
-# CHECK: fcmovnb %st(0), %st(0)
+# CHECK: fcmovnb %st(0), %st
 0xdb,0xc0
 
-# CHECK: fcmovnb %st(1), %st(0)
+# CHECK: fcmovnb %st(1), %st
 0xdb,0xc1
 
-# CHECK: fcmovnb %st(2), %st(0)
+# CHECK: fcmovnb %st(2), %st
 0xdb,0xc2
 
-# CHECK: fcmovnb %st(3), %st(0)
+# CHECK: fcmovnb %st(3), %st
 0xdb,0xc3
 
-# CHECK: fcmovnb %st(4), %st(0)
+# CHECK: fcmovnb %st(4), %st
 0xdb,0xc4
 
-# CHECK: fcmovnb %st(5), %st(0)
+# CHECK: fcmovnb %st(5), %st
 0xdb,0xc5
 
-# CHECK: fcmovnb %st(6), %st(0)
+# CHECK: fcmovnb %st(6), %st
 0xdb,0xc6
 
-# CHECK: fcmovnb %st(7), %st(0)
+# CHECK: fcmovnb %st(7), %st
 0xdb,0xc7
 
-# CHECK: fcmovne %st(0), %st(0)
+# CHECK: fcmovne %st(0), %st
 0xdb,0xc8
 
-# CHECK: fcmovne %st(1), %st(0)
+# CHECK: fcmovne %st(1), %st
 0xdb,0xc9
 
-# CHECK: fcmovne %st(2), %st(0)
+# CHECK: fcmovne %st(2), %st
 0xdb,0xca
 
-# CHECK: fcmovne %st(3), %st(0)
+# CHECK: fcmovne %st(3), %st
 0xdb,0xcb
 
-# CHECK: fcmovne %st(4), %st(0)
+# CHECK: fcmovne %st(4), %st
 0xdb,0xcc
 
-# CHECK: fcmovne %st(5), %st(0)
+# CHECK: fcmovne %st(5), %st
 0xdb,0xcd
 
-# CHECK: fcmovne %st(6), %st(0)
+# CHECK: fcmovne %st(6), %st
 0xdb,0xce
 
-# CHECK: fcmovne %st(7), %st(0)
+# CHECK: fcmovne %st(7), %st
 0xdb,0xcf
 
-# CHECK: fcmovnbe %st(0), %st(0)
+# CHECK: fcmovnbe %st(0), %st
 0xdb,0xd0
 
-# CHECK: fcmovnbe %st(1), %st(0)
+# CHECK: fcmovnbe %st(1), %st
 0xdb,0xd1
 
-# CHECK: fcmovnbe %st(2), %st(0)
+# CHECK: fcmovnbe %st(2), %st
 0xdb,0xd2
 
-# CHECK: fcmovnbe %st(3), %st(0)
+# CHECK: fcmovnbe %st(3), %st
 0xdb,0xd3
 
-# CHECK: fcmovnbe %st(4), %st(0)
+# CHECK: fcmovnbe %st(4), %st
 0xdb,0xd4
 
-# CHECK: fcmovnbe %st(5), %st(0)
+# CHECK: fcmovnbe %st(5), %st
 0xdb,0xd5
 
-# CHECK: fcmovnbe %st(6), %st(0)
+# CHECK: fcmovnbe %st(6), %st
 0xdb,0xd6
 
-# CHECK: fcmovnbe %st(7), %st(0)
+# CHECK: fcmovnbe %st(7), %st
 0xdb,0xd7
 
-# CHECK: fcmovnu %st(0), %st(0)
+# CHECK: fcmovnu %st(0), %st
 0xdb,0xd8
 
-# CHECK: fcmovnu %st(1), %st(0)
+# CHECK: fcmovnu %st(1), %st
 0xdb,0xd9
 
-# CHECK: fcmovnu %st(2), %st(0)
+# CHECK: fcmovnu %st(2), %st
 0xdb,0xda
 
-# CHECK: fcmovnu %st(3), %st(0)
+# CHECK: fcmovnu %st(3), %st
 0xdb,0xdb
 
-# CHECK: fcmovnu %st(4), %st(0)
+# CHECK: fcmovnu %st(4), %st
 0xdb,0xdc
 
-# CHECK: fcmovnu %st(5), %st(0)
+# CHECK: fcmovnu %st(5), %st
 0xdb,0xdd
 
-# CHECK: fcmovnu %st(6), %st(0)
+# CHECK: fcmovnu %st(6), %st
 0xdb,0xde
 
-# CHECK: fcmovnu %st(7), %st(0)
+# CHECK: fcmovnu %st(7), %st
 0xdb,0xdf
 
 # CHECK: fnclex
 # CHECK: fcomi %st(7)
 0xdb,0xf7
 
-# CHECK: fadd %st(0), %st(0)
+# CHECK: fadd %st, %st(0)
 0xdc,0xc0
 
-# CHECK: fadd %st(0), %st(1)
+# CHECK: fadd %st, %st(1)
 0xdc,0xc1
 
-# CHECK: fadd %st(0), %st(2)
+# CHECK: fadd %st, %st(2)
 0xdc,0xc2
 
-# CHECK: fadd %st(0), %st(3)
+# CHECK: fadd %st, %st(3)
 0xdc,0xc3
 
-# CHECK: fadd %st(0), %st(4)
+# CHECK: fadd %st, %st(4)
 0xdc,0xc4
 
-# CHECK: fadd %st(0), %st(5)
+# CHECK: fadd %st, %st(5)
 0xdc,0xc5
 
-# CHECK: fadd %st(0), %st(6)
+# CHECK: fadd %st, %st(6)
 0xdc,0xc6
 
-# CHECK: fadd %st(0), %st(7)
+# CHECK: fadd %st, %st(7)
 0xdc,0xc7
 
-# CHECK: fmul %st(0), %st(0)
+# CHECK: fmul %st, %st(0)
 0xdc,0xc8
 
-# CHECK: fmul %st(0), %st(1)
+# CHECK: fmul %st, %st(1)
 0xdc,0xc9
 
-# CHECK: fmul %st(0), %st(2)
+# CHECK: fmul %st, %st(2)
 0xdc,0xca
 
-# CHECK: fmul %st(0), %st(3)
+# CHECK: fmul %st, %st(3)
 0xdc,0xcb
 
-# CHECK: fmul %st(0), %st(4)
+# CHECK: fmul %st, %st(4)
 0xdc,0xcc
 
-# CHECK: fmul %st(0), %st(5)
+# CHECK: fmul %st, %st(5)
 0xdc,0xcd
 
-# CHECK: fmul %st(0), %st(6)
+# CHECK: fmul %st, %st(6)
 0xdc,0xce
 
-# CHECK: fmul %st(0), %st(7)
+# CHECK: fmul %st, %st(7)
 0xdc,0xcf
 
-# CHECK: fsub %st(0), %st(0)
+# CHECK: fsub %st, %st(0)
 0xdc,0xe0
 
-# CHECK: fsub %st(0), %st(1)
+# CHECK: fsub %st, %st(1)
 0xdc,0xe1
 
-# CHECK: fsub %st(0), %st(2)
+# CHECK: fsub %st, %st(2)
 0xdc,0xe2
 
-# CHECK: fsub %st(0), %st(3)
+# CHECK: fsub %st, %st(3)
 0xdc,0xe3
 
-# CHECK: fsub %st(0), %st(4)
+# CHECK: fsub %st, %st(4)
 0xdc,0xe4
 
-# CHECK: fsub %st(0), %st(5)
+# CHECK: fsub %st, %st(5)
 0xdc,0xe5
 
-# CHECK: fsub %st(0), %st(6)
+# CHECK: fsub %st, %st(6)
 0xdc,0xe6
 
-# CHECK: fsub %st(0), %st(7)
+# CHECK: fsub %st, %st(7)
 0xdc,0xe7
 
-# CHECK: fsubr %st(0), %st(0)
+# CHECK: fsubr %st, %st(0)
 0xdc,0xe8
 
-# CHECK: fsubr %st(0), %st(1)
+# CHECK: fsubr %st, %st(1)
 0xdc,0xe9
 
-# CHECK: fsubr %st(0), %st(2)
+# CHECK: fsubr %st, %st(2)
 0xdc,0xea
 
-# CHECK: fsubr %st(0), %st(3)
+# CHECK: fsubr %st, %st(3)
 0xdc,0xeb
 
-# CHECK: fsubr %st(0), %st(4)
+# CHECK: fsubr %st, %st(4)
 0xdc,0xec
 
-# CHECK: fsubr %st(0), %st(5)
+# CHECK: fsubr %st, %st(5)
 0xdc,0xed
 
-# CHECK: fsubr %st(0), %st(6)
+# CHECK: fsubr %st, %st(6)
 0xdc,0xee
 
-# CHECK: fsubr %st(0), %st(7)
+# CHECK: fsubr %st, %st(7)
 0xdc,0xef
 
-# CHECK: fdiv %st(0), %st(0)
+# CHECK: fdiv %st, %st(0)
 0xdc,0xf0
 
-# CHECK: fdiv %st(0), %st(1)
+# CHECK: fdiv %st, %st(1)
 0xdc,0xf1
 
-# CHECK: fdiv %st(0), %st(2)
+# CHECK: fdiv %st, %st(2)
 0xdc,0xf2
 
-# CHECK: fdiv %st(0), %st(3)
+# CHECK: fdiv %st, %st(3)
 0xdc,0xf3
 
-# CHECK: fdiv %st(0), %st(4)
+# CHECK: fdiv %st, %st(4)
 0xdc,0xf4
 
-# CHECK: fdiv %st(0), %st(5)
+# CHECK: fdiv %st, %st(5)
 0xdc,0xf5
 
-# CHECK: fdiv %st(0), %st(6)
+# CHECK: fdiv %st, %st(6)
 0xdc,0xf6
 
-# CHECK: fdiv %st(0), %st(7)
+# CHECK: fdiv %st, %st(7)
 0xdc,0xf7
 
-# CHECK: fdivr %st(0), %st(0)
+# CHECK: fdivr %st, %st(0)
 0xdc,0xf8
 
-# CHECK: fdivr %st(0), %st(1)
+# CHECK: fdivr %st, %st(1)
 0xdc,0xf9
 
-# CHECK: fdivr %st(0), %st(2)
+# CHECK: fdivr %st, %st(2)
 0xdc,0xfa
 
-# CHECK: fdivr %st(0), %st(3)
+# CHECK: fdivr %st, %st(3)
 0xdc,0xfb
 
-# CHECK: fdivr %st(0), %st(4)
+# CHECK: fdivr %st, %st(4)
 0xdc,0xfc
 
-# CHECK: fdivr %st(0), %st(5)
+# CHECK: fdivr %st, %st(5)
 0xdc,0xfd
 
-# CHECK: fdivr %st(0), %st(6)
+# CHECK: fdivr %st, %st(6)
 0xdc,0xfe
 
-# CHECK: fdivr %st(0), %st(7)
+# CHECK: fdivr %st, %st(7)
 0xdc,0xff
 
 # CHECK: ffree %st(0)
 # CHECK: fucomp %st(7)
 0xdd,0xef
 
-# CHECK: faddp %st(0)
+# CHECK: faddp %st, %st(0)
 0xde,0xc0
 
-# CHECK: faddp %st(1)
+# CHECK: faddp %st, %st(1)
 0xde,0xc1
 
-# CHECK: faddp %st(2)
+# CHECK: faddp %st, %st(2)
 0xde,0xc2
 
-# CHECK: faddp %st(3)
+# CHECK: faddp %st, %st(3)
 0xde,0xc3
 
-# CHECK: faddp %st(4)
+# CHECK: faddp %st, %st(4)
 0xde,0xc4
 
-# CHECK: faddp %st(5)
+# CHECK: faddp %st, %st(5)
 0xde,0xc5
 
-# CHECK: faddp %st(6)
+# CHECK: faddp %st, %st(6)
 0xde,0xc6
 
-# CHECK: faddp %st(7)
+# CHECK: faddp %st, %st(7)
 0xde,0xc7
 
-# CHECK: fmulp %st(0)
+# CHECK: fmulp %st, %st(0)
 0xde,0xc8
 
-# CHECK: fmulp %st(1)
+# CHECK: fmulp %st, %st(1)
 0xde,0xc9
 
-# CHECK: fmulp %st(2)
+# CHECK: fmulp %st, %st(2)
 0xde,0xca
 
-# CHECK: fmulp %st(3)
+# CHECK: fmulp %st, %st(3)
 0xde,0xcb
 
-# CHECK: fmulp %st(4)
+# CHECK: fmulp %st, %st(4)
 0xde,0xcc
 
-# CHECK: fmulp %st(5)
+# CHECK: fmulp %st, %st(5)
 0xde,0xcd
 
-# CHECK: fmulp %st(6)
+# CHECK: fmulp %st, %st(6)
 0xde,0xce
 
-# CHECK: fmulp %st(7)
+# CHECK: fmulp %st, %st(7)
 0xde,0xcf
 
 # CHECK: fcompp
 0xde,0xd9
 
-# CHECK: fsubp %st(0)
+# CHECK: fsubp %st, %st(0)
 0xde,0xe0
 
-# CHECK: fsubp %st(1)
+# CHECK: fsubp %st, %st(1)
 0xde,0xe1
 
-# CHECK: fsubp %st(2)
+# CHECK: fsubp %st, %st(2)
 0xde,0xe2
 
-# CHECK: fsubp %st(3)
+# CHECK: fsubp %st, %st(3)
 0xde,0xe3
 
-# CHECK: fsubp %st(4)
+# CHECK: fsubp %st, %st(4)
 0xde,0xe4
 
-# CHECK: fsubp %st(5)
+# CHECK: fsubp %st, %st(5)
 0xde,0xe5
 
-# CHECK: fsubp %st(6)
+# CHECK: fsubp %st, %st(6)
 0xde,0xe6
 
-# CHECK: fsubp %st(7)
+# CHECK: fsubp %st, %st(7)
 0xde,0xe7
 
-# CHECK: fsubrp %st(0)
+# CHECK: fsubrp %st, %st(0)
 0xde,0xe8
 
-# CHECK: fsubrp %st(1)
+# CHECK: fsubrp %st, %st(1)
 0xde,0xe9
 
-# CHECK: fsubrp %st(2)
+# CHECK: fsubrp %st, %st(2)
 0xde,0xea
 
-# CHECK: fsubrp %st(3)
+# CHECK: fsubrp %st, %st(3)
 0xde,0xeb
 
-# CHECK: fsubrp %st(4)
+# CHECK: fsubrp %st, %st(4)
 0xde,0xec
 
-# CHECK: fsubrp %st(5)
+# CHECK: fsubrp %st, %st(5)
 0xde,0xed
 
-# CHECK: fsubrp %st(6)
+# CHECK: fsubrp %st, %st(6)
 0xde,0xee
 
-# CHECK: fsubrp %st(7)
+# CHECK: fsubrp %st, %st(7)
 0xde,0xef
 
-# CHECK: fdivp %st(0)
+# CHECK: fdivp %st, %st(0)
 0xde,0xf0
 
-# CHECK: fdivp %st(1)
+# CHECK: fdivp %st, %st(1)
 0xde,0xf1
 
-# CHECK: fdivp %st(2)
+# CHECK: fdivp %st, %st(2)
 0xde,0xf2
 
-# CHECK: fdivp %st(3)
+# CHECK: fdivp %st, %st(3)
 0xde,0xf3
 
-# CHECK: fdivp %st(4)
+# CHECK: fdivp %st, %st(4)
 0xde,0xf4
 
-# CHECK: fdivp %st(5)
+# CHECK: fdivp %st, %st(5)
 0xde,0xf5
 
-# CHECK: fdivp %st(6)
+# CHECK: fdivp %st, %st(6)
 0xde,0xf6
 
-# CHECK: fdivp %st(7)
+# CHECK: fdivp %st, %st(7)
 0xde,0xf7
 
-# CHECK: fdivrp %st(0)
+# CHECK: fdivrp %st, %st(0)
 0xde,0xf8
 
-# CHECK: fdivrp %st(1)
+# CHECK: fdivrp %st, %st(1)
 0xde,0xf9
 
-# CHECK: fdivrp %st(2)
+# CHECK: fdivrp %st, %st(2)
 0xde,0xfa
 
-# CHECK: fdivrp %st(3)
+# CHECK: fdivrp %st, %st(3)
 0xde,0xfb
 
-# CHECK: fdivrp %st(4)
+# CHECK: fdivrp %st, %st(4)
 0xde,0xfc
 
-# CHECK: fdivrp %st(5)
+# CHECK: fdivrp %st, %st(5)
 0xde,0xfd
 
-# CHECK: fdivrp %st(6)
+# CHECK: fdivrp %st, %st(6)
 0xde,0xfe
 
-# CHECK: fdivrp %st(7)
+# CHECK: fdivrp %st, %st(7)
 0xde,0xff
 
 # CHECK: ffreep %st(0)
index 43cd09516c3b1640e2c4745a678bd616ae8beba1..286aa88489cb48b08cc501f79861eb44689713ab 100644 (file)
 # CHECK: strl %eax
 0x66 0x0f 0x00 0xc8
 
-# CHECK: fsubp %st(1)
+# CHECK: fsubp %st, %st(1)
 0xde 0xe1
 
-# CHECK: fsubp %st(2)
+# CHECK: fsubp %st, %st(2)
 0xde 0xe2
 
 # CHECKX: nop
index bbd933e58af093095e618d64069dce5b65c5a2fd..6deea6de9c449ba2d97bff99f3125de3c37dc9b2 100644 (file)
@@ -64,37 +64,37 @@ cmovpl %eax, %eax
 // CHECK: encoding: [0x0f,0x48,0xc0]        
 cmovsl %eax, %eax 
 
-// CHECK: fcmovbe %st(4), %st(0) 
+// CHECK: fcmovbe %st(4), %st 
 // CHECK: encoding: [0xda,0xd4]        
-fcmovbe %st(4), %st(0) 
+fcmovbe %st(4), %st 
 
-// CHECK: fcmovb %st(4), %st(0) 
+// CHECK: fcmovb %st(4), %st 
 // CHECK: encoding: [0xda,0xc4]        
-fcmovb %st(4), %st(0) 
+fcmovb %st(4), %st 
 
-// CHECK: fcmove %st(4), %st(0) 
+// CHECK: fcmove %st(4), %st 
 // CHECK: encoding: [0xda,0xcc]        
-fcmove %st(4), %st(0) 
+fcmove %st(4), %st 
 
-// CHECK: fcmovnbe %st(4), %st(0) 
+// CHECK: fcmovnbe %st(4), %st 
 // CHECK: encoding: [0xdb,0xd4]        
-fcmovnbe %st(4), %st(0) 
+fcmovnbe %st(4), %st 
 
-// CHECK: fcmovnb %st(4), %st(0) 
+// CHECK: fcmovnb %st(4), %st 
 // CHECK: encoding: [0xdb,0xc4]        
-fcmovnb %st(4), %st(0) 
+fcmovnb %st(4), %st 
 
-// CHECK: fcmovne %st(4), %st(0) 
+// CHECK: fcmovne %st(4), %st 
 // CHECK: encoding: [0xdb,0xcc]        
-fcmovne %st(4), %st(0) 
+fcmovne %st(4), %st 
 
-// CHECK: fcmovnu %st(4), %st(0) 
+// CHECK: fcmovnu %st(4), %st 
 // CHECK: encoding: [0xdb,0xdc]        
-fcmovnu %st(4), %st(0) 
+fcmovnu %st(4), %st 
 
-// CHECK: fcmovu %st(4), %st(0) 
+// CHECK: fcmovu %st(4), %st 
 // CHECK: encoding: [0xda,0xdc]        
-fcmovu %st(4), %st(0) 
+fcmovu %st(4), %st 
 
 // CHECK: fcomi %st(4) 
 // CHECK: encoding: [0xdb,0xf4]         
index a41d4a0f93cc982ce531fb6a65e2a38de599eace..8004772e8f3defb30ea0f9864eb6fe1d9a51789a 100644 (file)
@@ -64,37 +64,37 @@ cmovpl %r13d, %r13d
 // CHECK: encoding: [0x45,0x0f,0x48,0xed]        
 cmovsl %r13d, %r13d 
 
-// CHECK: fcmovbe %st(4), %st(0) 
+// CHECK: fcmovbe %st(4), %st 
 // CHECK: encoding: [0xda,0xd4]        
-fcmovbe %st(4), %st(0) 
+fcmovbe %st(4), %st 
 
-// CHECK: fcmovb %st(4), %st(0) 
+// CHECK: fcmovb %st(4), %st 
 // CHECK: encoding: [0xda,0xc4]        
-fcmovb %st(4), %st(0) 
+fcmovb %st(4), %st 
 
-// CHECK: fcmove %st(4), %st(0) 
+// CHECK: fcmove %st(4), %st 
 // CHECK: encoding: [0xda,0xcc]        
-fcmove %st(4), %st(0) 
+fcmove %st(4), %st 
 
-// CHECK: fcmovnbe %st(4), %st(0) 
+// CHECK: fcmovnbe %st(4), %st 
 // CHECK: encoding: [0xdb,0xd4]        
-fcmovnbe %st(4), %st(0) 
+fcmovnbe %st(4), %st 
 
-// CHECK: fcmovnb %st(4), %st(0) 
+// CHECK: fcmovnb %st(4), %st 
 // CHECK: encoding: [0xdb,0xc4]        
-fcmovnb %st(4), %st(0) 
+fcmovnb %st(4), %st 
 
-// CHECK: fcmovne %st(4), %st(0) 
+// CHECK: fcmovne %st(4), %st 
 // CHECK: encoding: [0xdb,0xcc]        
-fcmovne %st(4), %st(0) 
+fcmovne %st(4), %st 
 
-// CHECK: fcmovnu %st(4), %st(0) 
+// CHECK: fcmovnu %st(4), %st 
 // CHECK: encoding: [0xdb,0xdc]        
-fcmovnu %st(4), %st(0) 
+fcmovnu %st(4), %st 
 
-// CHECK: fcmovu %st(4), %st(0) 
+// CHECK: fcmovu %st(4), %st 
 // CHECK: encoding: [0xda,0xdc]        
-fcmovu %st(4), %st(0) 
+fcmovu %st(4), %st 
 
 // CHECK: fcomi %st(4) 
 // CHECK: encoding: [0xdb,0xf4]         
index 967763de93e057e0f1e6b017a32a9825f9383987..d414ab65b7dc4563e1ed4eedf28236a245546ad2 100755 (executable)
@@ -31,7 +31,7 @@ faddl 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x02]        
 faddl (%edx) 
 
-// CHECK: faddp %st(4) 
+// CHECK: faddp %st, %st(4) 
 // CHECK: encoding: [0xde,0xc4]        
 faddp %st(4) 
 
@@ -59,11 +59,11 @@ fadds 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x02]        
 fadds (%edx) 
 
-// CHECK: fadd %st(0), %st(4) 
+// CHECK: fadd %st, %st(4) 
 // CHECK: encoding: [0xdc,0xc4]       
-fadd %st(0), %st(4) 
+fadd %st, %st(4) 
 
-// CHECK: fadd %st(4) 
+// CHECK: fadd %st(4), %st
 // CHECK: encoding: [0xd8,0xc4]        
 fadd %st(4) 
 
@@ -259,7 +259,7 @@ fdivl 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x32]        
 fdivl (%edx) 
 
-// CHECK: fdivp %st(4) 
+// CHECK: fdivp %st, %st(4) 
 // CHECK: encoding: [0xde,0xf4]        
 fdivp %st(4) 
 
@@ -287,7 +287,7 @@ fdivrl 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x3a]        
 fdivrl (%edx) 
 
-// CHECK: fdivrp %st(4) 
+// CHECK: fdivrp %st, %st(4) 
 // CHECK: encoding: [0xde,0xfc]        
 fdivrp %st(4) 
 
@@ -315,11 +315,11 @@ fdivrs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x3a]        
 fdivrs (%edx) 
 
-// CHECK: fdivr %st(0), %st(4) 
+// CHECK: fdivr %st, %st(4) 
 // CHECK: encoding: [0xdc,0xfc]       
-fdivr %st(0), %st(4) 
+fdivr %st, %st(4) 
 
-// CHECK: fdivr %st(4) 
+// CHECK: fdivr %st(4), %st
 // CHECK: encoding: [0xd8,0xfc]        
 fdivr %st(4) 
 
@@ -347,11 +347,11 @@ fdivs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x32]        
 fdivs (%edx) 
 
-// CHECK: fdiv %st(0), %st(4) 
+// CHECK: fdiv %st, %st(4) 
 // CHECK: encoding: [0xdc,0xf4]       
-fdiv %st(0), %st(4) 
+fdiv %st, %st(4) 
 
-// CHECK: fdiv %st(4) 
+// CHECK: fdiv %st(4), %st
 // CHECK: encoding: [0xd8,0xf4]        
 fdiv %st(4) 
 
@@ -1119,7 +1119,7 @@ fmull 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x0a]        
 fmull (%edx) 
 
-// CHECK: fmulp %st(4) 
+// CHECK: fmulp %st, %st(4) 
 // CHECK: encoding: [0xde,0xcc]        
 fmulp %st(4) 
 
@@ -1147,11 +1147,11 @@ fmuls 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x0a]        
 fmuls (%edx) 
 
-// CHECK: fmul %st(0), %st(4) 
+// CHECK: fmul %st, %st(4) 
 // CHECK: encoding: [0xdc,0xcc]       
-fmul %st(0), %st(4) 
+fmul %st, %st(4) 
 
-// CHECK: fmul %st(4) 
+// CHECK: fmul %st(4), %st
 // CHECK: encoding: [0xd8,0xcc]        
 fmul %st(4) 
 
@@ -1479,7 +1479,7 @@ fsubl 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x22]        
 fsubl (%edx) 
 
-// CHECK: fsubp %st(4) 
+// CHECK: fsubp %st, %st(4) 
 // CHECK: encoding: [0xde,0xe4]        
 fsubp %st(4) 
 
@@ -1507,7 +1507,7 @@ fsubrl 64(%edx,%eax)
 // CHECK: encoding: [0xdc,0x2a]        
 fsubrl (%edx) 
 
-// CHECK: fsubrp %st(4) 
+// CHECK: fsubrp %st, %st(4) 
 // CHECK: encoding: [0xde,0xec]        
 fsubrp %st(4) 
 
@@ -1535,11 +1535,11 @@ fsubrs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x2a]        
 fsubrs (%edx) 
 
-// CHECK: fsubr %st(0), %st(4) 
+// CHECK: fsubr %st, %st(4) 
 // CHECK: encoding: [0xdc,0xec]       
-fsubr %st(0), %st(4) 
+fsubr %st, %st(4) 
 
-// CHECK: fsubr %st(4) 
+// CHECK: fsubr %st(4), %st
 // CHECK: encoding: [0xd8,0xec]        
 fsubr %st(4) 
 
@@ -1567,11 +1567,11 @@ fsubs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x22]        
 fsubs (%edx) 
 
-// CHECK: fsub %st(0), %st(4) 
+// CHECK: fsub %st, %st(4) 
 // CHECK: encoding: [0xdc,0xe4]       
-fsub %st(0), %st(4) 
+fsub %st, %st(4) 
 
-// CHECK: fsub %st(4) 
+// CHECK: fsub %st(4), %st
 // CHECK: encoding: [0xd8,0xe4]        
 fsub %st(4) 
 
index a3b76b4e4b0ad47e4372c1eaa9b91f79dffb7c8d..1103f326ea047a7bdff3d5e6bbf0c8e10ac192dd 100755 (executable)
@@ -31,7 +31,7 @@ faddl 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x02]        
 faddl (%rdx) 
 
-// CHECK: faddp %st(4) 
+// CHECK: faddp %st, %st(4) 
 // CHECK: encoding: [0xde,0xc4]        
 faddp %st(4) 
 
@@ -59,11 +59,11 @@ fadds 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x02]        
 fadds (%rdx) 
 
-// CHECK: fadd %st(0), %st(4) 
+// CHECK: fadd %st, %st(4) 
 // CHECK: encoding: [0xdc,0xc4]       
-fadd %st(0), %st(4) 
+fadd %st, %st(4) 
 
-// CHECK: fadd %st(4) 
+// CHECK: fadd %st(4), %st
 // CHECK: encoding: [0xd8,0xc4]        
 fadd %st(4) 
 
@@ -259,7 +259,7 @@ fdivl 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x32]        
 fdivl (%rdx) 
 
-// CHECK: fdivp %st(4) 
+// CHECK: fdivp %st, %st(4) 
 // CHECK: encoding: [0xde,0xf4]        
 fdivp %st(4) 
 
@@ -287,7 +287,7 @@ fdivrl 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x3a]        
 fdivrl (%rdx) 
 
-// CHECK: fdivrp %st(4) 
+// CHECK: fdivrp %st, %st(4) 
 // CHECK: encoding: [0xde,0xfc]        
 fdivrp %st(4) 
 
@@ -315,11 +315,11 @@ fdivrs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x3a]        
 fdivrs (%rdx) 
 
-// CHECK: fdivr %st(0), %st(4) 
+// CHECK: fdivr %st, %st(4) 
 // CHECK: encoding: [0xdc,0xfc]       
-fdivr %st(0), %st(4) 
+fdivr %st, %st(4) 
 
-// CHECK: fdivr %st(4) 
+// CHECK: fdivr %st(4), %st
 // CHECK: encoding: [0xd8,0xfc]        
 fdivr %st(4) 
 
@@ -347,11 +347,11 @@ fdivs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x32]        
 fdivs (%rdx) 
 
-// CHECK: fdiv %st(0), %st(4) 
+// CHECK: fdiv %st, %st(4) 
 // CHECK: encoding: [0xdc,0xf4]       
-fdiv %st(0), %st(4) 
+fdiv %st, %st(4) 
 
-// CHECK: fdiv %st(4) 
+// CHECK: fdiv %st(4), %st
 // CHECK: encoding: [0xd8,0xf4]        
 fdiv %st(4) 
 
@@ -1119,7 +1119,7 @@ fmull 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x0a]        
 fmull (%rdx) 
 
-// CHECK: fmulp %st(4) 
+// CHECK: fmulp %st, %st(4) 
 // CHECK: encoding: [0xde,0xcc]        
 fmulp %st(4) 
 
@@ -1147,9 +1147,9 @@ fmuls 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x0a]        
 fmuls (%rdx) 
 
-// CHECK: fmul %st(0), %st(4) 
+// CHECK: fmul %st, %st(4) 
 // CHECK: encoding: [0xdc,0xcc]       
-fmul %st(0), %st(4) 
+fmul %st, %st(4) 
 
 // CHECK: fmul %st(4) 
 // CHECK: encoding: [0xd8,0xcc]        
@@ -1479,7 +1479,7 @@ fsubl 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x22]        
 fsubl (%rdx) 
 
-// CHECK: fsubp %st(4) 
+// CHECK: fsubp %st, %st(4) 
 // CHECK: encoding: [0xde,0xe4]        
 fsubp %st(4) 
 
@@ -1507,7 +1507,7 @@ fsubrl 64(%rdx,%rax)
 // CHECK: encoding: [0xdc,0x2a]        
 fsubrl (%rdx) 
 
-// CHECK: fsubrp %st(4) 
+// CHECK: fsubrp %st, %st(4) 
 // CHECK: encoding: [0xde,0xec]        
 fsubrp %st(4) 
 
@@ -1535,11 +1535,11 @@ fsubrs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x2a]        
 fsubrs (%rdx) 
 
-// CHECK: fsubr %st(0), %st(4) 
+// CHECK: fsubr %st, %st(4) 
 // CHECK: encoding: [0xdc,0xec]       
-fsubr %st(0), %st(4) 
+fsubr %st, %st(4) 
 
-// CHECK: fsubr %st(4) 
+// CHECK: fsubr %st(4), %st
 // CHECK: encoding: [0xd8,0xec]        
 fsubr %st(4) 
 
@@ -1567,11 +1567,11 @@ fsubs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x22]        
 fsubs (%rdx) 
 
-// CHECK: fsub %st(0), %st(4) 
+// CHECK: fsub %st, %st(4) 
 // CHECK: encoding: [0xdc,0xe4]       
-fsub %st(0), %st(4) 
+fsub %st, %st(4) 
 
-// CHECK: fsub %st(4) 
+// CHECK: fsub %st(4), %st
 // CHECK: encoding: [0xd8,0xe4]        
 fsub %st(4) 
 
index aead5766db4d52322b9c7bde67192e389c708c4e..b23965ae52e88ebfd2649bbb01cb1df500f22187 100644 (file)
@@ -18,14 +18,14 @@ _test2:
 
 _test3:
 fadd 
-// CHECK: faddp %st(1)
+// CHECK: faddp %st, %st(1)
 fmul
-// CHECK: fmulp %st(1)
+// CHECK: fmulp %st, %st(1)
 fsub
-// CHECK: fsubp %st(1)
+// CHECK: fsubp %st, %st(1)
 fsubr
-// CHECK: fsubrp %st(1)
+// CHECK: fsubrp %st, %st(1)
 fdiv
-// CHECK: fdivp %st(1)
+// CHECK: fdivp %st, %st(1)
 fdivr
-// CHECK: fdivrp %st(1)
+// CHECK: fdivrp %st, %st(1)
index 428a7e4ec41f1f077f3a85b6bac32652e6f5a702..171357e1f5212e5e5ee77df895e5b4794cdf6e04 100644 (file)
@@ -556,12 +556,12 @@ fnstsw
 fnstsw AX
 fnstsw WORD PTR [EAX]
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fdivrp %st(1)
-// CHECK: fdivp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
 faddp ST(1), ST(0)
 fmulp ST(1), ST(0)
 fsubp ST(1), ST(0)
@@ -569,12 +569,12 @@ fsubrp ST(1), ST(0)
 fdivp ST(1), ST(0)
 fdivrp ST(1), ST(0)
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fdivrp %st(1)
-// CHECK: fdivp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
 faddp ST(0), ST(1)
 fmulp ST(0), ST(1)
 fsubp ST(0), ST(1)
@@ -582,12 +582,12 @@ fsubrp ST(0), ST(1)
 fdivp ST(0), ST(1)
 fdivrp ST(0), ST(1)
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fdivrp %st(1)
-// CHECK: fdivp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
 faddp ST(1)
 fmulp ST(1)
 fsubp ST(1)
@@ -596,12 +596,12 @@ fdivp ST(1)
 fdivrp ST(1)
 
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fdivrp %st(1)
-// CHECK: fdivp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
 fadd 
 fmul
 fsub
@@ -609,12 +609,12 @@ fsubr
 fdiv
 fdivr
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fdivrp %st(1)
-// CHECK: fdivp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
 faddp
 fmulp
 fsubp
@@ -622,12 +622,12 @@ fsubrp
 fdivp
 fdivrp
 
-// CHECK: fadd %st(1)
-// CHECK: fmul %st(1)
-// CHECK: fsub %st(1)
-// CHECK: fsubr %st(1)
-// CHECK: fdiv %st(1)
-// CHECK: fdivr %st(1)
+// CHECK: fadd %st(1), %st
+// CHECK: fmul %st(1), %st
+// CHECK: fsub %st(1), %st
+// CHECK: fsubr %st(1), %st
+// CHECK: fdiv %st(1), %st
+// CHECK: fdivr %st(1), %st
 fadd ST(0), ST(1)
 fmul ST(0), ST(1)
 fsub ST(0), ST(1)
@@ -635,12 +635,12 @@ fsubr ST(0), ST(1)
 fdiv ST(0), ST(1)
 fdivr ST(0), ST(1)
 
-// CHECK: fadd %st(0), %st(1)
-// CHECK: fmul %st(0), %st(1)
-// CHECK: fsubr %st(0), %st(1)
-// CHECK: fsub %st(0), %st(1)
-// CHECK: fdivr %st(0), %st(1)
-// CHECK: fdiv %st(0), %st(1)
+// CHECK: fadd %st, %st(1)
+// CHECK: fmul %st, %st(1)
+// CHECK: fsubr %st, %st(1)
+// CHECK: fsub %st, %st(1)
+// CHECK: fdivr %st, %st(1)
+// CHECK: fdiv %st, %st(1)
 fadd ST(1), ST(0)
 fmul ST(1), ST(0)
 fsub ST(1), ST(0)
@@ -648,12 +648,12 @@ fsubr ST(1), ST(0)
 fdiv ST(1), ST(0)
 fdivr ST(1), ST(0)
 
-// CHECK: fadd %st(1)
-// CHECK: fmul %st(1)
-// CHECK: fsub %st(1)
-// CHECK: fsubr %st(1)
-// CHECK: fdiv %st(1)
-// CHECK: fdivr %st(1)
+// CHECK: fadd %st(1), %st
+// CHECK: fmul %st(1), %st
+// CHECK: fsub %st(1), %st
+// CHECK: fsubr %st(1), %st
+// CHECK: fdiv %st(1), %st
+// CHECK: fdivr %st(1), %st
 fadd ST(1)
 fmul ST(1)
 fsub ST(1)
index 50263beaa67567da4247dd29cfefb70ba721e42c..88ee77a6d4143ab55ec708894b38bd84f98a6372 100644 (file)
@@ -920,11 +920,11 @@ pshufw $90, %mm4, %mm0
        str %eax
 
 
-// CHECK: fsubp
+// CHECK: fsubp %st, %st(1)
 // CHECK: encoding: [0xde,0xe1]
 fsubp %st,%st(1)
 
-// CHECK: fsubp        %st(2)
+// CHECK: fsubp %st, %st(2)
 // CHECK: encoding: [0xde,0xe2]
 fsubp   %st, %st(2)
 
index 32281f41216445c49ac74b04136b5e2bad4bb403..ba59fb357b9741b8a59dbe5883527d219af3902c 100644 (file)
 // CHECK:  encoding: [0xda,0x05,0x78,0x56,0x34,0x12]
                fiaddl  0x12345678
 
-// CHECK: faddp        %st(2)
+// CHECK: faddp        %st, %st(2)
 // CHECK:  encoding: [0xde,0xc2]
                faddp   %st(2)
 
-// CHECK: fsub %st(2)
+// CHECK: fsub %st(2), %st
 // CHECK:  encoding: [0xd8,0xe2]
                fsub    %st(2)
 
 // CHECK:  encoding: [0xda,0x25,0x78,0x56,0x34,0x12]
                fisubl  0x12345678
 
-// CHECK: fsubp        %st(2)
+// CHECK: fsubp        %st, %st(2)
 // CHECK:  encoding: [0xde,0xe2]
                fsubp   %st(2)
 
-// CHECK: fsubr        %st(2)
+// CHECK: fsubr        %st(2), %st
 // CHECK:  encoding: [0xd8,0xea]
                fsubr   %st(2)
 
 // CHECK:  encoding: [0xda,0x2d,0x78,0x56,0x34,0x12]
                fisubrl 0x12345678
 
-// CHECK: fsubrp       %st(2)
+// CHECK: fsubrp       %st, %st(2)
 // CHECK:  encoding: [0xde,0xea]
                fsubrp  %st(2)
 
-// CHECK: fmul %st(2)
+// CHECK: fmul %st(2), %st
 // CHECK:  encoding: [0xd8,0xca]
                fmul    %st(2)
 
 // CHECK:  encoding: [0xda,0x0d,0x78,0x56,0x34,0x12]
                fimull  0x12345678
 
-// CHECK: fmulp        %st(2)
+// CHECK: fmulp        %st, %st(2)
 // CHECK:  encoding: [0xde,0xca]
                fmulp   %st(2)
 
-// CHECK: fdiv %st(2)
+// CHECK: fdiv %st(2), %st
 // CHECK:  encoding: [0xd8,0xf2]
                fdiv    %st(2)
 
 // CHECK:  encoding: [0xda,0x35,0x78,0x56,0x34,0x12]
                fidivl  0x12345678
 
-// CHECK: fdivp        %st(2)
+// CHECK: fdivp        %st, %st(2)
 // CHECK:  encoding: [0xde,0xf2]
                fdivp   %st(2)
 
-// CHECK: fdivr        %st(2)
+// CHECK: fdivr        %st(2), %st
 // CHECK:  encoding: [0xd8,0xfa]
                fdivr   %st(2)
 
 // CHECK:  encoding: [0xda,0x3d,0x78,0x56,0x34,0x12]
                fidivrl 0x12345678
 
-// CHECK: fdivrp       %st(2)
+// CHECK: fdivrp       %st, %st(2)
 // CHECK:  encoding: [0xde,0xfa]
                fdivrp  %st(2)
 
 // CHECK:  encoding: [0x0f,0x0b]
                ud2
 
-// CHECK: fcmovb       %st(2), %st(0)
+// CHECK: fcmovb       %st(2), %st
 // CHECK:  encoding: [0xda,0xc2]
                fcmovb  %st(2),%st
 
-// CHECK: fcmove       %st(2), %st(0)
+// CHECK: fcmove       %st(2), %st
 // CHECK:  encoding: [0xda,0xca]
                fcmove  %st(2),%st
 
-// CHECK: fcmovbe      %st(2), %st(0)
+// CHECK: fcmovbe      %st(2), %st
 // CHECK:  encoding: [0xda,0xd2]
                fcmovbe %st(2),%st
 
-// CHECK: fcmovu        %st(2), %st(0)
+// CHECK: fcmovu        %st(2), %st
 // CHECK:  encoding: [0xda,0xda]
                fcmovu  %st(2),%st
 
-// CHECK: fcmovnb      %st(2), %st(0)
+// CHECK: fcmovnb      %st(2), %st
 // CHECK:  encoding: [0xdb,0xc2]
                fcmovnb %st(2),%st
 
-// CHECK: fcmovne      %st(2), %st(0)
+// CHECK: fcmovne      %st(2), %st
 // CHECK:  encoding: [0xdb,0xca]
                fcmovne %st(2),%st
 
-// CHECK: fcmovnbe     %st(2), %st(0)
+// CHECK: fcmovnbe     %st(2), %st
 // CHECK:  encoding: [0xdb,0xd2]
                fcmovnbe        %st(2),%st
 
-// CHECK: fcmovnu      %st(2), %st(0)
+// CHECK: fcmovnu      %st(2), %st
 // CHECK:  encoding: [0xdb,0xda]
                fcmovnu %st(2),%st
 
index 69d36032593453e4870ad2aa381b91d222f1b775..1593c26b9d029733673e337d852df8fccfe95ced 100644 (file)
@@ -1055,7 +1055,7 @@ pshufw $90, %mm4, %mm0
 fsubp %st,%st(1)
 
 // PR9164
-// CHECK: fsubp        %st(2)
+// CHECK: fsubp %st, %st(2)
 // CHECK: encoding: [0xde,0xe2]
 fsubp   %st, %st(2)
 
index df811a6c4cf2ee65f6299baaf8f0a0a7cdfb4d17..e35ba19fc4f2ec2cbcf8f961df4b7c3c1923d166 100644 (file)
@@ -307,13 +307,13 @@ insl      (%dx), %es:(%rdi)
 // CHECK: fxch %st(1)
 // CHECK: fucom %st(1)
 // CHECK: fucomp %st(1)
-// CHECK: faddp %st(1)
-// CHECK: faddp        %st(0)
-// CHECK: fsubp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fdivp %st(1)
-// CHECK: fdivrp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: faddp %st, %st(0)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
 
 fxch
 fucom
@@ -416,21 +416,21 @@ enter $0x7ace,$0x7f
 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)
+fcmovb %st(1), %st   // CHECK: fcmovb  %st(1), %st
+fcmove %st(1), %st   // CHECK: fcmove  %st(1), %st
+fcmovbe %st(1), %st  // CHECK: fcmovbe %st(1), %st
+fcmovu %st(1), %st   // CHECK: fcmovu   %st(1), %st
 
-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)
+fcmovnb %st(1), %st  // CHECK: fcmovnb %st(1), %st
+fcmovne %st(1), %st  // CHECK: fcmovne %st(1), %st
+fcmovnbe %st(1), %st // CHECK: fcmovnbe        %st(1), %st
+fcmovnu %st(1), %st  // CHECK: fcmovnu %st(1), %st
 
-fcmovnae %st(1), %st(0) // CHECK: fcmovb       %st(1), %st(0)
-fcmovna %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+fcmovnae %st(1), %st // CHECK: fcmovb  %st(1), %st
+fcmovna %st(1), %st  // CHECK: fcmovbe %st(1), %st
 
-fcmovae %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
-fcmova %st(1), %st(0)   // CHECK: fcmovnbe     %st(1), %st(0)
+fcmovae %st(1), %st  // CHECK: fcmovnb %st(1), %st
+fcmova %st(1), %st   // CHECK: fcmovnbe        %st(1), %st
 
 // rdar://8456417
 .byte (88 + 1) & 15  // CHECK: .byte   9
@@ -456,20 +456,20 @@ mov %rdx, %db15
 // CHECK: encoding: [0x44,0x0f,0x23,0xfa]
 
 // rdar://8456371 - Handle commutable instructions written backward.
-// CHECK:      faddp   %st(1)
-// CHECK:      fmulp   %st(2)
+// CHECK:      faddp   %st, %st(1)
+// CHECK:      fmulp   %st, %st(2)
 faddp %st, %st(1)
 fmulp %st, %st(2)
 
 // rdar://8468087 - Encode these accurately, they are not synonyms.
-// CHECK: fmul %st(0), %st(1)
+// CHECK: fmul %st, %st(1)
 // CHECK: encoding: [0xdc,0xc9]
 // CHECK: fmul %st(1)
 // CHECK: encoding: [0xd8,0xc9]
 fmul %st, %st(1)
 fmul %st(1), %st
 
-// CHECK: fadd %st(0), %st(1)
+// CHECK: fadd %st, %st(1)
 // CHECK: encoding: [0xdc,0xc1]
 // CHECK: fadd %st(1)
 // CHECK: encoding: [0xd8,0xc1]
@@ -582,15 +582,15 @@ movmskpd  %xmm6, %eax
 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
 
 // rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
-fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
-fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
+fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9]
+fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9]
 
-fsubrp %st(0), %st(1) // CHECK: encoding: [0xde,0xe9]
-fsubrp %st(1), %st(0) // CHECK: encoding: [0xde,0xe9]
+fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9]
+fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9]
 
 // also PR8861
-fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
-fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
+fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1]
+fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1]
 
 
 movl   foo(%rip), %eax
@@ -1391,38 +1391,38 @@ clac
 // CHECK: encoding: [0x0f,0x01,0xcb]
 stac
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fdivp %st(1)
-// CHECK: fdivrp %st(1)
-faddp %st(0), %st(1)
-fmulp %st(0), %st(1)
-fsubp %st(0), %st(1)
-fsubrp %st(0), %st(1)
-fdivp %st(0), %st(1)
-fdivrp %st(0), %st(1)
-
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fdivp %st(1)
-// CHECK: fdivrp %st(1)
-faddp %st(1), %st(0)
-fmulp %st(1), %st(0)
-fsubp %st(1), %st(0)
-fsubrp %st(1), %st(0)
-fdivp %st(1), %st(0)
-fdivrp %st(1), %st(0)
-
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fdivp %st(1)
-// CHECK: fdivrp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+faddp %st, %st(1)
+fmulp %st, %st(1)
+fsubp %st, %st(1)
+fsubrp %st, %st(1)
+fdivp %st, %st(1)
+fdivrp %st, %st(1)
+
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
+faddp %st(1), %st
+fmulp %st(1), %st
+fsubp %st(1), %st
+fsubrp %st(1), %st
+fdivp %st(1), %st
+fdivrp %st(1), %st
+
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
 faddp %st(1)
 fmulp %st(1)
 fsubp %st(1)
@@ -1430,12 +1430,12 @@ fsubrp %st(1)
 fdivp %st(1)
 fdivrp %st(1)
 
-// CHECK: faddp %st(1)
-// CHECK: fmulp %st(1)
-// CHECK: fsubp %st(1)
-// CHECK: fsubrp %st(1)
-// CHECK: fdivp %st(1)
-// CHECK: fdivrp %st(1)
+// CHECK: faddp %st, %st(1)
+// CHECK: fmulp %st, %st(1)
+// CHECK: fsubp %st, %st(1)
+// CHECK: fsubrp %st, %st(1)
+// CHECK: fdivp %st, %st(1)
+// CHECK: fdivrp %st, %st(1)
 faddp
 fmulp
 fsubp
@@ -1449,25 +1449,25 @@ fdivrp
 // CHECK: fsubr %st(1)
 // CHECK: fdiv %st(1)
 // CHECK: fdivr %st(1)
-fadd %st(1), %st(0)
-fmul %st(1), %st(0)
-fsub %st(1), %st(0)
-fsubr %st(1), %st(0)
-fdiv %st(1), %st(0)
-fdivr %st(1), %st(0)
-
-// CHECK: fadd %st(0), %st(1)
-// CHECK: fmul %st(0), %st(1)
-// CHECK: fsub %st(0), %st(1)
-// CHECK: fsubr %st(0), %st(1)
-// CHECK: fdiv %st(0), %st(1)
-// CHECK: fdivr %st(0), %st(1)
-fadd %st(0), %st(1)
-fmul %st(0), %st(1)
-fsub %st(0), %st(1)
-fsubr %st(0), %st(1)
-fdiv %st(0), %st(1)
-fdivr %st(0), %st(1)
+fadd %st(1), %st
+fmul %st(1), %st
+fsub %st(1), %st
+fsubr %st(1), %st
+fdiv %st(1), %st
+fdivr %st(1), %st
+
+// CHECK: fadd %st, %st(1)
+// CHECK: fmul %st, %st(1)
+// CHECK: fsub %st, %st(1)
+// CHECK: fsubr %st, %st(1)
+// CHECK: fdiv %st, %st(1)
+// CHECK: fdivr %st, %st(1)
+fadd %st, %st(1)
+fmul %st, %st(1)
+fsub %st, %st(1)
+fsubr %st, %st(1)
+fdiv %st, %st(1)
+fdivr %st, %st(1)
 
 // CHECK: fadd %st(1)
 // CHECK: fmul %st(1)
index c7a990a892eb67faa16d3ff23c779c05bbf291c6..eda0fdebb7d3c23a300d37416fbf1c431419cd29 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      99    49.50                 U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      5     5.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  1      5     5.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      5     5.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  1      5     5.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  1      25    12.50                 U     fnclex
-# CHECK-NEXT:  1      9     4.50                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      9     4.50                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      9     4.50                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      5     5.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      5     5.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      5     5.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  1      5     5.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  1      5     5.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fcompp
-# CHECK-NEXT:  1      9     4.50                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      9     4.50                  U     fcompi %st(3)
+# CHECK-NEXT:  1      9     4.50                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      9     4.50                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      174   87.00                 U     fcos
 # CHECK-NEXT:  1      1     0.50                  U     fdecstp
-# CHECK-NEXT:  1      34    17.00                 U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      34    17.00                 U     fdiv   %st(2)
+# CHECK-NEXT:  1      34    17.00                 U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      34    17.00                 U     fdiv   %st(2), %st
 # CHECK-NEXT:  1      34    17.00   *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      34    17.00                 U     fdivp  %st(1)
-# CHECK-NEXT:  1      34    17.00                 U     fdivp  %st(2)
+# CHECK-NEXT:  1      34    17.00                 U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      34    17.00                 U     fdivp  %st, %st(2)
 # CHECK-NEXT:  1      34    17.00   *             U     fidivs (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fidivl (%eax)
-# CHECK-NEXT:  1      34    17.00                 U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      34    17.00                 U     fdivr  %st(2)
+# CHECK-NEXT:  1      34    17.00                 U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      34    17.00                 U     fdivr  %st(2), %st
 # CHECK-NEXT:  1      34    17.00   *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      34    17.00                 U     fdivrp %st(1)
-# CHECK-NEXT:  1      34    17.00                 U     fdivrp %st(2)
+# CHECK-NEXT:  1      34    17.00                 U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      34    17.00                 U     fdivrp %st, %st(2)
 # CHECK-NEXT:  1      34    17.00   *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  1      10    5.00                  U     fldln2
 # CHECK-NEXT:  1      10    5.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      4     4.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      4     4.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      4     4.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      4     4.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  1      4     4.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      4     4.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      4     4.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      4     4.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      4     4.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      4     4.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  1      4     4.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  1      4     4.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.50                  U     frstor (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.50                  U     fnsave (%eax)
-# CHECK-NEXT:  1      5     5.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  1      5     5.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      5     5.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  1      5     5.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      5     5.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  1      5     5.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      5     5.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      5     5.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      5     5.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      5     5.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  1      5     5.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      9     4.50                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      1     1.00                  U     fucompp
-# CHECK-NEXT:  1      9     4.50                  U     fucomi %st(3)
-# CHECK-NEXT:  1      9     4.50                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      9     4.50                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      9     4.50                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      1     0.50                  U     wait
 # CHECK-NEXT:  1      1     1.00                  U     fxam
 # CHECK-NEXT:  1      1     1.00                  U     fxch   %st(1)
@@ -367,26 +367,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    Instructions:
 # CHECK-NEXT: 49.50  49.50  f2xm1
 # CHECK-NEXT:  -     1.00   fabs
-# CHECK-NEXT: 5.00    -     fadd       %st(0), %st(1)
-# CHECK-NEXT: 5.00    -     fadd       %st(2)
+# CHECK-NEXT: 5.00    -     fadd       %st, %st(1)
+# CHECK-NEXT: 5.00    -     fadd       %st(2), %st
 # CHECK-NEXT: 5.00    -     fadds      (%ecx)
 # CHECK-NEXT: 5.00    -     faddl      (%ecx)
-# CHECK-NEXT: 5.00    -     faddp      %st(1)
-# CHECK-NEXT: 5.00    -     faddp      %st(2)
+# CHECK-NEXT: 5.00    -     faddp      %st, %st(1)
+# CHECK-NEXT: 5.00    -     faddp      %st, %st(2)
 # CHECK-NEXT: 5.00    -     fiadds     (%ecx)
 # CHECK-NEXT: 5.00    -     fiaddl     (%ecx)
 # CHECK-NEXT: 0.50   0.50   fbld       (%ecx)
 # CHECK-NEXT: 0.50   0.50   fbstp      (%eax)
 # CHECK-NEXT:  -     1.00   fchs
 # CHECK-NEXT: 12.50  12.50  fnclex
-# CHECK-NEXT: 4.50   4.50   fcmovb     %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovbe    %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmove     %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovnb    %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovnbe   %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovne    %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovnu    %st(1), %st(0)
-# CHECK-NEXT: 4.50   4.50   fcmovu     %st(1), %st(0)
+# CHECK-NEXT: 4.50   4.50   fcmovb     %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovbe    %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmove     %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovnb    %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovnbe   %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovne    %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovnu    %st(1), %st
+# CHECK-NEXT: 4.50   4.50   fcmovu     %st(1), %st
 # CHECK-NEXT: 5.00    -     fcom       %st(1)
 # CHECK-NEXT: 5.00    -     fcom       %st(3)
 # CHECK-NEXT: 5.00    -     fcoms      (%ecx)
@@ -396,24 +396,24 @@ fyl2xp1
 # CHECK-NEXT: 5.00    -     fcomps     (%ecx)
 # CHECK-NEXT: 5.00    -     fcompl     (%eax)
 # CHECK-NEXT:  -     1.00   fcompp
-# CHECK-NEXT: 4.50   4.50   fcomi      %st(3)
-# CHECK-NEXT: 4.50   4.50   fcompi     %st(3)
+# CHECK-NEXT: 4.50   4.50   fcomi      %st(3), %st
+# CHECK-NEXT: 4.50   4.50   fcompi     %st(3), %st
 # CHECK-NEXT: 87.00  87.00  fcos
 # CHECK-NEXT: 0.50   0.50   fdecstp
-# CHECK-NEXT: 17.00  17.00  fdiv       %st(0), %st(1)
-# CHECK-NEXT: 17.00  17.00  fdiv       %st(2)
+# CHECK-NEXT: 17.00  17.00  fdiv       %st, %st(1)
+# CHECK-NEXT: 17.00  17.00  fdiv       %st(2), %st
 # CHECK-NEXT: 17.00  17.00  fdivs      (%ecx)
 # CHECK-NEXT: 17.00  17.00  fdivl      (%eax)
-# CHECK-NEXT: 17.00  17.00  fdivp      %st(1)
-# CHECK-NEXT: 17.00  17.00  fdivp      %st(2)
+# CHECK-NEXT: 17.00  17.00  fdivp      %st, %st(1)
+# CHECK-NEXT: 17.00  17.00  fdivp      %st, %st(2)
 # CHECK-NEXT: 17.00  17.00  fidivs     (%ecx)
 # CHECK-NEXT: 17.00  17.00  fidivl     (%eax)
-# CHECK-NEXT: 17.00  17.00  fdivr      %st(0), %st(1)
-# CHECK-NEXT: 17.00  17.00  fdivr      %st(2)
+# CHECK-NEXT: 17.00  17.00  fdivr      %st, %st(1)
+# CHECK-NEXT: 17.00  17.00  fdivr      %st(2), %st
 # CHECK-NEXT: 17.00  17.00  fdivrs     (%ecx)
 # CHECK-NEXT: 17.00  17.00  fdivrl     (%eax)
-# CHECK-NEXT: 17.00  17.00  fdivrp     %st(1)
-# CHECK-NEXT: 17.00  17.00  fdivrp     %st(2)
+# CHECK-NEXT: 17.00  17.00  fdivrp     %st, %st(1)
+# CHECK-NEXT: 17.00  17.00  fdivrp     %st, %st(2)
 # CHECK-NEXT: 17.00  17.00  fidivrs    (%ecx)
 # CHECK-NEXT: 17.00  17.00  fidivrl    (%eax)
 # CHECK-NEXT: 0.50   0.50   ffree      %st(0)
@@ -447,12 +447,12 @@ fyl2xp1
 # CHECK-NEXT: 5.00   5.00   fldln2
 # CHECK-NEXT: 5.00   5.00   fldpi
 # CHECK-NEXT: 0.50   0.50   fldz
-# CHECK-NEXT: 4.00    -     fmul       %st(0), %st(1)
-# CHECK-NEXT: 4.00    -     fmul       %st(2)
+# CHECK-NEXT: 4.00    -     fmul       %st, %st(1)
+# CHECK-NEXT: 4.00    -     fmul       %st(2), %st
 # CHECK-NEXT: 4.00    -     fmuls      (%ecx)
 # CHECK-NEXT: 4.00    -     fmull      (%eax)
-# CHECK-NEXT: 4.00    -     fmulp      %st(1)
-# CHECK-NEXT: 4.00    -     fmulp      %st(2)
+# CHECK-NEXT: 4.00    -     fmulp      %st, %st(1)
+# CHECK-NEXT: 4.00    -     fmulp      %st, %st(2)
 # CHECK-NEXT: 4.00    -     fimuls     (%ecx)
 # CHECK-NEXT: 4.00    -     fimull     (%eax)
 # CHECK-NEXT: 0.50   0.50   fnop
@@ -480,20 +480,20 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50   frstor     (%eax)
 # CHECK-NEXT: 0.50   0.50   wait
 # CHECK-NEXT: 0.50   0.50   fnsave     (%eax)
-# CHECK-NEXT: 5.00    -     fsub       %st(0), %st(1)
-# CHECK-NEXT: 5.00    -     fsub       %st(2)
+# CHECK-NEXT: 5.00    -     fsub       %st, %st(1)
+# CHECK-NEXT: 5.00    -     fsub       %st(2), %st
 # CHECK-NEXT: 5.00    -     fsubs      (%ecx)
 # CHECK-NEXT: 5.00    -     fsubl      (%eax)
-# CHECK-NEXT: 5.00    -     fsubp      %st(1)
-# CHECK-NEXT: 5.00    -     fsubp      %st(2)
+# CHECK-NEXT: 5.00    -     fsubp      %st, %st(1)
+# CHECK-NEXT: 5.00    -     fsubp      %st, %st(2)
 # CHECK-NEXT: 5.00    -     fisubs     (%ecx)
 # CHECK-NEXT: 5.00    -     fisubl     (%eax)
-# CHECK-NEXT: 5.00    -     fsubr      %st(0), %st(1)
-# CHECK-NEXT: 5.00    -     fsubr      %st(2)
+# CHECK-NEXT: 5.00    -     fsubr      %st, %st(1)
+# CHECK-NEXT: 5.00    -     fsubr      %st(2), %st
 # CHECK-NEXT: 5.00    -     fsubrs     (%ecx)
 # CHECK-NEXT: 5.00    -     fsubrl     (%eax)
-# CHECK-NEXT: 5.00    -     fsubrp     %st(1)
-# CHECK-NEXT: 5.00    -     fsubrp     %st(2)
+# CHECK-NEXT: 5.00    -     fsubrp     %st, %st(1)
+# CHECK-NEXT: 5.00    -     fsubrp     %st, %st(2)
 # CHECK-NEXT: 5.00    -     fisubrs    (%ecx)
 # CHECK-NEXT: 5.00    -     fisubrl    (%eax)
 # CHECK-NEXT: 4.50   4.50   ftst
@@ -502,8 +502,8 @@ fyl2xp1
 # CHECK-NEXT:  -     1.00   fucomp     %st(1)
 # CHECK-NEXT:  -     1.00   fucomp     %st(3)
 # CHECK-NEXT:  -     1.00   fucompp
-# CHECK-NEXT: 4.50   4.50   fucomi     %st(3)
-# CHECK-NEXT: 4.50   4.50   fucompi    %st(3)
+# CHECK-NEXT: 4.50   4.50   fucomi     %st(3), %st
+# CHECK-NEXT: 4.50   4.50   fucompi    %st(3), %st
 # CHECK-NEXT: 0.50   0.50   wait
 # CHECK-NEXT: 1.00    -     fxam
 # CHECK-NEXT: 1.00   1.00   fxch       %st(1)
index ad72714c74c1bbaf47a96b3b57ef85430ef9125a..4cdddf01104b04959322a557dc183fd02d3ebc55 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.50                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      5     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      5     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  1      100   0.50                  U     fnclex
-# CHECK-NEXT:  1      1     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      1     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      1     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      1     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  2      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  2      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      6     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  1      6     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  1      6     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     fcompp
-# CHECK-NEXT:  2      1     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  2      1     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  2      1     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  2      1     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.50                  U     fcos
 # CHECK-NEXT:  1      100   0.50                  U     fdecstp
-# CHECK-NEXT:  1      9     9.50                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      9     9.50                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      9     9.50                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      9     9.50                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  1      14    9.50    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      9     9.50                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      9     9.50                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      9     9.50                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      9     9.50                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  1      14    9.50    *             U     fidivs (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      9     9.50                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      9     9.50                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      9     9.50                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      9     9.50                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  1      14    9.50    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      9     9.50                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      9     9.50                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      9     9.50                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      9     9.50                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  1      14    9.50    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fldln2
 # CHECK-NEXT:  1      3     1.00                  U     fldpi
 # CHECK-NEXT:  1      3     1.00                  U     fldz
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.50                  U     frstor (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     wait
 # CHECK-NEXT:  1      100   0.50                  U     fnsave (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  2      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      1     1.00                  U     fucompp
-# CHECK-NEXT:  2      1     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  2      1     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  2      1     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  2      1     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      100   0.50                  U     wait
 # CHECK-NEXT:  1      100   0.50                  U     fxam
 # CHECK-NEXT:  1      1     0.50                  U     fxch   %st(1)
@@ -388,26 +388,26 @@ fyl2xp1
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2]    [3]    [4]    [5]    [6]    [7.0]  [7.1]  [8.0]  [8.1]  [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16.0] [16.1] [17]   [18]   Instructions:
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     f2xm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fabs
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fadd    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fadd    %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fadd    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fadd    %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fadds   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     faddl   (%ecx)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     faddp   %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     faddp   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     faddp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     faddp   %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fiadds  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fiaddl  (%ecx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fbld    (%ecx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fbstp   (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fchs
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnclex
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovb  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovbe %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmove  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnb %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnbe        %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovne %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnu %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovu  %st(1), %st(0)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovb  %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovbe %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmove  %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnb %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnbe        %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovne %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovnu %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcmovu  %st(1), %st
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcom    %st(1)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcom    %st(3)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fcoms   (%ecx)
@@ -417,24 +417,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fcomps  (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fcompl  (%eax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcompp
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcomi   %st(3)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcompi  %st(3)
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcomi   %st(3), %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcompi  %st(3), %st
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdiv    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdiv    %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdiv    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdiv    %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fdivs   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fdivl   (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivp   %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivp   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivp   %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fidivs  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fidivl  (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivr   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivr   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivr   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivr   %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fdivrs  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fdivrl  (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivrp  %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivrp  %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivrp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivrp  %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fidivrs (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fidivrl (%eax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     ffree   %st(0)
@@ -468,12 +468,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fldln2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fldpi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fldz
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmul    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmul    %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmul    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmul    %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fmuls   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fmull   (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmulp   %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmulp   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmulp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fmulp   %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fimuls  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -     0.50   0.50    -      -     fimull  (%eax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnop
@@ -501,20 +501,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     frstor  (%eax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wait
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnsave  (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsub    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsub    %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsub    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsub    %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fsubs   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fsubl   (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubp   %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubp   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubp   %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fisubs  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fisubl  (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubr   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubr   %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubr   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubr   %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fsubrs  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fsubrl  (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubrp  %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubrp  %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubrp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubrp  %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fisubrs (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     fisubrl (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     ftst
@@ -523,8 +523,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucomp  %st(1)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucomp  %st(3)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fucompp
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucomi  %st(3)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucompi %st(3)
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucomi  %st(3), %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fucompi %st(3), %st
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wait
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxam
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxch    %st(1)
index 5cb92be47eabb01d5f9e9d97eeb96e157e18b0b0..2f3a69da99d074855e7e3f28f1c783381aca74a0 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.25                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      9     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      12    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      12    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.25                  U     fbld   (%ecx)
 # CHECK-NEXT:  2      1     1.00                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  4      4     1.00                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      7     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      7     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      7     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     fcompp
-# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.25                  U     fcos
 # CHECK-NEXT:  2      2     1.00                  U     fdecstp
-# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      21    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      21    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      24    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      24    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      26    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      26    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      29    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      29    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      14    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      14    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     frstor (%eax)
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      9     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      12    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      12    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      9     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      12    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      12    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      3     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      3     1.00                  U     fucompp
-# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fxam
 # CHECK-NEXT:  12     14    4.00                  U     fxch   %st(1)
@@ -375,26 +375,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     f2xm1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fabs
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     faddl      (%ecx)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fiadds     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fiaddl     (%ecx)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fbld       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fbstp      (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fchs
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -     1.00   1.00    -     fnclex
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st(0)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcoms      (%ecx)
@@ -404,24 +404,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcomps     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcompl     (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcompp
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcomi      %st(3)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcompi     %st(3)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcomi      %st(3), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcompi     %st(3), %st
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivs     (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivrs    (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivrl    (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
@@ -455,12 +455,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fldln2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fldpi
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fimuls     (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fimull     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fnop
@@ -488,20 +488,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     frstor     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fnsave     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubl      (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubs     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubl     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrl     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubrs    (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubrl    (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     ftst
@@ -510,8 +510,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomp     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomp     %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucompp
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomi     %st(3)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucompi    %st(3)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomi     %st(3), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucompi    %st(3), %st
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fxam
 # CHECK-NEXT:  -      -     3.25   2.25    -      -      -     1.25   5.25    -     fxch       %st(1)
index a0e431f6dfe45d8e24481bc12f7aab99bdcc8037..2b6b2c497273158072238eb040581070c4f54b3b 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.50                  U     f2xm1
 # CHECK-NEXT:  1      2     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  1      8     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  1      8     1.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.50                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      2     1.00                  U     fchs
 # CHECK-NEXT:  1      100   0.50                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  1      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  1      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     fcompp
-# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.50                  U     fcos
 # CHECK-NEXT:  1      100   0.50                  U     fdecstp
-# CHECK-NEXT:  1      19    19.00                 U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      19    19.00                 U     fdiv   %st(2)
+# CHECK-NEXT:  1      19    19.00                 U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      19    19.00                 U     fdiv   %st(2), %st
 # CHECK-NEXT:  1      24    19.00   *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      19    19.00                 U     fdivp  %st(1)
-# CHECK-NEXT:  1      19    19.00                 U     fdivp  %st(2)
+# CHECK-NEXT:  1      19    19.00                 U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      19    19.00                 U     fdivp  %st, %st(2)
 # CHECK-NEXT:  1      24    19.00   *             U     fidivs (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fidivl (%eax)
-# CHECK-NEXT:  1      19    19.00                 U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      19    19.00                 U     fdivr  %st(2)
+# CHECK-NEXT:  1      19    19.00                 U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      19    19.00                 U     fdivr  %st(2), %st
 # CHECK-NEXT:  1      24    19.00   *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      19    19.00                 U     fdivrp %st(1)
-# CHECK-NEXT:  1      19    19.00                 U     fdivrp %st(2)
+# CHECK-NEXT:  1      19    19.00                 U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      19    19.00                 U     fdivrp %st, %st(2)
 # CHECK-NEXT:  1      24    19.00   *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fldln2
 # CHECK-NEXT:  1      3     1.00                  U     fldpi
 # CHECK-NEXT:  1      3     1.00                  U     fldz
-# CHECK-NEXT:  1      2     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      2     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      2     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      2     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  1      7     1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      7     1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      2     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      2     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      2     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      2     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  1      7     1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  1      7     1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.50                  U     frstor (%eax)
 # CHECK-NEXT:  1      100   0.50                  U     wait
 # CHECK-NEXT:  1      100   0.50                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  1      8     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  1      8     1.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  1      8     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  1      8     1.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      3     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      3     1.00                  U     fucompp
-# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      100   0.50                  U     wait
 # CHECK-NEXT:  1      100   0.50                  U     fxam
 # CHECK-NEXT:  1      1     0.50                  U     fxch   %st(1)
@@ -379,26 +379,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     f2xm1
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fabs
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fadd   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fadd   %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fadd   %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fadd   %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fadds  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     faddl  (%ecx)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     faddp  %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     faddp  %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     faddp  %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     faddp  %st, %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fiadds (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fiaddl (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fbld   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fbstp  (%eax)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fchs
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fnclex
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmove %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovb %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovbe        %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmove %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnb        %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovne        %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovnu        %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcmovu %st(1), %st
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcom   %st(1)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcom   %st(3)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fcoms  (%ecx)
@@ -408,24 +408,24 @@ fyl2xp1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fcomps (%ecx)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fcompl (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fcompp
-# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcomi  %st(3)
-# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcompi %st(3)
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcomi  %st(3), %st
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcompi %st(3), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdiv   %st(2)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdiv   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdiv   %st(2), %st
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivs  (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivl  (%eax)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivp  %st(1)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivp  %st(2)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivp  %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fidivs (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fidivl (%eax)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivr  %st(2)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivr  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivr  %st(2), %st
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivrs (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivrl (%eax)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivrp %st(1)
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivrp %st(2)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivrp %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivrp %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fidivrs        (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fidivrl        (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     ffree  %st(0)
@@ -459,12 +459,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     fldln2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     fldpi
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     fldz
-# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmul   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmul   %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmul   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmul   %st(2), %st
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -     fmuls  (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -     fmull  (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmulp  %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmulp  %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmulp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     fmulp  %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -     fimuls (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -     fimull (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fnop
@@ -492,20 +492,20 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     frstor (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     wait
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fnsave (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsub   %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsub   %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsub   %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsub   %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubs  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubl  (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubp  %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubp  %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubp  %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubp  %st, %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fisubs (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fisubl (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubr  %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubr  %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubr  %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubrs (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubrl (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubrp %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubrp %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubrp %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubrp %st, %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fisubrs        (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fisubrl        (%eax)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     ftst
@@ -514,8 +514,8 @@ fyl2xp1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucomp %st(1)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucomp %st(3)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucompp
-# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucomi %st(3)
-# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucompi        %st(3)
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucomi %st(3), %st
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fucompi        %st(3), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     wait
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fxam
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fxch   %st(1)
index 1cba9a7d77fc288392e56eb9376396ff62db39b4..1f3e51e58b33c07aba509d8e807883c055d77b77 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.33                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.33                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.33                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  1      100   0.33                  U     fnclex
-# CHECK-NEXT:  3      3     2.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  3      3     2.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.33                  U     fcompp
-# CHECK-NEXT:  3      3     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  3      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.33                  U     fcos
 # CHECK-NEXT:  1      1     1.00                  U     fdecstp
-# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     1.00                  U     fldz
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      15    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      15    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.33                  U     frstor (%eax)
 # CHECK-NEXT:  1      100   0.33                  U     wait
 # CHECK-NEXT:  1      100   0.33                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      3     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      3     1.00                  U     fucompp
-# CHECK-NEXT:  3      3     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  3      3     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  3      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  3      3     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      100   0.33                  U     wait
 # CHECK-NEXT:  1      100   0.33                  U     fxam
 # CHECK-NEXT:  1      1     0.33                  U     fxch   %st(1)
@@ -373,26 +373,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     f2xm1
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fabs
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   faddl    (%ecx)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fiadds   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fiaddl   (%ecx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fbld     (%ecx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fbstp    (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fchs
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fnclex
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovb   %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovbe  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmove   %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnb  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnbe %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovne  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnu  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovu   %st(1), %st(0)
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovb   %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovbe  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmove   %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnb  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnbe %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovne  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnu  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovu   %st(1), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcoms    (%ecx)
@@ -402,24 +402,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcomps   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcompl   (%eax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcompp
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcomi    %st(3)
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3)
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcomi    %st(3), %st
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3), %st
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(0), %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivl    (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivs   (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivl   (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(0), %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrs   (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrl   (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivrs  (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivrl  (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     ffree    %st(0)
@@ -453,12 +453,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     fldln2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     fldpi
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmull    (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fimuls   (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fimull   (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fnop
@@ -486,20 +486,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     frstor   (%eax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wait
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fnsave   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubl    (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubs   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubl   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrl   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubrs  (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubrl  (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     ftst
@@ -508,8 +508,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucomp   %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucomp   %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucompp
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucomi   %st(3)
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucompi  %st(3)
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucomi   %st(3), %st
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucompi  %st(3), %st
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wait
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fxam
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fxch     %st(1)
index 53006bbc3296e1766c0ac5fb01785952debc5cd8..7da8b2802a9a16aa3bb733af80a0051ca98f306f 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.25                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  43     47    10.75                 U     fbld   (%ecx)
 # CHECK-NEXT:  2      1     1.00                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  4      4     1.00                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  2      1     0.50                  U     fcompp
-# CHECK-NEXT:  3      1     0.50                  U     fcomi  %st(3)
-# CHECK-NEXT:  3      1     0.50                  U     fcompi %st(3)
+# CHECK-NEXT:  3      1     0.50                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  3      1     0.50                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.25                  U     fcos
 # CHECK-NEXT:  2      2     1.00                  U     fdecstp
-# CHECK-NEXT:  1      24    1.00                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      24    1.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      24    1.00                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      24    1.00                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      24    1.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      24    1.00                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      24    1.00                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      24    1.00                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      15    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      15    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  90     1     22.50                 U     frstor (%eax)
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  147    1     36.75                 U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  2      1     0.50                  U     fucompp
-# CHECK-NEXT:  3      1     0.50                  U     fucomi %st(3)
-# CHECK-NEXT:  3      1     0.50                  U     fucompi        %st(3)
+# CHECK-NEXT:  3      1     0.50                  U     fucomi %st(3), %st
+# CHECK-NEXT:  3      1     0.50                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  2      1     2.00                  U     fxam
 # CHECK-NEXT:  15     17    4.00                  U     fxch   %st(1)
@@ -375,26 +375,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     f2xm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fabs
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     faddl      (%ecx)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     faddp      %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fiadds     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fiaddl     (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     fbld       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fbstp      (%eax)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fchs
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -     1.00   1.00    -     fnclex
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st(0)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcoms      (%ecx)
@@ -404,24 +404,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcomps     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcompl     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcompp
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcomi      %st(3)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcompi     %st(3)
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcomi      %st(3), %st
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcompi     %st(3), %st
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivs     (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivrs    (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fidivrl    (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     ffree      %st(0)
@@ -455,12 +455,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fldln2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fldpi
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fimuls     (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     fimull     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fnop
@@ -488,20 +488,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     frstor     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     fnsave     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubl      (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubs     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubl     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrl     (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubrp     %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubrs    (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     fisubrl    (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     ftst
@@ -510,8 +510,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomp     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fucomp     %st(3)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fucompp
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fucomi     %st(3)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fucompi    %st(3)
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fucomi     %st(3), %st
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fucompi    %st(3), %st
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -      -     2.00    -      -      -      -      -      -     fxam
 # CHECK-NEXT:  -      -     4.00   3.00    -      -      -     3.00   5.00    -     fxch       %st(1)
index fe5de61296f56953a3bd2f88d5d1e858139c7238..d6d42e957bfe349eb2bf8ecc5c38548dbc0958de 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   1.00                  U     f2xm1
 # CHECK-NEXT:  1      1     0.50                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  1      6     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  1      6     1.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   1.00                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   1.00                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fchs
 # CHECK-NEXT:  1      100   1.00                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      6     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  1      6     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  1      6     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   1.00                  U     fcompp
-# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   1.00                  U     fcos
 # CHECK-NEXT:  1      100   1.00                  U     fdecstp
-# CHECK-NEXT:  1      19    17.00                 U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      19    17.00                 U     fdiv   %st(2)
+# CHECK-NEXT:  1      19    17.00                 U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      19    17.00                 U     fdiv   %st(2), %st
 # CHECK-NEXT:  1      22    17.00   *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      19    17.00                 U     fdivp  %st(1)
-# CHECK-NEXT:  1      19    17.00                 U     fdivp  %st(2)
+# CHECK-NEXT:  1      19    17.00                 U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      19    17.00                 U     fdivp  %st, %st(2)
 # CHECK-NEXT:  1      22    17.00   *             U     fidivs (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fidivl (%eax)
-# CHECK-NEXT:  1      19    17.00                 U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      19    17.00                 U     fdivr  %st(2)
+# CHECK-NEXT:  1      19    17.00                 U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      19    17.00                 U     fdivr  %st(2), %st
 # CHECK-NEXT:  1      22    17.00   *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      19    17.00                 U     fdivrp %st(1)
-# CHECK-NEXT:  1      19    17.00                 U     fdivrp %st(2)
+# CHECK-NEXT:  1      19    17.00                 U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      19    17.00                 U     fdivrp %st, %st(2)
 # CHECK-NEXT:  1      22    17.00   *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   1.00                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      5     2.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     2.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     2.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     2.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  1      8     2.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      8     2.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     2.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     2.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     2.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     2.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  1      8     2.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  1      8     2.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   1.00                  U     frstor (%eax)
 # CHECK-NEXT:  1      100   1.00                  U     wait
 # CHECK-NEXT:  1      100   1.00                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  1      6     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  1      6     1.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  1      6     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  1      6     1.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      3     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      3     1.00                  U     fucompp
-# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      100   1.00                  U     wait
 # CHECK-NEXT:  1      100   1.00                  U     fxam
 # CHECK-NEXT:  1      1     0.50                  U     fxch   %st(1)
@@ -373,26 +373,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     f2xm1
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     fabs
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st(2), %st
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   faddl    (%ecx)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     faddp    %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     faddp    %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     faddp    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     faddp    %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fiadds   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fiaddl   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fbld     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fbstp    (%eax)
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     fchs
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fnclex
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovb   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovbe  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmove   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnb  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnbe %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovne  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnu  %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovu   %st(1), %st(0)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovb   %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovbe  %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmove   %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnb  %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnbe %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovne  %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovnu  %st(1), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcmovu   %st(1), %st
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fcoms    (%ecx)
@@ -402,24 +402,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fcomps   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fcompl   (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcompp
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcomi    %st(3)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcompi   %st(3)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcomi    %st(3), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcompi   %st(3), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcos
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fdecstp
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdiv     %st(0), %st(1)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdiv     %st(2)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdiv     %st, %st(1)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdiv     %st(2), %st
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivs    (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivl    (%eax)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivp    %st(1)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivp    %st(2)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivp    %st, %st(1)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivp    %st, %st(2)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fidivs   (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fidivl   (%eax)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivr    %st(0), %st(1)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivr    %st(2)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivr    %st, %st(1)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivr    %st(2), %st
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivrs   (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivrl   (%eax)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivrp   %st(1)
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivrp   %st(2)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivrp   %st, %st(1)
+# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivrp   %st, %st(2)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fidivrs  (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fidivrl  (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     ffree    %st(0)
@@ -453,12 +453,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   1.00    -      -      -     fldln2
 # CHECK-NEXT:  -      -      -     1.00   1.00    -      -      -     fldpi
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     fldz
-# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmul     %st(0), %st(1)
-# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmul     %st(2)
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmul     %st, %st(1)
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmul     %st(2), %st
 # CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   fmull    (%eax)
-# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmulp    %st(1)
-# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmulp    %st(2)
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmulp    %st, %st(1)
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -      -     fmulp    %st, %st(2)
 # CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   fimuls   (%ecx)
 # CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   fimull   (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     fnop
@@ -486,20 +486,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     frstor   (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fnsave   (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st(2), %st
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubl    (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubp    %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubp    %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubp    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubp    %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubs   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubl   (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st(2), %st
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubrl   (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubrp   %st(1)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubrp   %st(2)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubrp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubrp   %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubrs  (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubrl  (%eax)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     ftst
@@ -508,8 +508,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucomp   %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucomp   %st(3)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucompp
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucomi   %st(3)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucompi  %st(3)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucomi   %st(3), %st
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fucompi  %st(3), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fxam
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fxch     %st(1)
index 332f365f1fdd3a971dbedfb0be0e2c715d3db1b9..1bed53326ced6863aa7ef332a9b96c70b1ea4742 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.33                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.33                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.33                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  1      100   0.33                  U     fnclex
-# CHECK-NEXT:  3      3     2.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  3      3     2.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  3      3     2.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  3      3     2.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.33                  U     fcompp
-# CHECK-NEXT:  3      3     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  3      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.33                  U     fcos
 # CHECK-NEXT:  1      1     1.00                  U     fdecstp
-# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st(1)
-# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st(2)
+# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      34    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     1.00                  U     fldz
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      15    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      15    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.33                  U     frstor (%eax)
 # CHECK-NEXT:  1      100   0.33                  U     wait
 # CHECK-NEXT:  1      100   0.33                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      3     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      3     1.00                  U     fucompp
-# CHECK-NEXT:  3      3     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  3      3     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  3      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  3      3     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      100   0.33                  U     wait
 # CHECK-NEXT:  1      100   0.33                  U     fxam
 # CHECK-NEXT:  1      1     0.33                  U     fxch   %st(1)
@@ -373,26 +373,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     f2xm1
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fabs
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   faddl    (%ecx)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     faddp    %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fiadds   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fiaddl   (%ecx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fbld     (%ecx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fbstp    (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fchs
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fnclex
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovb   %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovbe  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmove   %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnb  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnbe %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovne  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnu  %st(1), %st(0)
-# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovu   %st(1), %st(0)
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovb   %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovbe  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmove   %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnb  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnbe %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovne  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovnu  %st(1), %st
+# CHECK-NEXT:  -      -     0.50    -      -     2.50    -      -     fcmovu   %st(1), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcoms    (%ecx)
@@ -402,24 +402,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcomps   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcompl   (%eax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcompp
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcomi    %st(3)
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3)
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcomi    %st(3), %st
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3), %st
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(0), %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivl    (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivs   (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivl   (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(0), %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrs   (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrl   (%eax)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st(1)
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st(2)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivrs  (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fidivrl  (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     ffree    %st(0)
@@ -453,12 +453,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     fldln2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     fldpi
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmull    (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmulp    %st, %st(2)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fimuls   (%ecx)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   fimull   (%eax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fnop
@@ -486,20 +486,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     frstor   (%eax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wait
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fnsave   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubl    (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubs   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubl   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(0), %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2), %st
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrl   (%eax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st(1)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st(2)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubrp   %st, %st(2)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubrs  (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   fisubrl  (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     ftst
@@ -508,8 +508,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucomp   %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucomp   %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fucompp
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucomi   %st(3)
-# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucompi  %st(3)
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucomi   %st(3), %st
+# CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fucompi  %st(3), %st
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wait
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fxam
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fxch     %st(1)
index 7be9d699573ac66cb1e59cd64dd15dbeef646b1a..6cd4439a25c1f368d376a507a2be896154ca71a8 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.25                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.25                  U     fbld   (%ecx)
 # CHECK-NEXT:  2      1     1.00                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  4      4     1.00                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     fcompp
-# CHECK-NEXT:  1      2     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  1      2     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.25                  U     fcos
 # CHECK-NEXT:  2      2     1.00                  U     fdecstp
-# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      25    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      25    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      14    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      14    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     frstor (%eax)
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      2     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      2     1.00                  U     fucompp
-# CHECK-NEXT:  1      2     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  1      2     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      2     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      2     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fxam
 # CHECK-NEXT:  15     17    4.00                  U     fxch   %st(1)
@@ -375,26 +375,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     f2xm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fabs
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     faddl      (%ecx)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fiadds     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fiaddl     (%ecx)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fbld       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fbstp      (%eax)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fchs
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -     1.00   1.00    -     fnclex
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st(0)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcoms      (%ecx)
@@ -404,24 +404,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcomps     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcompl     (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcompp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcomi      %st(3)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcomi      %st(3), %st
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3), %st
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivrs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivrl    (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
@@ -455,12 +455,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fldln2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fldpi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fimuls     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fimull     (%eax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     fnop
@@ -488,20 +488,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     frstor     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fnsave     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubl      (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubl     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrl     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubrs    (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubrl    (%eax)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     ftst
@@ -510,8 +510,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fucomp     %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fucomp     %st(3)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucomi     %st(3)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompi    %st(3)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucomi     %st(3), %st
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompi    %st(3), %st
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fxam
 # CHECK-NEXT:  -      -     4.00   2.00    -      -      -     4.00   5.00    -     fxch       %st(1)
index aecb4a7ab9211be98af8fdde68cc9cce63be3c4a..75cca5297704b2c6de4e6552734a352287009160 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.25                  U     f2xm1
 # CHECK-NEXT:  1      1     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.25                  U     fbld   (%ecx)
 # CHECK-NEXT:  2      1     1.00                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  4      4     1.00                  U     fnclex
-# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      3     1.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  2      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  2      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  2      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     fcompp
-# CHECK-NEXT:  1      2     1.00                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3)
+# CHECK-NEXT:  1      2     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.25                  U     fcos
 # CHECK-NEXT:  2      2     1.00                  U     fdecstp
-# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  2      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  3      25    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  3      25    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  3      30    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fldln2
 # CHECK-NEXT:  2      1     1.00                  U     fldpi
 # CHECK-NEXT:  1      1     0.50                  U     fldz
-# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  3      14    1.00    *             U     fimuls (%ecx)
 # CHECK-NEXT:  3      14    1.00    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     0.50                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     frstor (%eax)
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  3      13    2.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      2     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      2     1.00                  U     fucompp
-# CHECK-NEXT:  1      2     1.00                  U     fucomi %st(3)
-# CHECK-NEXT:  1      2     1.00                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      2     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      2     1.00                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  2      2     0.50                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fxam
 # CHECK-NEXT:  15     17    4.00                  U     fxch   %st(1)
@@ -375,26 +375,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     f2xm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fabs
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     faddl      (%ecx)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     faddp      %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fiadds     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fiaddl     (%ecx)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fbld       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fbstp      (%eax)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fchs
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -     1.00   1.00    -     fnclex
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st(0)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st(0)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovb     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovbe    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmove     %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnb    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnbe   %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovne    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovnu    %st(1), %st
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcmovu     %st(1), %st
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcoms      (%ecx)
@@ -404,24 +404,24 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcomps     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcompl     (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcompp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcomi      %st(3)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcomi      %st(3), %st
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3), %st
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivrs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fidivrl    (%eax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
@@ -455,12 +455,12 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fldln2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fldpi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     fldz
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2), %st
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(1)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st(2)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmulp      %st, %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fimuls     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -     1.00    -      -     fimull     (%eax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     fnop
@@ -488,20 +488,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     frstor     (%eax)
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fnsave     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubl      (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubl     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2), %st
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrl     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubrp     %st, %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubrs    (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     fisubrl    (%eax)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     ftst
@@ -510,8 +510,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fucomp     %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fucomp     %st(3)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucomi     %st(3)
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompi    %st(3)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucomi     %st(3), %st
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fucompi    %st(3), %st
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     wait
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fxam
 # CHECK-NEXT:  -      -     4.00   2.00    -      -      -     4.00   5.00    -     fxch       %st(1)
index 2f5f6ef08f1c72d625e741f89fb721f9055e6ac4..030b71fb7b63f7f5dd21481aafcd214db7999ad9 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st(0), %st(1)
+fadd %st, %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-fcmovb %st(1), %st(0)
-fcmovbe %st(1), %st(0)
-fcmove %st(1), %st(0)
-fcmovnb %st(1), %st(0)
-fcmovnbe %st(1), %st(0)
-fcmovne %st(1), %st(0)
-fcmovnu %st(1), %st(0)
-fcmovu %st(1), %st(0)
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st(0), %st(1)
+fdiv %st, %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st(0), %st(1)
+fdivr %st, %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st(0), %st(1)
+fmul %st, %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st(0), %st(1)
+fsub %st, %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st(0), %st(1)
+fsubr %st, %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,26 +208,26 @@ fyl2xp1
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      100   0.25                  U     f2xm1
 # CHECK-NEXT:  1      2     1.00                  U     fabs
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     faddl  (%ecx)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     faddp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     faddp  %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fiadds (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fiaddl (%ecx)
 # CHECK-NEXT:  1      100   0.25                  U     fbld   (%ecx)
 # CHECK-NEXT:  1      100   0.25                  U     fbstp  (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fchs
 # CHECK-NEXT:  1      100   0.25                  U     fnclex
-# CHECK-NEXT:  1      100   0.25                  U     fcmovb %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovbe        %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmove %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovnb        %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovnbe       %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovne        %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovnu        %st(1), %st(0)
-# CHECK-NEXT:  1      100   0.25                  U     fcmovu %st(1), %st(0)
+# CHECK-NEXT:  1      100   0.25                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmove %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  1      100   0.25                  U     fcmovu %st(1), %st
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      8     1.00                  U     fcoms  (%ecx)
@@ -237,24 +237,24 @@ fyl2xp1
 # CHECK-NEXT:  1      8     1.00                  U     fcomps (%ecx)
 # CHECK-NEXT:  1      8     1.00                  U     fcompl (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fcompp
-# CHECK-NEXT:  1      9     0.50                  U     fcomi  %st(3)
-# CHECK-NEXT:  1      9     0.50                  U     fcompi %st(3)
+# CHECK-NEXT:  1      9     0.50                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      9     0.50                  U     fcompi %st(3), %st
 # CHECK-NEXT:  1      100   0.25                  U     fcos
 # CHECK-NEXT:  1      11    1.00                  U     fdecstp
-# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(2), %st
 # CHECK-NEXT:  1      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fdivl  (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivp  %st, %st(2)
 # CHECK-NEXT:  1      22    1.00    *             U     fidivs (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fidivl (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(0), %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2), %st
 # CHECK-NEXT:  1      22    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fdivrl (%eax)
-# CHECK-NEXT:  1      15    1.00                  U     fdivrp %st(1)
-# CHECK-NEXT:  1      15    1.00                  U     fdivrp %st(2)
+# CHECK-NEXT:  1      15    1.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdivrp %st, %st(2)
 # CHECK-NEXT:  1      22    1.00    *             U     fidivrs        (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fidivrl        (%eax)
 # CHECK-NEXT:  1      11    1.00                  U     ffree  %st(0)
@@ -288,12 +288,12 @@ fyl2xp1
 # CHECK-NEXT:  1      11    1.00                  U     fldln2
 # CHECK-NEXT:  1      11    1.00                  U     fldpi
 # CHECK-NEXT:  1      8     0.50                  U     fldz
-# CHECK-NEXT:  1      3     0.50                  U     fmul   %st(0), %st(1)
-# CHECK-NEXT:  1      3     0.50                  U     fmul   %st(2)
+# CHECK-NEXT:  1      3     0.50                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fmul   %st(2), %st
 # CHECK-NEXT:  2      10    0.50    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      10    0.50    *             U     fmull  (%eax)
-# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st(1)
-# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st(2)
+# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st, %st(2)
 # CHECK-NEXT:  2      10    0.50    *             U     fimuls (%ecx)
 # CHECK-NEXT:  2      10    0.50    *             U     fimull (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     fnop
@@ -321,20 +321,20 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     frstor (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     wait
 # CHECK-NEXT:  1      100   0.25                  U     fnsave (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubl  (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubp  %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2), %st
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrl (%eax)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(1)
-# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st(2)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubrp %st, %st(2)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubrs        (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fisubrl        (%eax)
 # CHECK-NEXT:  1      1     1.00                  U     ftst
@@ -343,8 +343,8 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(1)
 # CHECK-NEXT:  1      1     1.00                  U     fucomp %st(3)
 # CHECK-NEXT:  1      1     1.00                  U     fucompp
-# CHECK-NEXT:  1      9     0.50                  U     fucomi %st(3)
-# CHECK-NEXT:  1      9     0.50                  U     fucompi        %st(3)
+# CHECK-NEXT:  1      9     0.50                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      9     0.50                  U     fucompi        %st(3), %st
 # CHECK-NEXT:  1      1     1.00                  U     wait
 # CHECK-NEXT:  1      1     1.00                  U     fxam
 # CHECK-NEXT:  1      1     0.25                  U     fxch   %st(1)
@@ -377,26 +377,26 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     f2xm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fabs
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fadds        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     faddl        (%ecx)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     faddp        %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     faddp        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     faddp        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     faddp        %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fiadds       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fiaddl       (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fbld (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fbstp        (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fchs
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fnclex
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovb       %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovbe      %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmove       %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnb      %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnbe     %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovne      %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnu      %st(1), %st(0)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovu       %st(1), %st(0)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovb       %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovbe      %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmove       %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnb      %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnbe     %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovne      %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovnu      %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcmovu       %st(1), %st
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fcom %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fcom %st(3)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fcoms        (%ecx)
@@ -406,24 +406,24 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fcomps       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fcompl       (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fcompp
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fcomi        %st(3)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fcompi       %st(3)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fcomi        %st(3), %st
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fcompi       %st(3), %st
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdecstp
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivs        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivl        (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivp        %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivp        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivp        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivp        %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fidivs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fidivl       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivrs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivrl       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivrp       %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivrp       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivrp       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivrp       %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fidivrs      (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fidivrl      (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     ffree        %st(0)
@@ -457,12 +457,12 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fldln2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fldpi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50    -     0.50    -     fldz
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmul %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmul %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmul %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmul %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50   0.50    -      -      -     fmuls        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50   0.50    -      -      -     fmull        (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmulp        %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmulp        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmulp        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.50   0.50    -      -      -     fmulp        %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50   0.50    -      -      -     fimuls       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50   0.50    -      -      -     fimull       (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fnop
@@ -490,20 +490,20 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     frstor       (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fnsave       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubs        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubl        (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubp        %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubp        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubp        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubp        %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fisubs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fisubl       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st(0), %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st(2), %st
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubrs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubrl       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubrp       %st(1)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubrp       %st(2)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubrp       %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubrp       %st, %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fisubrs      (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fisubrl      (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     ftst
@@ -512,8 +512,8 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fucomp       %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fucomp       %st(3)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fucompp
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fucomi       %st(3)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fucompi      %st(3)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fucomi       %st(3), %st
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fucompi      %st(3), %st
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fxam
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     fxch %st(1)
index 2f9b428b8cfe8bddee7845811798fbd735f29fda..463609edb73b339410f30c4a63f0bd99a850e248 100644 (file)
@@ -842,6 +842,7 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
   TYPE("f32mem",              TYPE_M)
   TYPE("ssmem",               TYPE_M)
   TYPE("RST",                 TYPE_ST)
+  TYPE("RSTi",                TYPE_ST)
   TYPE("i128mem",             TYPE_M)
   TYPE("i256mem",             TYPE_M)
   TYPE("i512mem",             TYPE_M)
@@ -964,6 +965,7 @@ OperandEncoding
 RecognizableInstr::rmRegisterEncodingFromString(const std::string &s,
                                                 uint8_t OpSize) {
   ENCODING("RST",             ENCODING_FP)
+  ENCODING("RSTi",            ENCODING_FP)
   ENCODING("GR16",            ENCODING_RM)
   ENCODING("GR32",            ENCODING_RM)
   ENCODING("GR32orGR64",      ENCODING_RM)