]> granicus.if.org Git - llvm/commitdiff
Revert r352985 "[X86] Print %st(0) as %st to match what gcc inline asm uses as the...
authorCraig Topper <craig.topper@intel.com>
Mon, 4 Feb 2019 04:15:02 +0000 (04:15 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 4 Feb 2019 04:15:02 +0000 (04:15 +0000)
Looking into gcc and objdump behavior more this was overly aggressive. If the register is encoded in the instruction we should print %st(0), if its implicit we should print %st.

I'll be making a more directed change in a future patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353013 91177308-0d34-0410-b5e6-96231b3b80d8

42 files changed:
lib/Target/X86/AsmParser/X86AsmParser.cpp
lib/Target/X86/X86InstrFPStack.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86RegisterInfo.td
test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
test/CodeGen/X86/avx512-regcall-NoMask.ll
test/CodeGen/X86/fcmove.ll
test/CodeGen/X86/finite-libcalls.ll
test/CodeGen/X86/fmf-flags.ll
test/CodeGen/X86/fp-cvt.ll
test/CodeGen/X86/fp128-cast.ll
test/CodeGen/X86/inline-asm-fpstack.ll
test/CodeGen/X86/pr13577.ll
test/CodeGen/X86/pr33349.ll
test/CodeGen/X86/pr34080.ll
test/CodeGen/X86/pr34177.ll
test/CodeGen/X86/scalar-fp-to-i64.ll
test/CodeGen/X86/select.ll
test/CodeGen/X86/sibcall.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.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

index 4c581083d262644fdc9be735f6953e058b3384da..83c053c8f1105f8af244f6c01f30798da6cbd9a1 100644 (file)
@@ -1114,7 +1114,8 @@ bool X86AsmParser::ParseRegister(unsigned &RegNo,
   }
 
   // Parse "%st" as "%st(0)" and "%st(1)", which is multiple tokens.
-  if (RegNo == X86::ST0) {
+  if (RegNo == 0 && (Tok.getString() == "st" || Tok.getString() == "ST")) {
+    RegNo = X86::ST0;
     Parser.Lex(); // Eat 'st'
 
     // Check to see if we have '(4)' after %st.
index a82645d165311b884980ca623aed8cf48593ec8e..d044fa2daa8991b665f4e55a65d8466e3cd0b350 100644 (file)
@@ -268,13 +268,13 @@ class FPrST0PInst<Format fp, string asm>
 // we have to put some 'r's in and take them out of weird places.
 let SchedRW = [WriteFAdd], Defs = [FPSW] in {
 def ADD_FST0r   : FPST0rInst <MRM0r, "fadd\t$op">;
-def ADD_FrST0   : FPrST0Inst <MRM0r, "fadd\t{%st, $op|$op, st}">;
+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, $op|$op, st}">;
+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, $op|$op, st}">;
+def SUBR_FrST0  : FPrST0Inst <MRM4r, "fsub{|r}\t{%st(0), $op|$op, st(0)}">;
 def SUBR_FPrST0 : FPrST0PInst<MRM4r, "fsub{|r}p\t$op">;
 } // SchedRW
 let SchedRW = [WriteFCom], Defs = [FPSW] in {
@@ -283,15 +283,15 @@ def COMP_FST0r  : FPST0rInst <MRM3r, "fcomp\t$op">;
 } // SchedRW
 let SchedRW = [WriteFMul], Defs = [FPSW] in {
 def MUL_FST0r   : FPST0rInst <MRM1r, "fmul\t$op">;
-def MUL_FrST0   : FPrST0Inst <MRM1r, "fmul\t{%st, $op|$op, st}">;
+def MUL_FrST0   : FPrST0Inst <MRM1r, "fmul\t{%st(0), $op|$op, st(0)}">;
 def MUL_FPrST0  : FPrST0PInst<MRM1r, "fmulp\t$op">;
 } // SchedRW
 let SchedRW = [WriteFDiv], Defs = [FPSW] in {
 def DIVR_FST0r  : FPST0rInst <MRM7r, "fdivr\t$op">;
-def DIV_FrST0   : FPrST0Inst <MRM7r, "fdiv{r}\t{%st, $op|$op, st}">;
+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, $op|$op, st}">;
+def DIVR_FrST0  : FPrST0Inst <MRM6r, "fdiv{|r}\t{%st(0), $op|$op, st(0)}">;
 def DIVR_FPrST0 : FPrST0PInst<MRM6r, "fdiv{|r}p\t$op">;
 } // SchedRW
 
@@ -398,21 +398,21 @@ 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|st, $op}">;
+                  "fcmovb\t{$op, %st(0)|st(0), $op}">;
 def CMOVBE_F : FPI<0xDA, MRM2r, (outs), (ins RST:$op),
-                  "fcmovbe\t{$op, %st|st, $op}">;
+                  "fcmovbe\t{$op, %st(0)|st(0), $op}">;
 def CMOVE_F  : FPI<0xDA, MRM1r, (outs), (ins RST:$op),
-                  "fcmove\t{$op, %st|st, $op}">;
+                  "fcmove\t{$op, %st(0)|st(0), $op}">;
 def CMOVP_F  : FPI<0xDA, MRM3r, (outs), (ins RST:$op),
-                  "fcmovu\t{$op, %st|st, $op}">;
+                  "fcmovu\t{$op, %st(0)|st(0), $op}">;
 def CMOVNB_F : FPI<0xDB, MRM0r, (outs), (ins RST:$op),
-                  "fcmovnb\t{$op, %st|st, $op}">;
+                  "fcmovnb\t{$op, %st(0)|st(0), $op}">;
 def CMOVNBE_F: FPI<0xDB, MRM2r, (outs), (ins RST:$op),
-                  "fcmovnbe\t{$op, %st|st, $op}">;
+                  "fcmovnbe\t{$op, %st(0)|st(0), $op}">;
 def CMOVNE_F : FPI<0xDB, MRM1r, (outs), (ins RST:$op),
-                  "fcmovne\t{$op, %st|st, $op}">;
+                  "fcmovne\t{$op, %st(0)|st(0), $op}">;
 def CMOVNP_F : FPI<0xDB, MRM3r, (outs), (ins RST:$op),
-                  "fcmovnu\t{$op, %st|st, $op}">;
+                  "fcmovnu\t{$op, %st(0)|st(0), $op}">;
 } // Predicates = [HasCMov]
 } // SchedRW
 
index 373b516e59880daf68db186f92ceb0e36cb37db2..9376dc2049cc7f395852ae2edeeb48ea4a6fca05 100644 (file)
@@ -3238,9 +3238,9 @@ 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|st, $op}"),
+ def : InstAlias<!strconcat(Mnemonic, "\t{$op, %st(0)|st(0), $op}"),
                  (Inst RST:$op), EmitAlias>;
- def : InstAlias<!strconcat(Mnemonic, "\t{%st, %st|st, st}"),
+ def : InstAlias<!strconcat(Mnemonic, "\t{%st(0), %st(0)|st(0), st(0)}"),
                  (Inst ST0), EmitAlias>;
 }
 
@@ -3265,12 +3265,12 @@ defm : FpUnaryAlias<"fucompi",  UCOM_FIPr>;
 // Handle "f{mulp,addp} st(0), $op" 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, $op|$op, st}", (ADD_FPrST0 RST:$op)>;
-def : InstAlias<"fmulp\t{%st, $op|$op, st}", (MUL_FPrST0 RST:$op)>;
-def : InstAlias<"fsub{|r}p\t{%st, $op|$op, st}", (SUBR_FPrST0 RST:$op)>;
-def : InstAlias<"fsub{r|}p\t{%st, $op|$op, st}", (SUB_FPrST0 RST:$op)>;
-def : InstAlias<"fdiv{|r}p\t{%st, $op|$op, st}", (DIVR_FPrST0 RST:$op)>;
-def : InstAlias<"fdiv{r|}p\t{%st, $op|$op, st}", (DIV_FPrST0 RST:$op)>;
+def : InstAlias<"faddp\t{%st(0), $op|$op, st(0)}", (ADD_FPrST0 RST:$op)>;
+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<"fnstsw"     , (FNSTSW16r), 0>;
 
index d671d0a998f869c468346533dcb358b1319d8ca1..e3abe1f1c3a2521fce64dfaff670a556eeb7d687 100644 (file)
@@ -277,7 +277,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>, DwarfRegNum<[33, 12, 11]>;
+def ST0 : X86Reg<"st(0)", 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]>;
index 46f543cff3b28d66a84aa5fd5a71a58efd5274ea..88057c86fd9d388fc0bc49abc1184450fd470105 100644 (file)
@@ -21,7 +21,7 @@ entry:
        ret x86_fp80 %tmp2
 ; CHECK-LABEL: bar:
 ; CHECK: fldt 4(%esp)
-; CHECK-NEXT: fld      %st
+; CHECK-NEXT: fld      %st(0)
 ; CHECK-NEXT: fmul     %st(1)
 ; CHECK-NEXT: fmulp
 ; CHECK-NEXT: ret
index 451cf72de8dd121092ddce1cebb429e71001779d..1136a3a50693e8b6a9f695cca549f8d0a91828ec 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, %st
+; X32-NEXT:    fadd %st(0), %st(0)
 ; X32-NEXT:    retl
 ;
 ; WIN64-LABEL: test_argRetf80:
 ; WIN64:       # %bb.0:
-; WIN64-NEXT:    fadd %st, %st
+; WIN64-NEXT:    fadd %st(0), %st(0)
 ; WIN64-NEXT:    retq
 ;
 ; LINUXOSX64-LABEL: test_argRetf80:
 ; LINUXOSX64:       # %bb.0:
-; LINUXOSX64-NEXT:    fadd %st, %st
+; LINUXOSX64-NEXT:    fadd %st(0), %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, %st
+; X32-NEXT:    fadd %st(0), %st(0)
 ; X32-NEXT:    calll _test_argRetf80
-; X32-NEXT:    fadd %st, %st
+; X32-NEXT:    fadd %st(0), %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, %st
+; WIN64-NEXT:    fadd %st(0), %st(0)
 ; WIN64-NEXT:    callq test_argRetf80
-; WIN64-NEXT:    fadd %st, %st
+; WIN64-NEXT:    fadd %st(0), %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, %st
+; LINUXOSX64-NEXT:    fadd %st(0), %st(0)
 ; LINUXOSX64-NEXT:    callq test_argRetf80
-; LINUXOSX64-NEXT:    fadd %st, %st
+; LINUXOSX64-NEXT:    fadd %st(0), %st(0)
 ; LINUXOSX64-NEXT:    popq %rsp
 ; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 8
 ; LINUXOSX64-NEXT:    retq
index 6bb014858d04859b187a43f230abb4a340e924e5..35dbb68117ba27e926029699ba21eaa45431b654 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
+; CHECK: fcmove %st({{[0-7]}}), %st(0)
 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 27b430eb66ab0a9d57096df6a61a0f2742034d89..d54ee48ea74d6820c75b437da9e78cea48ff627a 100644 (file)
@@ -404,7 +404,7 @@ define x86_fp80 @pow_f80(x86_fp80 %x) #0 {
 ; GNU:       # %bb.0:
 ; GNU-NEXT:    subq $40, %rsp
 ; GNU-NEXT:    fldt {{[0-9]+}}(%rsp)
-; GNU-NEXT:    fld %st
+; GNU-NEXT:    fld %st(0)
 ; GNU-NEXT:    fstpt {{[0-9]+}}(%rsp)
 ; GNU-NEXT:    fstpt (%rsp)
 ; GNU-NEXT:    callq __powl_finite
@@ -417,7 +417,7 @@ define x86_fp80 @pow_f80(x86_fp80 %x) #0 {
 ; WIN-NEXT:    subq $80, %rsp
 ; WIN-NEXT:    movq %rcx, %rsi
 ; WIN-NEXT:    fldt (%rdx)
-; WIN-NEXT:    fld %st
+; WIN-NEXT:    fld %st(0)
 ; WIN-NEXT:    fstpt {{[0-9]+}}(%rsp)
 ; WIN-NEXT:    fstpt {{[0-9]+}}(%rsp)
 ; WIN-NEXT:    leaq {{[0-9]+}}(%rsp), %rcx
@@ -435,7 +435,7 @@ define x86_fp80 @pow_f80(x86_fp80 %x) #0 {
 ; MAC:       ## %bb.0:
 ; MAC-NEXT:    subq $40, %rsp
 ; MAC-NEXT:    fldt {{[0-9]+}}(%rsp)
-; MAC-NEXT:    fld %st
+; MAC-NEXT:    fld %st(0)
 ; MAC-NEXT:    fstpt {{[0-9]+}}(%rsp)
 ; MAC-NEXT:    fstpt (%rsp)
 ; MAC-NEXT:    callq _powl
index a23e4b40fc6f1fa9b55edad915fa65c68f661bad..440756fca87aa9fce5e2cb729315b52ce786a07e 100644 (file)
@@ -60,7 +60,7 @@ define double @not_so_fast_mul_add(double %x) {
 ; X86-LABEL: not_so_fast_mul_add:
 ; X86:       # %bb.0:
 ; X86-NEXT:    fldl {{[0-9]+}}(%esp)
-; X86-NEXT:    fld %st
+; X86-NEXT:    fld %st(0)
 ; X86-NEXT:    fmull {{\.LCPI.*}}
 ; X86-NEXT:    fxch %st(1)
 ; X86-NEXT:    fmull {{\.LCPI.*}}
index dd88544736063e147ea56ee4c3f46291d5b3d05f..ab3d40ddcaa527bb038672b22918f396d5a8cbae 100644 (file)
@@ -460,7 +460,7 @@ define i64 @fptoui_i64_fp80(x86_fp80 %a0) nounwind {
 ; X86-NEXT:    fstp %st(1)
 ; X86-NEXT:    fldz
 ; X86-NEXT:  .LBB10_2:
-; X86-NEXT:    fstp %st
+; X86-NEXT:    fstp %st(0)
 ; X86-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X86-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -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
+; X64-X87-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st(0)
 ; X64-SSSE3-NEXT:    fstp %st(1)
 ; X64-SSSE3-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; X64-SSSE3-NEXT:    setbe %al
@@ -542,7 +542,7 @@ define i64 @fptoui_i64_fp80_ld(x86_fp80 *%a0) nounwind {
 ; X86-NEXT:    fstp %st(1)
 ; X86-NEXT:    fldz
 ; X86-NEXT:  .LBB11_2:
-; X86-NEXT:    fstp %st
+; X86-NEXT:    fstp %st(0)
 ; X86-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X86-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -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
+; X64-X87-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; X64-SSSE3-NEXT:    fcmovnbe %st(1), %st(0)
 ; X64-SSSE3-NEXT:    fstp %st(1)
 ; X64-SSSE3-NEXT:    fisttpll -{{[0-9]+}}(%rsp)
 ; X64-SSSE3-NEXT:    setbe %al
index 4dc119391b8b88d55dc2d3c9c20ebd5d0d5b52b2..71b9c3f7f7bbd9e7ea4203f4234a756cff8f16f6 100644 (file)
@@ -900,7 +900,7 @@ define fp128 @TestTruncCopysign(fp128 %x, i32 %n) nounwind {
 ; X32-NEXT:    fstp %st(1)
 ; X32-NEXT:    fldz
 ; X32-NEXT:  .LBB17_3: # %if.then
-; X32-NEXT:    fstp %st
+; X32-NEXT:    fstp %st(0)
 ; X32-NEXT:    subl $16, %esp
 ; X32-NEXT:    leal {{[0-9]+}}(%esp), %eax
 ; X32-NEXT:    movl %eax, (%esp)
index 0d0d3179471e863ce0fad4c1e04197335d148081..1c36d31c480b5837bf2e852a478efc41178dc41c 100644 (file)
@@ -75,23 +75,24 @@ 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 %st
+; CHECK-NEXT:    foo %st(0) %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    bar %st(1) %st
+; CHECK-NEXT:    bar %st(1) %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(1)
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    baz %st(1) %st
+; CHECK-NEXT:    baz %st(1) %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    baz %st
+; CHECK-NEXT:    baz %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
 ; Uses the same value twice, should have one fstp after the asm.
   tail call void asm sideeffect "foo $0 $1", "f,f,~{dirflag},~{fpsr},~{flags}"( double %A, double %A ) nounwind
@@ -114,12 +115,12 @@ define void @testPR4185() {
 ; CHECK-LABEL: testPR4185:
 ; CHECK:       ## %bb.0: ## %return
 ; CHECK-NEXT:    flds LCPI6_0
-; CHECK-NEXT:    fld %st
+; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 return:
@@ -137,10 +138,10 @@ define void @testPR4185b() {
 ; CHECK:       ## %bb.0: ## %return
 ; CHECK-NEXT:    flds LCPI7_0
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistl %st
+; CHECK-NEXT:    fistl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 return:
@@ -159,10 +160,10 @@ define void @testPR4459(x86_fp80 %a) {
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%esp)
 ; CHECK-NEXT:    fstpt (%esp)
 ; CHECK-NEXT:    calll _ceil
-; CHECK-NEXT:    fld %st
+; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstpt (%esp)
 ; CHECK-NEXT:    calll _test3
@@ -186,11 +187,11 @@ define void @testPR4484(x86_fp80 %a) {
 ; CHECK-NEXT:    subl $28, %esp
 ; CHECK-NEXT:    .cfi_def_cfa_offset 32
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%esp)
-; CHECK-NEXT:    fstpt {{[-0-9]+}}(%e{{[sb]}}p) ## 10-byte Folded Spill
+; CHECK-NEXT:    fstpt {{[0-9]+}}(%esp) ## 10-byte Folded Spill
 ; CHECK-NEXT:    calll _test1
-; CHECK-NEXT:    fldt {{[-0-9]+}}(%e{{[sb]}}p) ## 10-byte Folded Reload
+; CHECK-NEXT:    fldt {{[0-9]+}}(%esp) ## 10-byte Folded Reload
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstpt (%esp)
 ; CHECK-NEXT:    calll _test3
@@ -210,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, %st(1)
+; CHECK-NEXT:    fmul %st(0), %st(1)
 ; CHECK-NEXT:    flds LCPI10_1
-; CHECK-NEXT:    fmul %st, %st(2)
+; CHECK-NEXT:    fmul %st(0), %st(2)
 ; CHECK-NEXT:    fxch %st(2)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fldt (%eax)
 ; CHECK-NEXT:    fmulp %st(1)
 ; CHECK-NEXT:    fmulp %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fistpl %st
+; CHECK-NEXT:    fistpl %st(0)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
 entry:
@@ -253,8 +254,9 @@ define void @fist1(x86_fp80 %x, i32* %p) nounwind ssp {
 ; CHECK-NEXT:    ## InlineAsm Start
 ; CHECK-NEXT:    fistl (%eax)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   tail call void asm sideeffect "fistl $1", "{st},*m,~{memory},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, i32* %p) nounwind
   ret void
@@ -277,6 +279,7 @@ define x86_fp80 @fist2(x86_fp80 %x, i32* %p) nounwind ssp {
 ; CHECK-NEXT:    fistl (%eax)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   %0 = tail call x86_fp80 asm "fistl $2", "=&{st},0,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, i32* %p) nounwind
   ret x86_fp80 %0
@@ -296,8 +299,9 @@ define void @fucomp1(x86_fp80 %x, x86_fp80 %y) nounwind ssp {
 ; CHECK-NEXT:    ## InlineAsm Start
 ; CHECK-NEXT:    fucomp %st(1)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   tail call void asm sideeffect "fucomp $1", "{st},f,~{st},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind
   ret void
@@ -322,8 +326,9 @@ define void @fucomp2(x86_fp80 %x, x86_fp80 %y) nounwind ssp {
 ; CHECK-NEXT:    ## InlineAsm Start
 ; CHECK-NEXT:    fucomp %st(1)
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   tail call void asm sideeffect "fucomp $1", "{st},{st(1)},~{st},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind
   ret void
@@ -339,6 +344,7 @@ define void @fucomp3(x86_fp80 %x, x86_fp80 %y) nounwind ssp {
 ; CHECK-NEXT:    fucompp %st(1)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   tail call void asm sideeffect "fucompp $1", "{st},{st(1)},~{st},~{st(1)},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind
   ret void
@@ -355,6 +361,7 @@ define float @sincos1(float %x) nounwind ssp {
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(1)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   %0 = tail call %complex asm "sincos", "={st},={st(1)},0,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind
   %asmresult = extractvalue %complex %0, 0
@@ -371,6 +378,7 @@ define float @sincos2(float %x) nounwind ssp {
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(1)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   %0 = tail call %complex asm "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind
   %asmresult = extractvalue %complex %0, 1
@@ -386,18 +394,19 @@ define float @sincos3(float %x) nounwind ssp {
 ; CHECK-LABEL: sincos3:
 ; CHECK:       ## %bb.0: ## %entry
 ; CHECK-NEXT:    flds {{[0-9]+}}(%esp)
-; CHECK-NEXT:    fld %st
+; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    ## InlineAsm Start
 ; CHECK-NEXT:    sincos
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
 ; CHECK-NEXT:    sincos
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fstp %st(1)
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   %0 = tail call %complex asm sideeffect "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind
   %1 = tail call %complex asm sideeffect "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind
@@ -410,14 +419,15 @@ define i32 @PR10602() nounwind ssp {
 ; CHECK-LABEL: PR10602:
 ; CHECK:       ## %bb.0: ## %entry
 ; CHECK-NEXT:    flds LCPI19_0
-; CHECK-NEXT:    fld %st
+; CHECK-NEXT:    fld %st(0)
 ; CHECK-NEXT:    fxch %st(1)
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    fcomi %st(1), %st; pushf; pop %eax
+; CHECK-NEXT:    fcomi %st(1), %st(0); pushf; pop %eax
 ; CHECK-NEXT:    ## InlineAsm End
-; CHECK-NEXT:    fstp %st
-; CHECK-NEXT:    fstp %st
+; CHECK-NEXT:    fstp %st(0)
+; CHECK-NEXT:    fstp %st(0)
 ; CHECK-NEXT:    retl
+; CHECK-NEXT:    ## -- End function
 entry:
   %0 = tail call i32 asm "fcomi $2, $1; pushf; pop $0", "=r,{st},{st(1)},~{dirflag},~{fpsr},~{flags}"(double 2.000000e+00, double 2.000000e+00) nounwind
   ret i32 %0
@@ -495,7 +505,7 @@ define double @test_operand_rewrite() {
 ; CHECK-LABEL: test_operand_rewrite:
 ; CHECK:       ## %bb.0: ## %entry
 ; CHECK-NEXT:    ## InlineAsm Start
-; CHECK-NEXT:    foo %st, %st(1)
+; CHECK-NEXT:    foo %st(0), %st(1)
 ; CHECK-NEXT:    ## InlineAsm End
 ; CHECK-NEXT:    fsubp %st(1)
 ; CHECK-NEXT:    retl
index 3f9e2f953bae370aa707e3bff4499f9cc377bfb5..e0e90f81bc42c32460cbbbb7d8105cf3d88442a1 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
+; CHECK-NEXT:    fcmovne %st(1), %st(0)
 ; CHECK-NEXT:    fstp %st(1)
 ; CHECK-NEXT:    retq
   %1 = tail call x86_fp80 @copysignl(x86_fp80 0xK7FFF8000000000000000, x86_fp80 %a) nounwind readnone
index cd8a6f98ac03ef1e0c8f8bd40b647a218bd4a99e..63edae044f87cb5f9724677895e18d1def5c8306 100644 (file)
@@ -18,19 +18,19 @@ target triple = "x86_64-unknown-linux-gnu"
 ; KNL-NEXT:    testb $1, %al
 ; KNL-NEXT:    fld1
 ; KNL-NEXT:    fldz
-; KNL-NEXT:    fld %st
-; KNL-NEXT:    fcmovne %st(2), %st
+; KNL-NEXT:    fld %st(0)
+; KNL-NEXT:    fcmovne %st(2), %st(0)
 ; KNL-NEXT:    testb $1, %cl
 ; KNL-NEXT:    fld %st(1)
-; KNL-NEXT:    fcmovne %st(3), %st
+; KNL-NEXT:    fcmovne %st(3), %st(0)
 ; KNL-NEXT:    kmovw %k2, %eax
 ; KNL-NEXT:    testb $1, %al
 ; KNL-NEXT:    fld %st(2)
-; KNL-NEXT:    fcmovne %st(4), %st
+; KNL-NEXT:    fcmovne %st(4), %st(0)
 ; KNL-NEXT:    kmovw %k0, %eax
 ; KNL-NEXT:    testb $1, %al
 ; KNL-NEXT:    fxch %st(3)
-; KNL-NEXT:    fcmovne %st(4), %st
+; KNL-NEXT:    fcmovne %st(4), %st(0)
 ; KNL-NEXT:    fstp %st(4)
 ; KNL-NEXT:    fxch %st(3)
 ; KNL-NEXT:    fstpt (%rdi)
@@ -54,19 +54,19 @@ target triple = "x86_64-unknown-linux-gnu"
 ; SKX-NEXT:    testb $1, %al
 ; SKX-NEXT:    fld1
 ; SKX-NEXT:    fldz
-; SKX-NEXT:    fld %st
-; SKX-NEXT:    fcmovne %st(2), %st
+; SKX-NEXT:    fld %st(0)
+; SKX-NEXT:    fcmovne %st(2), %st(0)
 ; SKX-NEXT:    testb $1, %cl
 ; SKX-NEXT:    fld %st(1)
-; SKX-NEXT:    fcmovne %st(3), %st
+; SKX-NEXT:    fcmovne %st(3), %st(0)
 ; SKX-NEXT:    kmovd %k2, %eax
 ; SKX-NEXT:    testb $1, %al
 ; SKX-NEXT:    fld %st(2)
-; SKX-NEXT:    fcmovne %st(4), %st
+; SKX-NEXT:    fcmovne %st(4), %st(0)
 ; SKX-NEXT:    kmovd %k0, %eax
 ; SKX-NEXT:    testb $1, %al
 ; SKX-NEXT:    fxch %st(3)
-; SKX-NEXT:    fcmovne %st(4), %st
+; SKX-NEXT:    fcmovne %st(4), %st(0)
 ; SKX-NEXT:    fstp %st(4)
 ; SKX-NEXT:    fxch %st(3)
 ; SKX-NEXT:    fstpt (%rdi)
index fdd56f6636dae0809a8f855daa54a398500e9f6e..a709a4840e5303572373193cbc02519a6a73df3a 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, %st(1)
+; SSE2-NEXT:    fmul %st(0), %st(1)
 ; SSE2-NEXT:    fnstcw -2(%rbp)
 ; SSE2-NEXT:    movzwl -2(%rbp), %eax
 ; SSE2-NEXT:    movw $3199, -2(%rbp) ## imm = 0xC7F
@@ -70,7 +70,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; 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, %st(1)
+; 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)
@@ -93,14 +93,14 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; SSE3-NEXT:    movq %rsp, %rbp
 ; SSE3-NEXT:    .cfi_def_cfa_register %rbp
 ; SSE3-NEXT:    fldt 16(%rbp)
-; SSE3-NEXT:    fld %st
+; SSE3-NEXT:    fld %st(0)
 ; SSE3-NEXT:    fisttpl -4(%rbp)
 ; SSE3-NEXT:    cvtsi2sdl -4(%rbp), %xmm0
 ; SSE3-NEXT:    movsd %xmm0, -48(%rbp)
 ; SSE3-NEXT:    movsd %xmm0, -24(%rbp)
 ; SSE3-NEXT:    fsubl -24(%rbp)
 ; SSE3-NEXT:    flds {{.*}}(%rip)
-; SSE3-NEXT:    fmul %st, %st(1)
+; SSE3-NEXT:    fmul %st(0), %st(1)
 ; SSE3-NEXT:    fld %st(1)
 ; SSE3-NEXT:    fisttpl -8(%rbp)
 ; SSE3-NEXT:    xorps %xmm0, %xmm0
@@ -122,14 +122,14 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
 ; AVX-NEXT:    movq %rsp, %rbp
 ; AVX-NEXT:    .cfi_def_cfa_register %rbp
 ; AVX-NEXT:    fldt 16(%rbp)
-; AVX-NEXT:    fld %st
+; AVX-NEXT:    fld %st(0)
 ; AVX-NEXT:    fisttpl -4(%rbp)
 ; AVX-NEXT:    vcvtsi2sdl -4(%rbp), %xmm0, %xmm0
 ; AVX-NEXT:    vmovsd %xmm0, -48(%rbp)
 ; AVX-NEXT:    vmovsd %xmm0, -24(%rbp)
 ; AVX-NEXT:    fsubl -24(%rbp)
 ; AVX-NEXT:    flds {{.*}}(%rip)
-; AVX-NEXT:    fmul %st, %st(1)
+; AVX-NEXT:    fmul %st(0), %st(1)
 ; AVX-NEXT:    fld %st(1)
 ; AVX-NEXT:    fisttpl -8(%rbp)
 ; AVX-NEXT:    vcvtsi2sdl -8(%rbp), %xmm1, %xmm0
index bdfe22e835427ae1539b9674851833982f52aad5..69c37127d2ec64a80307a4936bb3e284e71b4096 100644 (file)
@@ -19,18 +19,18 @@ define void @test(<4 x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unn
 ; CHECK-NEXT:    negq %rcx
 ; CHECK-NEXT:    fld1
 ; CHECK-NEXT:    fldz
-; CHECK-NEXT:    fld %st
-; CHECK-NEXT:    fcmove %st(2), %st
+; CHECK-NEXT:    fld %st(0)
+; CHECK-NEXT:    fcmove %st(2), %st(0)
 ; CHECK-NEXT:    cmpq %rax, %rsi
 ; CHECK-NEXT:    fld %st(1)
-; CHECK-NEXT:    fcmove %st(3), %st
+; CHECK-NEXT:    fcmove %st(3), %st(0)
 ; CHECK-NEXT:    cmpq %rdx, %r9
 ; CHECK-NEXT:    fld %st(2)
-; CHECK-NEXT:    fcmove %st(4), %st
+; CHECK-NEXT:    fcmove %st(4), %st(0)
 ; CHECK-NEXT:    movl $1, %eax
 ; CHECK-NEXT:    cmpq %r8, %rax
 ; CHECK-NEXT:    fxch %st(3)
-; CHECK-NEXT:    fcmove %st(4), %st
+; CHECK-NEXT:    fcmove %st(4), %st(0)
 ; CHECK-NEXT:    fstp %st(4)
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp)
 ; CHECK-NEXT:    fstpt 70(%rdi)
@@ -40,15 +40,15 @@ define void @test(<4 x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unn
 ; CHECK-NEXT:    fstpt 30(%rdi)
 ; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp)
 ; CHECK-NEXT:    fstpt 10(%rdi)
-; CHECK-NEXT:    fadd %st, %st
+; CHECK-NEXT:    fadd %st(0), %st(0)
 ; CHECK-NEXT:    fstpt 60(%rdi)
 ; CHECK-NEXT:    fxch %st(1)
-; CHECK-NEXT:    fadd %st, %st
+; CHECK-NEXT:    fadd %st(0), %st(0)
 ; CHECK-NEXT:    fstpt 40(%rdi)
 ; CHECK-NEXT:    fxch %st(1)
-; CHECK-NEXT:    fadd %st, %st
+; CHECK-NEXT:    fadd %st(0), %st(0)
 ; CHECK-NEXT:    fstpt 20(%rdi)
-; CHECK-NEXT:    fadd %st, %st
+; CHECK-NEXT:    fadd %st(0), %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
index c63c1bc01e0f929a4984b27de762c63ff4abfcae..7ed61f8fdc7d24b73da97f075e5605ad13b588f8 100644 (file)
@@ -286,7 +286,7 @@ define i64 @f_to_u64(float %a) nounwind {
 ; X87_WIN-NEXT:    fstp %st(1)
 ; X87_WIN-NEXT:    fldz
 ; X87_WIN-NEXT:  LBB0_2:
-; X87_WIN-NEXT:    fstp %st
+; X87_WIN-NEXT:    fstp %st(0)
 ; X87_WIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_WIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_WIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -320,7 +320,7 @@ define i64 @f_to_u64(float %a) nounwind {
 ; X87_LIN-NEXT:    fstp %st(1)
 ; X87_LIN-NEXT:    fldz
 ; X87_LIN-NEXT:  .LBB0_2:
-; X87_LIN-NEXT:    fstp %st
+; X87_LIN-NEXT:    fstp %st(0)
 ; X87_LIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_LIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_LIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -774,7 +774,7 @@ define i64 @d_to_u64(double %a) nounwind {
 ; X87_WIN-NEXT:    fstp %st(1)
 ; X87_WIN-NEXT:    fldz
 ; X87_WIN-NEXT:  LBB2_2:
-; X87_WIN-NEXT:    fstp %st
+; X87_WIN-NEXT:    fstp %st(0)
 ; X87_WIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_WIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_WIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -808,7 +808,7 @@ define i64 @d_to_u64(double %a) nounwind {
 ; X87_LIN-NEXT:    fstp %st(1)
 ; X87_LIN-NEXT:    fldz
 ; X87_LIN-NEXT:  .LBB2_2:
-; X87_LIN-NEXT:    fstp %st
+; X87_LIN-NEXT:    fstp %st(0)
 ; X87_LIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_LIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_LIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -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
+; AVX512_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; AVX512_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; AVX512_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; AVX512_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE3_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE3_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE3_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE3_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE2_32_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE2_32_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE2_64_WIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; 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
+; SSE2_64_LIN-NEXT:    fcmovnbe %st(1), %st(0)
 ; SSE2_64_LIN-NEXT:    fstp %st(1)
 ; SSE2_64_LIN-NEXT:    fnstcw -{{[0-9]+}}(%rsp)
 ; SSE2_64_LIN-NEXT:    movzwl -{{[0-9]+}}(%rsp), %ecx
@@ -1305,7 +1305,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; X87_WIN-NEXT:    fstp %st(1)
 ; X87_WIN-NEXT:    fldz
 ; X87_WIN-NEXT:  LBB4_2:
-; X87_WIN-NEXT:    fstp %st
+; X87_WIN-NEXT:    fstp %st(0)
 ; X87_WIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_WIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_WIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
@@ -1339,7 +1339,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
 ; X87_LIN-NEXT:    fstp %st(1)
 ; X87_LIN-NEXT:    fldz
 ; X87_LIN-NEXT:  .LBB4_2:
-; X87_LIN-NEXT:    fstp %st
+; X87_LIN-NEXT:    fstp %st(0)
 ; X87_LIN-NEXT:    fnstcw {{[0-9]+}}(%esp)
 ; X87_LIN-NEXT:    movzwl {{[0-9]+}}(%esp), %eax
 ; X87_LIN-NEXT:    movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F
index db0865a42170f3770f657142d3dcd5e58e1ca053..947c95137206de701d5c01474b269cde991adb1a 100644 (file)
@@ -192,7 +192,7 @@ define signext i8 @test4(i8* nocapture %P, double %F) nounwind readonly {
 ; ATHLON-NEXT:    flds LCPI3_0
 ; ATHLON-NEXT:    xorl %ecx, %ecx
 ; ATHLON-NEXT:    fucompi %st(1)
-; ATHLON-NEXT:    fstp %st
+; ATHLON-NEXT:    fstp %st(0)
 ; ATHLON-NEXT:    seta %cl
 ; ATHLON-NEXT:    movsbl (%eax,%ecx,4), %eax
 ; ATHLON-NEXT:    retl
@@ -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, %st
+; ATHLON-NEXT:    fmul %st(0), %st(0)
 ; ATHLON-NEXT:    cmpl $0, {{[0-9]+}}(%esp)
 ; ATHLON-NEXT:    fxch %st(1)
-; ATHLON-NEXT:    fcmove %st(1), %st
+; ATHLON-NEXT:    fcmove %st(1), %st(0)
 ; ATHLON-NEXT:    fstp %st(1)
 ; ATHLON-NEXT:    flds 4(%eax)
-; ATHLON-NEXT:    fmul %st, %st
+; ATHLON-NEXT:    fmul %st(0), %st(0)
 ; ATHLON-NEXT:    fxch %st(2)
-; ATHLON-NEXT:    fcmove %st(2), %st
+; ATHLON-NEXT:    fcmove %st(2), %st(0)
 ; ATHLON-NEXT:    fstp %st(2)
 ; ATHLON-NEXT:    flds 8(%eax)
-; ATHLON-NEXT:    fmul %st, %st
+; ATHLON-NEXT:    fmul %st(0), %st(0)
 ; ATHLON-NEXT:    fxch %st(3)
-; ATHLON-NEXT:    fcmove %st(3), %st
+; ATHLON-NEXT:    fcmove %st(3), %st(0)
 ; ATHLON-NEXT:    fstp %st(3)
 ; ATHLON-NEXT:    flds 12(%eax)
-; ATHLON-NEXT:    fmul %st, %st
+; ATHLON-NEXT:    fmul %st(0), %st(0)
 ; ATHLON-NEXT:    fxch %st(4)
-; ATHLON-NEXT:    fcmove %st(4), %st
+; ATHLON-NEXT:    fcmove %st(4), %st(0)
 ; 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, %st
+; MCU-NEXT:    fmul %st(0), %st(0)
 ; MCU-NEXT:    fxch %st(1)
-; MCU-NEXT:    fmul %st, %st
+; MCU-NEXT:    fmul %st(0), %st(0)
 ; MCU-NEXT:    fxch %st(2)
-; MCU-NEXT:    fmul %st, %st
+; MCU-NEXT:    fmul %st(0), %st(0)
 ; MCU-NEXT:    fxch %st(3)
-; MCU-NEXT:    fmul %st, %st
+; MCU-NEXT:    fmul %st(0), %st(0)
 ; MCU-NEXT:    testl %eax, %eax
 ; MCU-NEXT:    flds (%edx)
 ; MCU-NEXT:    je .LBB5_2
@@ -346,7 +346,7 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
 ; MCU-NEXT:    fstp %st(1)
 ; MCU-NEXT:    fstp %st(3)
 ; MCU-NEXT:    fstp %st(1)
-; MCU-NEXT:    fstp %st
+; MCU-NEXT:    fstp %st(0)
 ; MCU-NEXT:    flds (%esp) # 4-byte Folded Reload
 ; MCU-NEXT:    fldz
 ; MCU-NEXT:    fldz
@@ -360,7 +360,7 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
 ; MCU-NEXT:    fxch %st(3)
 ; MCU-NEXT:    fxch %st(2)
 ; MCU-NEXT:  .LBB5_2:
-; MCU-NEXT:    fstp %st
+; MCU-NEXT:    fstp %st(0)
 ; MCU-NEXT:    fstp %st(5)
 ; MCU-NEXT:    fstp %st(3)
 ; MCU-NEXT:    fxch %st(2)
@@ -1294,10 +1294,10 @@ define void @test19() {
 ; ATHLON-NEXT:    .p2align 4, 0x90
 ; ATHLON-NEXT:  LBB23_4: ## %CF242
 ; ATHLON-NEXT:    ## =>This Inner Loop Header: Depth=1
-; ATHLON-NEXT:    fucomi %st
+; ATHLON-NEXT:    fucomi %st(0)
 ; ATHLON-NEXT:    jp LBB23_4
 ; ATHLON-NEXT:  ## %bb.5: ## %CF244
-; ATHLON-NEXT:    fstp %st
+; ATHLON-NEXT:    fstp %st(0)
 ; ATHLON-NEXT:    retl
 ;
 ; MCU-LABEL: test19:
@@ -1318,13 +1318,13 @@ define void @test19() {
 ; MCU-NEXT:  .LBB23_4: # %CF242
 ; MCU-NEXT:    # =>This Inner Loop Header: Depth=1
 ; MCU-NEXT:    cmpl %eax, %ecx
-; MCU-NEXT:    fucom %st
+; MCU-NEXT:    fucom %st(0)
 ; MCU-NEXT:    fnstsw %ax
 ; MCU-NEXT:    # kill: def $ah killed $ah killed $ax
 ; MCU-NEXT:    sahf
 ; MCU-NEXT:    jp .LBB23_4
 ; MCU-NEXT:  # %bb.5: # %CF244
-; MCU-NEXT:    fstp %st
+; MCU-NEXT:    fstp %st(0)
 ; MCU-NEXT:    retl
 BB:
   br label %CF
index f00dda15d328b489f2f1e4e1d730afc494e96373..2b4af2e5830d4866a2204a87b046c01e8cf00662 100644 (file)
@@ -495,7 +495,7 @@ define void @t16() nounwind ssp {
 ; X86:       # %bb.0: # %entry
 ; X86-NEXT:    subl $12, %esp
 ; X86-NEXT:    calll bar4
-; X86-NEXT:    fstp %st
+; X86-NEXT:    fstp %st(0)
 ; X86-NEXT:    addl $12, %esp
 ; X86-NEXT:    retl
 ;
@@ -541,7 +541,7 @@ define void @t18() nounwind ssp {
 ; X86:       # %bb.0: # %entry
 ; X86-NEXT:    subl $12, %esp
 ; X86-NEXT:    calll bar6
-; X86-NEXT:    fstp %st
+; X86-NEXT:    fstp %st(0)
 ; X86-NEXT:    addl $12, %esp
 ; X86-NEXT:    retl
 ;
index 6a438283bd7dcdb4db414a847e9b2546a2d3bf44..09452be92c2ad450834c7782a1b51bf9f23a10b1 100644 (file)
@@ -180,7 +180,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fadd %st(0), %st(1)
 ; GENERIC-NEXT:    fadd %st(2)
 ; GENERIC-NEXT:    fadds (%ecx)
 ; GENERIC-NEXT:    faddl (%eax)
@@ -192,7 +192,7 @@ 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, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fadd %st(0), %st(1) # sched: [5:5.00]
 ; ATOM-NEXT:    fadd %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fadds (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    faddl (%eax) # sched: [5:5.00]
@@ -204,7 +204,7 @@ 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, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; SLM-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fadds (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    faddl (%eax) # sched: [6:1.00]
@@ -216,7 +216,7 @@ 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, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; SANDY-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -228,7 +228,7 @@ 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, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; HASWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -240,7 +240,7 @@ 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, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fadds (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    faddl (%eax) # sched: [9:1.00]
@@ -252,7 +252,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -264,7 +264,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; SKX-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -276,7 +276,7 @@ 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, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fadd %st(0), %st(1) # sched: [5:1.00]
 ; BDVER2-NEXT:    fadd %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -288,7 +288,7 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fadd %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; BTVER2-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fadds (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    faddl (%eax) # sched: [8:1.00]
@@ -300,7 +300,7 @@ 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, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fadd %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fadds (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    faddl (%eax) # sched: [10:1.00]
@@ -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
-; 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:    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:    #NO_APP
 ; GENERIC-NEXT:    retl
 ;
 ; ATOM-LABEL: test_fcmov:
 ; ATOM:       # %bb.0:
 ; ATOM-NEXT:    #APP
-; 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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 # 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:    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:    #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
@@ -1504,7 +1504,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fdiv %st(0), %st(1)
 ; GENERIC-NEXT:    fdiv %st(2)
 ; GENERIC-NEXT:    fdivs (%ecx)
 ; GENERIC-NEXT:    fdivl (%eax)
@@ -1516,7 +1516,7 @@ 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, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdiv %st(0), %st(1) # sched: [34:17.00]
 ; ATOM-NEXT:    fdiv %st(2) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivl (%eax) # sched: [34:17.00]
@@ -1528,7 +1528,7 @@ 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, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdiv %st(0), %st(1) # sched: [19:17.00]
 ; SLM-NEXT:    fdiv %st(2) # sched: [19:17.00]
 ; SLM-NEXT:    fdivs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fdivl (%eax) # sched: [22:17.00]
@@ -1540,7 +1540,7 @@ 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, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdiv %st(0), %st(1) # sched: [14:14.00]
 ; SANDY-NEXT:    fdiv %st(2) # sched: [14:14.00]
 ; SANDY-NEXT:    fdivs (%ecx) # sched: [31:1.00]
 ; SANDY-NEXT:    fdivl (%eax) # sched: [31:1.00]
@@ -1552,7 +1552,7 @@ 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, %st(1) # sched: [24:1.00]
+; HASWELL-NEXT:    fdiv %st(0), %st(1) # sched: [24:1.00]
 ; HASWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
 ; HASWELL-NEXT:    fdivs (%ecx) # sched: [31:1.00]
 ; HASWELL-NEXT:    fdivl (%eax) # sched: [31:1.00]
@@ -1564,7 +1564,7 @@ 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, %st(1) # sched: [15:1.00]
+; BROADWELL-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
 ; BROADWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
 ; BROADWELL-NEXT:    fdivs (%ecx) # sched: [21:1.00]
 ; BROADWELL-NEXT:    fdivl (%eax) # sched: [21:1.00]
@@ -1576,7 +1576,7 @@ 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, %st(1) # sched: [15:1.00]
+; SKYLAKE-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
 ; SKYLAKE-NEXT:    fdiv %st(2) # sched: [20:1.00]
 ; SKYLAKE-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; SKYLAKE-NEXT:    fdivl (%eax) # sched: [22:1.00]
@@ -1588,7 +1588,7 @@ 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, %st(1) # sched: [15:1.00]
+; SKX-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
 ; SKX-NEXT:    fdiv %st(2) # sched: [20:1.00]
 ; SKX-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; SKX-NEXT:    fdivl (%eax) # sched: [22:1.00]
@@ -1600,7 +1600,7 @@ 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, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdiv %st(0), %st(1) # sched: [9:9.50]
 ; BDVER2-NEXT:    fdiv %st(2) # sched: [9:9.50]
 ; BDVER2-NEXT:    fdivs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fdivl (%eax) # sched: [14:9.50]
@@ -1612,7 +1612,7 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdiv %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdiv %st(0), %st(1) # sched: [19:19.00]
 ; BTVER2-NEXT:    fdiv %st(2) # sched: [19:19.00]
 ; BTVER2-NEXT:    fdivs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fdivl (%eax) # sched: [24:19.00]
@@ -1624,7 +1624,7 @@ 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, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdiv %st(2) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdivs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fdivl (%eax) # sched: [22:1.00]
@@ -1776,7 +1776,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fdivr %st(0), %st(1)
 ; GENERIC-NEXT:    fdivr %st(2)
 ; GENERIC-NEXT:    fdivrs (%ecx)
 ; GENERIC-NEXT:    fdivrl (%eax)
@@ -1788,7 +1788,7 @@ 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, %st(1) # sched: [34:17.00]
+; ATOM-NEXT:    fdivr %st(0), %st(1) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivr %st(2) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivrs (%ecx) # sched: [34:17.00]
 ; ATOM-NEXT:    fdivrl (%eax) # sched: [34:17.00]
@@ -1800,7 +1800,7 @@ 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, %st(1) # sched: [19:17.00]
+; SLM-NEXT:    fdivr %st(0), %st(1) # sched: [19:17.00]
 ; SLM-NEXT:    fdivr %st(2) # sched: [19:17.00]
 ; SLM-NEXT:    fdivrs (%ecx) # sched: [22:17.00]
 ; SLM-NEXT:    fdivrl (%eax) # sched: [22:17.00]
@@ -1812,7 +1812,7 @@ 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, %st(1) # sched: [14:14.00]
+; SANDY-NEXT:    fdivr %st(0), %st(1) # sched: [14:14.00]
 ; SANDY-NEXT:    fdivr %st(2) # sched: [14:14.00]
 ; SANDY-NEXT:    fdivrs (%ecx) # sched: [31:1.00]
 ; SANDY-NEXT:    fdivrl (%eax) # sched: [31:1.00]
@@ -1824,7 +1824,7 @@ 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, %st(1) # sched: [20:1.00]
+; HASWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
 ; HASWELL-NEXT:    fdivr %st(2) # sched: [24:1.00]
 ; HASWELL-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; HASWELL-NEXT:    fdivrl (%eax) # sched: [27:1.00]
@@ -1836,7 +1836,7 @@ 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, %st(1) # sched: [20:1.00]
+; BROADWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
 ; BROADWELL-NEXT:    fdivr %st(2) # sched: [15:1.00]
 ; BROADWELL-NEXT:    fdivrs (%ecx) # sched: [26:1.00]
 ; BROADWELL-NEXT:    fdivrl (%eax) # sched: [26:1.00]
@@ -1848,7 +1848,7 @@ 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, %st(1) # sched: [20:1.00]
+; SKYLAKE-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
 ; SKYLAKE-NEXT:    fdivr %st(2) # sched: [15:1.00]
 ; SKYLAKE-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; SKYLAKE-NEXT:    fdivrl (%eax) # sched: [27:1.00]
@@ -1860,7 +1860,7 @@ 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, %st(1) # sched: [20:1.00]
+; SKX-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
 ; SKX-NEXT:    fdivr %st(2) # sched: [15:1.00]
 ; SKX-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
 ; SKX-NEXT:    fdivrl (%eax) # sched: [27:1.00]
@@ -1872,7 +1872,7 @@ 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, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT:    fdivr %st(0), %st(1) # sched: [9:9.50]
 ; BDVER2-NEXT:    fdivr %st(2) # sched: [9:9.50]
 ; BDVER2-NEXT:    fdivrs (%ecx) # sched: [14:9.50]
 ; BDVER2-NEXT:    fdivrl (%eax) # sched: [14:9.50]
@@ -1884,7 +1884,7 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fdivr %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT:    fdivr %st(0), %st(1) # sched: [19:19.00]
 ; BTVER2-NEXT:    fdivr %st(2) # sched: [19:19.00]
 ; BTVER2-NEXT:    fdivrs (%ecx) # sched: [24:19.00]
 ; BTVER2-NEXT:    fdivrl (%eax) # sched: [24:19.00]
@@ -1896,7 +1896,7 @@ 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, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT:    fdivr %st(0), %st(1) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdivr %st(2) # sched: [15:1.00]
 ; ZNVER1-NEXT:    fdivrs (%ecx) # sched: [22:1.00]
 ; ZNVER1-NEXT:    fdivrl (%eax) # sched: [22:1.00]
@@ -2046,77 +2046,77 @@ define void @test_ffree() optsize {
 ; GENERIC-LABEL: test_ffree:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    ffree %st
+; GENERIC-NEXT:    ffree %st(0)
 ; GENERIC-NEXT:    #NO_APP
 ; GENERIC-NEXT:    retl
 ;
 ; ATOM-LABEL: test_ffree:
 ; ATOM:       # %bb.0:
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    ffree %st # sched: [1:0.50]
+; ATOM-NEXT:    ffree %st(0) # sched: [1:0.50]
 ; ATOM-NEXT:    #NO_APP
 ; ATOM-NEXT:    retl # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_ffree:
 ; SLM:       # %bb.0:
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    ffree %st # sched: [100:1.00]
+; SLM-NEXT:    ffree %st(0) # sched: [100:1.00]
 ; SLM-NEXT:    #NO_APP
 ; SLM-NEXT:    retl # sched: [4:1.00]
 ;
 ; SANDY-LABEL: test_ffree:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    ffree %st # sched: [1:1.00]
+; SANDY-NEXT:    ffree %st(0) # sched: [1:1.00]
 ; SANDY-NEXT:    #NO_APP
 ; SANDY-NEXT:    retl # sched: [6:1.00]
 ;
 ; HASWELL-LABEL: test_ffree:
 ; HASWELL:       # %bb.0:
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    ffree %st # sched: [1:0.50]
+; HASWELL-NEXT:    ffree %st(0) # sched: [1:0.50]
 ; HASWELL-NEXT:    #NO_APP
 ; HASWELL-NEXT:    retl # sched: [7:1.00]
 ;
 ; BROADWELL-LABEL: test_ffree:
 ; BROADWELL:       # %bb.0:
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    ffree %st # sched: [100:0.25]
+; BROADWELL-NEXT:    ffree %st(0) # sched: [100:0.25]
 ; BROADWELL-NEXT:    #NO_APP
 ; BROADWELL-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKYLAKE-LABEL: test_ffree:
 ; SKYLAKE:       # %bb.0:
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    ffree %st # sched: [100:0.25]
+; SKYLAKE-NEXT:    ffree %st(0) # sched: [100:0.25]
 ; SKYLAKE-NEXT:    #NO_APP
 ; SKYLAKE-NEXT:    retl # sched: [6:0.50]
 ;
 ; SKX-LABEL: test_ffree:
 ; SKX:       # %bb.0:
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    ffree %st # sched: [100:0.25]
+; SKX-NEXT:    ffree %st(0) # sched: [100:0.25]
 ; SKX-NEXT:    #NO_APP
 ; SKX-NEXT:    retl # sched: [6:0.50]
 ;
 ; BDVER2-LABEL: test_ffree:
 ; BDVER2:       # %bb.0:
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    ffree %st # sched: [100:0.50]
+; BDVER2-NEXT:    ffree %st(0) # sched: [100:0.50]
 ; BDVER2-NEXT:    #NO_APP
 ; BDVER2-NEXT:    retl # sched: [5:1.00]
 ;
 ; BTVER2-LABEL: test_ffree:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    ffree %st # sched: [100:0.50]
+; BTVER2-NEXT:    ffree %st(0) # sched: [100:0.50]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retl # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_ffree:
 ; ZNVER1:       # %bb.0:
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    ffree %st # sched: [11:1.00]
+; ZNVER1-NEXT:    ffree %st(0) # sched: [11:1.00]
 ; ZNVER1-NEXT:    #NO_APP
 ; ZNVER1-NEXT:    retl # sched: [1:0.50]
   tail call void asm sideeffect "ffree %st(0)", ""() nounwind
@@ -2847,7 +2847,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fld %st
+; GENERIC-NEXT:    fld %st(0)
 ; GENERIC-NEXT:    flds (%edx)
 ; GENERIC-NEXT:    fldl (%ecx)
 ; GENERIC-NEXT:    fldt (%eax)
@@ -2860,7 +2860,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fld %st # sched: [1:1.00]
+; ATOM-NEXT:    fld %st(0) # sched: [1:1.00]
 ; ATOM-NEXT:    flds (%edx) # sched: [1:1.00]
 ; ATOM-NEXT:    fldl (%ecx) # sched: [1:1.00]
 ; ATOM-NEXT:    fldt (%eax) # sched: [4:2.00]
@@ -2873,7 +2873,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fld %st # sched: [1:0.50]
+; SLM-NEXT:    fld %st(0) # sched: [1:0.50]
 ; SLM-NEXT:    flds (%edx) # sched: [3:1.00]
 ; SLM-NEXT:    fldl (%ecx) # sched: [3:1.00]
 ; SLM-NEXT:    fldt (%eax) # sched: [3:1.00]
@@ -2886,7 +2886,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fld %st # sched: [1:1.00]
+; SANDY-NEXT:    fld %st(0) # sched: [1:1.00]
 ; SANDY-NEXT:    flds (%edx) # sched: [9:1.00]
 ; SANDY-NEXT:    fldl (%ecx) # sched: [9:1.00]
 ; SANDY-NEXT:    fldt (%eax) # sched: [9:1.00]
@@ -2899,7 +2899,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fld %st # sched: [1:0.50]
+; HASWELL-NEXT:    fld %st(0) # sched: [1:0.50]
 ; HASWELL-NEXT:    flds (%edx) # sched: [7:0.50]
 ; HASWELL-NEXT:    fldl (%ecx) # sched: [7:0.50]
 ; HASWELL-NEXT:    fldt (%eax) # sched: [7:0.50]
@@ -2912,7 +2912,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fld %st # sched: [1:0.25]
+; BROADWELL-NEXT:    fld %st(0) # sched: [1:0.25]
 ; BROADWELL-NEXT:    flds (%edx) # sched: [6:0.50]
 ; BROADWELL-NEXT:    fldl (%ecx) # sched: [6:0.50]
 ; BROADWELL-NEXT:    fldt (%eax) # sched: [6:0.50]
@@ -2925,7 +2925,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fld %st # sched: [1:0.25]
+; SKYLAKE-NEXT:    fld %st(0) # sched: [1:0.25]
 ; SKYLAKE-NEXT:    flds (%edx) # sched: [7:0.50]
 ; SKYLAKE-NEXT:    fldl (%ecx) # sched: [7:0.50]
 ; SKYLAKE-NEXT:    fldt (%eax) # sched: [7:0.50]
@@ -2938,7 +2938,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fld %st # sched: [1:0.25]
+; SKX-NEXT:    fld %st(0) # sched: [1:0.25]
 ; SKX-NEXT:    flds (%edx) # sched: [7:0.50]
 ; SKX-NEXT:    fldl (%ecx) # sched: [7:0.50]
 ; SKX-NEXT:    fldt (%eax) # sched: [7:0.50]
@@ -2951,7 +2951,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fld %st # sched: [1:0.50]
+; BDVER2-NEXT:    fld %st(0) # sched: [1:0.50]
 ; BDVER2-NEXT:    flds (%edx) # sched: [5:0.50]
 ; BDVER2-NEXT:    fldl (%ecx) # sched: [5:0.50]
 ; BDVER2-NEXT:    fldt (%eax) # sched: [5:0.50]
@@ -2964,7 +2964,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fld %st # sched: [1:0.50]
+; BTVER2-NEXT:    fld %st(0) # sched: [1:0.50]
 ; BTVER2-NEXT:    flds (%edx) # sched: [3:1.00]
 ; BTVER2-NEXT:    fldl (%ecx) # sched: [3:1.00]
 ; BTVER2-NEXT:    fldt (%eax) # sched: [3:1.00]
@@ -2977,7 +2977,7 @@ define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fld %st # sched: [1:0.50]
+; ZNVER1-NEXT:    fld %st(0) # sched: [1:0.50]
 ; ZNVER1-NEXT:    flds (%edx) # sched: [8:0.50]
 ; ZNVER1-NEXT:    fldl (%ecx) # sched: [8:0.50]
 ; ZNVER1-NEXT:    fldt (%eax) # sched: [1:0.50]
@@ -3243,7 +3243,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fmul %st(0), %st(1)
 ; GENERIC-NEXT:    fmul %st(2)
 ; GENERIC-NEXT:    fmuls (%ecx)
 ; GENERIC-NEXT:    fmull (%eax)
@@ -3255,7 +3255,7 @@ 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, %st(1) # sched: [4:4.00]
+; ATOM-NEXT:    fmul %st(0), %st(1) # sched: [4:4.00]
 ; ATOM-NEXT:    fmul %st(2) # sched: [4:4.00]
 ; ATOM-NEXT:    fmuls (%ecx) # sched: [4:4.00]
 ; ATOM-NEXT:    fmull (%eax) # sched: [4:4.00]
@@ -3267,7 +3267,7 @@ 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, %st(1) # sched: [5:2.00]
+; SLM-NEXT:    fmul %st(0), %st(1) # sched: [5:2.00]
 ; SLM-NEXT:    fmul %st(2) # sched: [5:2.00]
 ; SLM-NEXT:    fmuls (%ecx) # sched: [8:2.00]
 ; SLM-NEXT:    fmull (%eax) # sched: [8:2.00]
@@ -3279,7 +3279,7 @@ 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, %st(1) # sched: [5:1.00]
+; SANDY-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
 ; SANDY-NEXT:    fmul %st(2) # sched: [5:1.00]
 ; SANDY-NEXT:    fmuls (%ecx) # sched: [12:1.00]
 ; SANDY-NEXT:    fmull (%eax) # sched: [12:1.00]
@@ -3291,7 +3291,7 @@ 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, %st(1) # sched: [5:1.00]
+; HASWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
 ; HASWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
 ; HASWELL-NEXT:    fmuls (%ecx) # sched: [12:1.00]
 ; HASWELL-NEXT:    fmull (%eax) # sched: [12:1.00]
@@ -3303,7 +3303,7 @@ 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, %st(1) # sched: [5:1.00]
+; BROADWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
 ; BROADWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
 ; BROADWELL-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; BROADWELL-NEXT:    fmull (%eax) # sched: [11:1.00]
@@ -3315,7 +3315,7 @@ 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, %st(1) # sched: [4:1.00]
+; SKYLAKE-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
 ; SKYLAKE-NEXT:    fmul %st(2) # sched: [4:1.00]
 ; SKYLAKE-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; SKYLAKE-NEXT:    fmull (%eax) # sched: [11:1.00]
@@ -3327,7 +3327,7 @@ 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, %st(1) # sched: [4:1.00]
+; SKX-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
 ; SKX-NEXT:    fmul %st(2) # sched: [4:1.00]
 ; SKX-NEXT:    fmuls (%ecx) # sched: [11:1.00]
 ; SKX-NEXT:    fmull (%eax) # sched: [11:1.00]
@@ -3339,7 +3339,7 @@ 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, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
 ; BDVER2-NEXT:    fmul %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fmuls (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fmull (%eax) # sched: [10:1.00]
@@ -3351,7 +3351,7 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fmul %st, %st(1) # sched: [2:1.00]
+; BTVER2-NEXT:    fmul %st(0), %st(1) # sched: [2:1.00]
 ; BTVER2-NEXT:    fmul %st(2) # sched: [2:1.00]
 ; BTVER2-NEXT:    fmuls (%ecx) # sched: [7:1.00]
 ; BTVER2-NEXT:    fmull (%eax) # sched: [7:1.00]
@@ -3363,7 +3363,7 @@ 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, %st(1) # sched: [3:0.50]
+; ZNVER1-NEXT:    fmul %st(0), %st(1) # sched: [3:0.50]
 ; ZNVER1-NEXT:    fmul %st(2) # sched: [3:0.50]
 ; ZNVER1-NEXT:    fmuls (%ecx) # sched: [10:0.50]
 ; ZNVER1-NEXT:    fmull (%eax) # sched: [10:0.50]
@@ -4543,10 +4543,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
 ; GENERIC-NEXT:    #APP
-; GENERIC-NEXT:    fst %st
+; GENERIC-NEXT:    fst %st(0)
 ; GENERIC-NEXT:    fsts (%edx)
 ; GENERIC-NEXT:    fstl (%ecx)
-; GENERIC-NEXT:    fstp %st
+; GENERIC-NEXT:    fstp %st(0)
 ; GENERIC-NEXT:    fstpl (%edx)
 ; GENERIC-NEXT:    fstpl (%ecx)
 ; GENERIC-NEXT:    fstpt (%eax)
@@ -4559,10 +4559,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
 ; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
 ; ATOM-NEXT:    #APP
-; ATOM-NEXT:    fst %st # sched: [2:1.00]
+; ATOM-NEXT:    fst %st(0) # sched: [2:1.00]
 ; ATOM-NEXT:    fsts (%edx) # sched: [2:1.00]
 ; ATOM-NEXT:    fstl (%ecx) # sched: [2:1.00]
-; ATOM-NEXT:    fstp %st # sched: [2:1.00]
+; ATOM-NEXT:    fstp %st(0) # sched: [2:1.00]
 ; ATOM-NEXT:    fstpl (%edx) # sched: [2:1.00]
 ; ATOM-NEXT:    fstpl (%ecx) # sched: [2:1.00]
 ; ATOM-NEXT:    fstpt (%eax) # sched: [5:2.50]
@@ -4575,10 +4575,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
 ; SLM-NEXT:    #APP
-; SLM-NEXT:    fst %st # sched: [1:0.50]
+; SLM-NEXT:    fst %st(0) # sched: [1:0.50]
 ; SLM-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; SLM-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; SLM-NEXT:    fstp %st # sched: [1:0.50]
+; SLM-NEXT:    fstp %st(0) # sched: [1:0.50]
 ; SLM-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; SLM-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; SLM-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4591,10 +4591,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SANDY-NEXT:    #APP
-; SANDY-NEXT:    fst %st # sched: [1:1.00]
+; SANDY-NEXT:    fst %st(0) # sched: [1:1.00]
 ; SANDY-NEXT:    fsts (%edx) # sched: [6:1.00]
 ; SANDY-NEXT:    fstl (%ecx) # sched: [6:1.00]
-; SANDY-NEXT:    fstp %st # sched: [1:1.00]
+; SANDY-NEXT:    fstp %st(0) # sched: [1:1.00]
 ; SANDY-NEXT:    fstpl (%edx) # sched: [6:1.00]
 ; SANDY-NEXT:    fstpl (%ecx) # sched: [6:1.00]
 ; SANDY-NEXT:    fstpt (%eax) # sched: [6:1.00]
@@ -4607,10 +4607,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; HASWELL-NEXT:    #APP
-; HASWELL-NEXT:    fst %st # sched: [1:0.50]
+; HASWELL-NEXT:    fst %st(0) # sched: [1:0.50]
 ; HASWELL-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; HASWELL-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; HASWELL-NEXT:    fstp %st # sched: [1:0.50]
+; HASWELL-NEXT:    fstp %st(0) # sched: [1:0.50]
 ; HASWELL-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; HASWELL-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; HASWELL-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4623,10 +4623,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; BROADWELL-NEXT:    #APP
-; BROADWELL-NEXT:    fst %st # sched: [1:0.25]
+; BROADWELL-NEXT:    fst %st(0) # sched: [1:0.25]
 ; BROADWELL-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; BROADWELL-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; BROADWELL-NEXT:    fstp %st # sched: [1:0.25]
+; BROADWELL-NEXT:    fstp %st(0) # sched: [1:0.25]
 ; BROADWELL-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; BROADWELL-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; BROADWELL-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4639,10 +4639,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SKYLAKE-NEXT:    #APP
-; SKYLAKE-NEXT:    fst %st # sched: [1:0.25]
+; SKYLAKE-NEXT:    fst %st(0) # sched: [1:0.25]
 ; SKYLAKE-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; SKYLAKE-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; SKYLAKE-NEXT:    fstp %st # sched: [1:0.25]
+; SKYLAKE-NEXT:    fstp %st(0) # sched: [1:0.25]
 ; SKYLAKE-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; SKYLAKE-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; SKYLAKE-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4655,10 +4655,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; SKX-NEXT:    #APP
-; SKX-NEXT:    fst %st # sched: [1:0.25]
+; SKX-NEXT:    fst %st(0) # sched: [1:0.25]
 ; SKX-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; SKX-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; SKX-NEXT:    fstp %st # sched: [1:0.25]
+; SKX-NEXT:    fstp %st(0) # sched: [1:0.25]
 ; SKX-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; SKX-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; SKX-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4671,10 +4671,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
 ; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
 ; BDVER2-NEXT:    #APP
-; BDVER2-NEXT:    fst %st # sched: [1:0.50]
+; BDVER2-NEXT:    fst %st(0) # sched: [1:0.50]
 ; BDVER2-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; BDVER2-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; BDVER2-NEXT:    fstp %st # sched: [1:0.50]
+; BDVER2-NEXT:    fstp %st(0) # sched: [1:0.50]
 ; BDVER2-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; BDVER2-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; BDVER2-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4687,10 +4687,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fst %st # sched: [1:0.50]
+; BTVER2-NEXT:    fst %st(0) # sched: [1:0.50]
 ; BTVER2-NEXT:    fsts (%edx) # sched: [1:1.00]
 ; BTVER2-NEXT:    fstl (%ecx) # sched: [1:1.00]
-; BTVER2-NEXT:    fstp %st # sched: [1:0.50]
+; BTVER2-NEXT:    fstp %st(0) # sched: [1:0.50]
 ; BTVER2-NEXT:    fstpl (%edx) # sched: [1:1.00]
 ; BTVER2-NEXT:    fstpl (%ecx) # sched: [1:1.00]
 ; BTVER2-NEXT:    fstpt (%eax) # sched: [1:1.00]
@@ -4703,10 +4703,10 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
 ; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
 ; ZNVER1-NEXT:    #APP
-; ZNVER1-NEXT:    fst %st # sched: [5:0.50]
+; ZNVER1-NEXT:    fst %st(0) # sched: [5:0.50]
 ; ZNVER1-NEXT:    fsts (%edx) # sched: [1:0.50]
 ; ZNVER1-NEXT:    fstl (%ecx) # sched: [1:0.50]
-; ZNVER1-NEXT:    fstp %st # sched: [5:0.50]
+; ZNVER1-NEXT:    fstp %st(0) # sched: [5:0.50]
 ; ZNVER1-NEXT:    fstpl (%edx) # sched: [1:0.50]
 ; ZNVER1-NEXT:    fstpl (%ecx) # sched: [1:0.50]
 ; ZNVER1-NEXT:    fstpt (%eax) # sched: [5:0.50]
@@ -4983,7 +4983,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fsub %st(0), %st(1)
 ; GENERIC-NEXT:    fsub %st(2)
 ; GENERIC-NEXT:    fsubs (%ecx)
 ; GENERIC-NEXT:    fsubl (%eax)
@@ -4995,7 +4995,7 @@ 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, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsub %st(0), %st(1) # sched: [5:5.00]
 ; ATOM-NEXT:    fsub %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubl (%eax) # sched: [5:5.00]
@@ -5007,7 +5007,7 @@ 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, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; SLM-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fsubs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fsubl (%eax) # sched: [6:1.00]
@@ -5019,7 +5019,7 @@ 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, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; SANDY-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5031,7 +5031,7 @@ 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, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; HASWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5043,7 +5043,7 @@ 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, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsubs (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    fsubl (%eax) # sched: [9:1.00]
@@ -5055,7 +5055,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5067,7 +5067,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; SKX-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5079,7 +5079,7 @@ 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, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsub %st(0), %st(1) # sched: [5:1.00]
 ; BDVER2-NEXT:    fsub %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5091,7 +5091,7 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsub %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; BTVER2-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fsubs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fsubl (%eax) # sched: [8:1.00]
@@ -5103,7 +5103,7 @@ 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, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsub %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsubs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fsubl (%eax) # sched: [10:1.00]
@@ -5255,7 +5255,7 @@ 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, %st(1)
+; GENERIC-NEXT:    fsubr %st(0), %st(1)
 ; GENERIC-NEXT:    fsubr %st(2)
 ; GENERIC-NEXT:    fsubrs (%ecx)
 ; GENERIC-NEXT:    fsubrl (%eax)
@@ -5267,7 +5267,7 @@ 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, %st(1) # sched: [5:5.00]
+; ATOM-NEXT:    fsubr %st(0), %st(1) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubr %st(2) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubrs (%ecx) # sched: [5:5.00]
 ; ATOM-NEXT:    fsubrl (%eax) # sched: [5:5.00]
@@ -5279,7 +5279,7 @@ 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, %st(1) # sched: [3:1.00]
+; SLM-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; SLM-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; SLM-NEXT:    fsubrs (%ecx) # sched: [6:1.00]
 ; SLM-NEXT:    fsubrl (%eax) # sched: [6:1.00]
@@ -5291,7 +5291,7 @@ 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, %st(1) # sched: [3:1.00]
+; SANDY-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; SANDY-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; SANDY-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SANDY-NEXT:    fsubrl (%eax) # sched: [10:1.00]
@@ -5303,7 +5303,7 @@ 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, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; HASWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; HASWELL-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; HASWELL-NEXT:    fsubrl (%eax) # sched: [10:1.00]
@@ -5315,7 +5315,7 @@ 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, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; BROADWELL-NEXT:    fsubrs (%ecx) # sched: [9:1.00]
 ; BROADWELL-NEXT:    fsubrl (%eax) # sched: [9:1.00]
@@ -5327,7 +5327,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; SKYLAKE-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SKYLAKE-NEXT:    fsubrl (%eax) # sched: [10:1.00]
@@ -5339,7 +5339,7 @@ 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, %st(1) # sched: [3:1.00]
+; SKX-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; SKX-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; SKX-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; SKX-NEXT:    fsubrl (%eax) # sched: [10:1.00]
@@ -5351,7 +5351,7 @@ 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, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT:    fsubr %st(0), %st(1) # sched: [5:1.00]
 ; BDVER2-NEXT:    fsubr %st(2) # sched: [5:1.00]
 ; BDVER2-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; BDVER2-NEXT:    fsubrl (%eax) # sched: [10:1.00]
@@ -5363,7 +5363,7 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
 ; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    fsubr %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; BTVER2-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; BTVER2-NEXT:    fsubrs (%ecx) # sched: [8:1.00]
 ; BTVER2-NEXT:    fsubrl (%eax) # sched: [8:1.00]
@@ -5375,7 +5375,7 @@ 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, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsubr %st(2) # sched: [3:1.00]
 ; ZNVER1-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
 ; ZNVER1-NEXT:    fsubrl (%eax) # sched: [10:1.00]
index 1d42a52c7a136622b700bfc9fda3205fcebe0c9b..8c4ad47eb8732a0ccefe8e52fd4ef87d71168725 100644 (file)
@@ -1,7 +1,7 @@
 # RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s
 # RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s
 
-# CHECK: fadd %st
+# CHECK: fadd %st(0)
 0xd8,0xc0
 
 # CHECK: fadd %st(1)
@@ -25,7 +25,7 @@
 # CHECK: fadd %st(7)
 0xd8,0xc7
 
-# CHECK: fmul %st
+# CHECK: fmul %st(0)
 0xd8,0xc8
 
 # CHECK: fmul %st(1)
@@ -49,7 +49,7 @@
 # CHECK: fmul %st(7)
 0xd8,0xcf
 
-# CHECK: fcom %st
+# CHECK: fcom %st(0)
 0xd8,0xd0
 
 # CHECK: fcom %st(1)
@@ -73,7 +73,7 @@
 # CHECK: fcom %st(7)
 0xd8,0xd7
 
-# CHECK: fcomp %st
+# CHECK: fcomp %st(0)
 0xd8,0xd8
 
 # CHECK: fcomp %st(1)
@@ -97,7 +97,7 @@
 # CHECK: fcomp %st(7)
 0xd8,0xdf
 
-# CHECK: fsub %st
+# CHECK: fsub %st(0)
 0xd8,0xe0
 
 # CHECK: fsub %st(1)
 # CHECK: fsub %st(7)
 0xd8,0xe7
 
-# CHECK: fsubr %st
+# CHECK: fsubr %st(0)
 0xd8,0xe8
 
 # CHECK: fsubr %st(1)
 # CHECK: fsubr %st(7)
 0xd8,0xef
 
-# CHECK: fdiv %st
+# CHECK: fdiv %st(0)
 0xd8,0xf0
 
 # CHECK: fdiv %st(1)
 # CHECK: fdiv %st(7)
 0xd8,0xf7
 
-# CHECK: fdivr %st
+# CHECK: fdivr %st(0)
 0xd8,0xf8
 
 # CHECK: fdivr %st(1)
 # CHECK: fdivr %st(7)
 0xd8,0xff
 
-# CHECK: fld %st
+# CHECK: fld %st(0)
 0xd9,0xc0
 
 # CHECK: fld %st(1)
 # CHECK: fld %st(7)
 0xd9,0xc7
 
-# CHECK: fxch %st
+# CHECK: fxch %st(0)
 0xd9,0xc8
 
 # CHECK: fxch %st(1)
 # CHECK: fcos
 0xd9,0xff
 
-# CHECK: fcmovb %st, %st
+# CHECK: fcmovb %st(0), %st(0)
 0xda,0xc0
 
-# CHECK: fcmovb %st(1), %st
+# CHECK: fcmovb %st(1), %st(0)
 0xda,0xc1
 
-# CHECK: fcmovb %st(2), %st
+# CHECK: fcmovb %st(2), %st(0)
 0xda,0xc2
 
-# CHECK: fcmovb %st(3), %st
+# CHECK: fcmovb %st(3), %st(0)
 0xda,0xc3
 
-# CHECK: fcmovb %st(4), %st
+# CHECK: fcmovb %st(4), %st(0)
 0xda,0xc4
 
-# CHECK: fcmovb %st(5), %st
+# CHECK: fcmovb %st(5), %st(0)
 0xda,0xc5
 
-# CHECK: fcmovb %st(6), %st
+# CHECK: fcmovb %st(6), %st(0)
 0xda,0xc6
 
-# CHECK: fcmovb %st(7), %st
+# CHECK: fcmovb %st(7), %st(0)
 0xda,0xc7
 
-# CHECK: fcmove %st, %st
+# CHECK: fcmove %st(0), %st(0)
 0xda,0xc8
 
-# CHECK: fcmove %st(1), %st
+# CHECK: fcmove %st(1), %st(0)
 0xda,0xc9
 
-# CHECK: fcmove %st(2), %st
+# CHECK: fcmove %st(2), %st(0)
 0xda,0xca
 
-# CHECK: fcmove %st(3), %st
+# CHECK: fcmove %st(3), %st(0)
 0xda,0xcb
 
-# CHECK: fcmove %st(4), %st
+# CHECK: fcmove %st(4), %st(0)
 0xda,0xcc
 
-# CHECK: fcmove %st(5), %st
+# CHECK: fcmove %st(5), %st(0)
 0xda,0xcd
 
-# CHECK: fcmove %st(6), %st
+# CHECK: fcmove %st(6), %st(0)
 0xda,0xce
 
-# CHECK: fcmove %st(7), %st
+# CHECK: fcmove %st(7), %st(0)
 0xda,0xcf
 
-# CHECK: fcmovbe %st, %st
+# CHECK: fcmovbe %st(0), %st(0)
 0xda,0xd0
 
-# CHECK: fcmovbe %st(1), %st
+# CHECK: fcmovbe %st(1), %st(0)
 0xda,0xd1
 
-# CHECK: fcmovbe %st(2), %st
+# CHECK: fcmovbe %st(2), %st(0)
 0xda,0xd2
 
-# CHECK: fcmovbe %st(3), %st
+# CHECK: fcmovbe %st(3), %st(0)
 0xda,0xd3
 
-# CHECK: fcmovbe %st(4), %st
+# CHECK: fcmovbe %st(4), %st(0)
 0xda,0xd4
 
-# CHECK: fcmovbe %st(5), %st
+# CHECK: fcmovbe %st(5), %st(0)
 0xda,0xd5
 
-# CHECK: fcmovbe %st(6), %st
+# CHECK: fcmovbe %st(6), %st(0)
 0xda,0xd6
 
-# CHECK: fcmovbe %st(7), %st
+# CHECK: fcmovbe %st(7), %st(0)
 0xda,0xd7
 
-# CHECK: fcmovu %st, %st
+# CHECK: fcmovu %st(0), %st(0)
 0xda,0xd8
 
-# CHECK: fcmovu %st(1), %st
+# CHECK: fcmovu %st(1), %st(0)
 0xda,0xd9
 
-# CHECK: fcmovu %st(2), %st
+# CHECK: fcmovu %st(2), %st(0)
 0xda,0xda
 
-# CHECK: fcmovu %st(3), %st
+# CHECK: fcmovu %st(3), %st(0)
 0xda,0xdb
 
-# CHECK: fcmovu %st(4), %st
+# CHECK: fcmovu %st(4), %st(0)
 0xda,0xdc
 
-# CHECK: fcmovu %st(5), %st
+# CHECK: fcmovu %st(5), %st(0)
 0xda,0xdd
 
-# CHECK: fcmovu %st(6), %st
+# CHECK: fcmovu %st(6), %st(0)
 0xda,0xde
 
-# CHECK: fcmovu %st(7), %st
+# CHECK: fcmovu %st(7), %st(0)
 0xda,0xdf
 
 # CHECK: fucompp
 0xda,0xe9
 
-# CHECK: fcmovnb %st, %st
+# CHECK: fcmovnb %st(0), %st(0)
 0xdb,0xc0
 
-# CHECK: fcmovnb %st(1), %st
+# CHECK: fcmovnb %st(1), %st(0)
 0xdb,0xc1
 
-# CHECK: fcmovnb %st(2), %st
+# CHECK: fcmovnb %st(2), %st(0)
 0xdb,0xc2
 
-# CHECK: fcmovnb %st(3), %st
+# CHECK: fcmovnb %st(3), %st(0)
 0xdb,0xc3
 
-# CHECK: fcmovnb %st(4), %st
+# CHECK: fcmovnb %st(4), %st(0)
 0xdb,0xc4
 
-# CHECK: fcmovnb %st(5), %st
+# CHECK: fcmovnb %st(5), %st(0)
 0xdb,0xc5
 
-# CHECK: fcmovnb %st(6), %st
+# CHECK: fcmovnb %st(6), %st(0)
 0xdb,0xc6
 
-# CHECK: fcmovnb %st(7), %st
+# CHECK: fcmovnb %st(7), %st(0)
 0xdb,0xc7
 
-# CHECK: fcmovne %st, %st
+# CHECK: fcmovne %st(0), %st(0)
 0xdb,0xc8
 
-# CHECK: fcmovne %st(1), %st
+# CHECK: fcmovne %st(1), %st(0)
 0xdb,0xc9
 
-# CHECK: fcmovne %st(2), %st
+# CHECK: fcmovne %st(2), %st(0)
 0xdb,0xca
 
-# CHECK: fcmovne %st(3), %st
+# CHECK: fcmovne %st(3), %st(0)
 0xdb,0xcb
 
-# CHECK: fcmovne %st(4), %st
+# CHECK: fcmovne %st(4), %st(0)
 0xdb,0xcc
 
-# CHECK: fcmovne %st(5), %st
+# CHECK: fcmovne %st(5), %st(0)
 0xdb,0xcd
 
-# CHECK: fcmovne %st(6), %st
+# CHECK: fcmovne %st(6), %st(0)
 0xdb,0xce
 
-# CHECK: fcmovne %st(7), %st
+# CHECK: fcmovne %st(7), %st(0)
 0xdb,0xcf
 
-# CHECK: fcmovnbe %st, %st
+# CHECK: fcmovnbe %st(0), %st(0)
 0xdb,0xd0
 
-# CHECK: fcmovnbe %st(1), %st
+# CHECK: fcmovnbe %st(1), %st(0)
 0xdb,0xd1
 
-# CHECK: fcmovnbe %st(2), %st
+# CHECK: fcmovnbe %st(2), %st(0)
 0xdb,0xd2
 
-# CHECK: fcmovnbe %st(3), %st
+# CHECK: fcmovnbe %st(3), %st(0)
 0xdb,0xd3
 
-# CHECK: fcmovnbe %st(4), %st
+# CHECK: fcmovnbe %st(4), %st(0)
 0xdb,0xd4
 
-# CHECK: fcmovnbe %st(5), %st
+# CHECK: fcmovnbe %st(5), %st(0)
 0xdb,0xd5
 
-# CHECK: fcmovnbe %st(6), %st
+# CHECK: fcmovnbe %st(6), %st(0)
 0xdb,0xd6
 
-# CHECK: fcmovnbe %st(7), %st
+# CHECK: fcmovnbe %st(7), %st(0)
 0xdb,0xd7
 
-# CHECK: fcmovnu %st, %st
+# CHECK: fcmovnu %st(0), %st(0)
 0xdb,0xd8
 
-# CHECK: fcmovnu %st(1), %st
+# CHECK: fcmovnu %st(1), %st(0)
 0xdb,0xd9
 
-# CHECK: fcmovnu %st(2), %st
+# CHECK: fcmovnu %st(2), %st(0)
 0xdb,0xda
 
-# CHECK: fcmovnu %st(3), %st
+# CHECK: fcmovnu %st(3), %st(0)
 0xdb,0xdb
 
-# CHECK: fcmovnu %st(4), %st
+# CHECK: fcmovnu %st(4), %st(0)
 0xdb,0xdc
 
-# CHECK: fcmovnu %st(5), %st
+# CHECK: fcmovnu %st(5), %st(0)
 0xdb,0xdd
 
-# CHECK: fcmovnu %st(6), %st
+# CHECK: fcmovnu %st(6), %st(0)
 0xdb,0xde
 
-# CHECK: fcmovnu %st(7), %st
+# CHECK: fcmovnu %st(7), %st(0)
 0xdb,0xdf
 
 # CHECK: fnclex
 # CHECK: fninit
 0xdb,0xe3
 
-# CHECK: fucomi %st
+# CHECK: fucomi %st(0)
 0xdb,0xe8
 
 # CHECK: fucomi %st(1)
 # CHECK: fucomi %st(7)
 0xdb,0xef
 
-# CHECK: fcomi %st
+# CHECK: fcomi %st(0)
 0xdb,0xf0
 
 # CHECK: fcomi %st(1)
 # CHECK: fcomi %st(7)
 0xdb,0xf7
 
-# CHECK: fadd %st, %st
+# CHECK: fadd %st(0), %st(0)
 0xdc,0xc0
 
-# CHECK: fadd %st, %st(1)
+# CHECK: fadd %st(0), %st(1)
 0xdc,0xc1
 
-# CHECK: fadd %st, %st(2)
+# CHECK: fadd %st(0), %st(2)
 0xdc,0xc2
 
-# CHECK: fadd %st, %st(3)
+# CHECK: fadd %st(0), %st(3)
 0xdc,0xc3
 
-# CHECK: fadd %st, %st(4)
+# CHECK: fadd %st(0), %st(4)
 0xdc,0xc4
 
-# CHECK: fadd %st, %st(5)
+# CHECK: fadd %st(0), %st(5)
 0xdc,0xc5
 
-# CHECK: fadd %st, %st(6)
+# CHECK: fadd %st(0), %st(6)
 0xdc,0xc6
 
-# CHECK: fadd %st, %st(7)
+# CHECK: fadd %st(0), %st(7)
 0xdc,0xc7
 
-# CHECK: fmul %st, %st
+# CHECK: fmul %st(0), %st(0)
 0xdc,0xc8
 
-# CHECK: fmul %st, %st(1)
+# CHECK: fmul %st(0), %st(1)
 0xdc,0xc9
 
-# CHECK: fmul %st, %st(2)
+# CHECK: fmul %st(0), %st(2)
 0xdc,0xca
 
-# CHECK: fmul %st, %st(3)
+# CHECK: fmul %st(0), %st(3)
 0xdc,0xcb
 
-# CHECK: fmul %st, %st(4)
+# CHECK: fmul %st(0), %st(4)
 0xdc,0xcc
 
-# CHECK: fmul %st, %st(5)
+# CHECK: fmul %st(0), %st(5)
 0xdc,0xcd
 
-# CHECK: fmul %st, %st(6)
+# CHECK: fmul %st(0), %st(6)
 0xdc,0xce
 
-# CHECK: fmul %st, %st(7)
+# CHECK: fmul %st(0), %st(7)
 0xdc,0xcf
 
-# CHECK: fsub %st, %st
+# CHECK: fsub %st(0), %st(0)
 0xdc,0xe0
 
-# CHECK: fsub %st, %st(1)
+# CHECK: fsub %st(0), %st(1)
 0xdc,0xe1
 
-# CHECK: fsub %st, %st(2)
+# CHECK: fsub %st(0), %st(2)
 0xdc,0xe2
 
-# CHECK: fsub %st, %st(3)
+# CHECK: fsub %st(0), %st(3)
 0xdc,0xe3
 
-# CHECK: fsub %st, %st(4)
+# CHECK: fsub %st(0), %st(4)
 0xdc,0xe4
 
-# CHECK: fsub %st, %st(5)
+# CHECK: fsub %st(0), %st(5)
 0xdc,0xe5
 
-# CHECK: fsub %st, %st(6)
+# CHECK: fsub %st(0), %st(6)
 0xdc,0xe6
 
-# CHECK: fsub %st, %st(7)
+# CHECK: fsub %st(0), %st(7)
 0xdc,0xe7
 
-# CHECK: fsubr %st, %st
+# CHECK: fsubr %st(0), %st(0)
 0xdc,0xe8
 
-# CHECK: fsubr %st, %st(1)
+# CHECK: fsubr %st(0), %st(1)
 0xdc,0xe9
 
-# CHECK: fsubr %st, %st(2)
+# CHECK: fsubr %st(0), %st(2)
 0xdc,0xea
 
-# CHECK: fsubr %st, %st(3)
+# CHECK: fsubr %st(0), %st(3)
 0xdc,0xeb
 
-# CHECK: fsubr %st, %st(4)
+# CHECK: fsubr %st(0), %st(4)
 0xdc,0xec
 
-# CHECK: fsubr %st, %st(5)
+# CHECK: fsubr %st(0), %st(5)
 0xdc,0xed
 
-# CHECK: fsubr %st, %st(6)
+# CHECK: fsubr %st(0), %st(6)
 0xdc,0xee
 
-# CHECK: fsubr %st, %st(7)
+# CHECK: fsubr %st(0), %st(7)
 0xdc,0xef
 
-# CHECK: fdiv %st, %st
+# CHECK: fdiv %st(0), %st(0)
 0xdc,0xf0
 
-# CHECK: fdiv %st, %st(1)
+# CHECK: fdiv %st(0), %st(1)
 0xdc,0xf1
 
-# CHECK: fdiv %st, %st(2)
+# CHECK: fdiv %st(0), %st(2)
 0xdc,0xf2
 
-# CHECK: fdiv %st, %st(3)
+# CHECK: fdiv %st(0), %st(3)
 0xdc,0xf3
 
-# CHECK: fdiv %st, %st(4)
+# CHECK: fdiv %st(0), %st(4)
 0xdc,0xf4
 
-# CHECK: fdiv %st, %st(5)
+# CHECK: fdiv %st(0), %st(5)
 0xdc,0xf5
 
-# CHECK: fdiv %st, %st(6)
+# CHECK: fdiv %st(0), %st(6)
 0xdc,0xf6
 
-# CHECK: fdiv %st, %st(7)
+# CHECK: fdiv %st(0), %st(7)
 0xdc,0xf7
 
-# CHECK: fdivr %st, %st
+# CHECK: fdivr %st(0), %st(0)
 0xdc,0xf8
 
-# CHECK: fdivr %st, %st(1)
+# CHECK: fdivr %st(0), %st(1)
 0xdc,0xf9
 
-# CHECK: fdivr %st, %st(2)
+# CHECK: fdivr %st(0), %st(2)
 0xdc,0xfa
 
-# CHECK: fdivr %st, %st(3)
+# CHECK: fdivr %st(0), %st(3)
 0xdc,0xfb
 
-# CHECK: fdivr %st, %st(4)
+# CHECK: fdivr %st(0), %st(4)
 0xdc,0xfc
 
-# CHECK: fdivr %st, %st(5)
+# CHECK: fdivr %st(0), %st(5)
 0xdc,0xfd
 
-# CHECK: fdivr %st, %st(6)
+# CHECK: fdivr %st(0), %st(6)
 0xdc,0xfe
 
-# CHECK: fdivr %st, %st(7)
+# CHECK: fdivr %st(0), %st(7)
 0xdc,0xff
 
-# CHECK: ffree %st
+# CHECK: ffree %st(0)
 0xdd,0xc0
 
 # CHECK: ffree %st(1)
 # CHECK: ffree %st(7)
 0xdd,0xc7
 
-# CHECK: fst %st
+# CHECK: fst %st(0)
 0xdd,0xd0
 
 # CHECK: fst %st(1)
 # CHECK: fst %st(7)
 0xdd,0xd7
 
-# CHECK: fstp %st
+# CHECK: fstp %st(0)
 0xdd,0xd8
 
 # CHECK: fstp %st(1)
 # CHECK: fstp %st(7)
 0xdd,0xdf
 
-# CHECK: fucom %st
+# CHECK: fucom %st(0)
 0xdd,0xe0
 
 # CHECK: fucom %st(1)
 # CHECK: fucom %st(7)
 0xdd,0xe7
 
-# CHECK: fucomp %st
+# CHECK: fucomp %st(0)
 0xdd,0xe8
 
 # CHECK: fucomp %st(1)
 # CHECK: fucomp %st(7)
 0xdd,0xef
 
-# CHECK: faddp %st
+# CHECK: faddp %st(0)
 0xde,0xc0
 
 # CHECK: faddp %st(1)
 # CHECK: faddp %st(7)
 0xde,0xc7
 
-# CHECK: fmulp %st
+# CHECK: fmulp %st(0)
 0xde,0xc8
 
 # CHECK: fmulp %st(1)
 # CHECK: fcompp
 0xde,0xd9
 
-# CHECK: fsubp %st
+# CHECK: fsubp %st(0)
 0xde,0xe0
 
 # CHECK: fsubp %st(1)
 # CHECK: fsubp %st(7)
 0xde,0xe7
 
-# CHECK: fsubrp %st
+# CHECK: fsubrp %st(0)
 0xde,0xe8
 
 # CHECK: fsubrp %st(1)
 # CHECK: fsubrp %st(7)
 0xde,0xef
 
-# CHECK: fdivp %st
+# CHECK: fdivp %st(0)
 0xde,0xf0
 
 # CHECK: fdivp %st(1)
 # CHECK: fdivp %st(7)
 0xde,0xf7
 
-# CHECK: fdivrp %st
+# CHECK: fdivrp %st(0)
 0xde,0xf8
 
 # CHECK: fdivrp %st(1)
 # CHECK: fdivrp %st(7)
 0xde,0xff
 
-# CHECK: ffreep %st
+# CHECK: ffreep %st(0)
 0xdf,0xc0
 
 # CHECK: ffreep %st(1)
 # CHECK: fnstsw %ax
 0xdf,0xe0
 
-# CHECK: fucompi %st
+# CHECK: fucompi %st(0)
 0xdf,0xe8
 
 # CHECK: fucompi %st(1)
 # CHECK: fucompi %st(7)
 0xdf,0xef
 
-# CHECK: fcompi %st
+# CHECK: fcompi %st(0)
 0xdf,0xf0
 
 # CHECK: fcompi %st(1)
index db4a8717c027acc28832b204e1e271fd3185196d..43cd09516c3b1640e2c4745a678bd616ae8beba1 100644 (file)
 # CHECK: cmovel %eax, %edx
 0x66 0x0f 0x44 0xd0
 
-# CHECK: fmul %st
+# CHECK: fmul %st(0)
 0xd8 0xc8
 
-# CHECK: fadd %st
+# CHECK: fadd %st(0)
 0xd8 0xc0
 
-# CHECK: fsub %st
+# CHECK: fsub %st(0)
 0xd8 0xe0
 
-# CHECK: fsubr %st
+# CHECK: fsubr %st(0)
 0xd8 0xe8
 
-# CHECK: fdivr %st
+# CHECK: fdivr %st(0)
 0xd8 0xf8
 
-# CHECK: fdiv %st
+# CHECK: fdiv %st(0)
 0xd8 0xf0
 
 # CHECK: movl %cs, %eax
index 6deea6de9c449ba2d97bff99f3125de3c37dc9b2..bbd933e58af093095e618d64069dce5b65c5a2fd 100644 (file)
@@ -64,37 +64,37 @@ cmovpl %eax, %eax
 // CHECK: encoding: [0x0f,0x48,0xc0]        
 cmovsl %eax, %eax 
 
-// CHECK: fcmovbe %st(4), %st 
+// CHECK: fcmovbe %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xd4]        
-fcmovbe %st(4), %st 
+fcmovbe %st(4), %st(0) 
 
-// CHECK: fcmovb %st(4), %st 
+// CHECK: fcmovb %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xc4]        
-fcmovb %st(4), %st 
+fcmovb %st(4), %st(0) 
 
-// CHECK: fcmove %st(4), %st 
+// CHECK: fcmove %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xcc]        
-fcmove %st(4), %st 
+fcmove %st(4), %st(0) 
 
-// CHECK: fcmovnbe %st(4), %st 
+// CHECK: fcmovnbe %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xd4]        
-fcmovnbe %st(4), %st 
+fcmovnbe %st(4), %st(0) 
 
-// CHECK: fcmovnb %st(4), %st 
+// CHECK: fcmovnb %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xc4]        
-fcmovnb %st(4), %st 
+fcmovnb %st(4), %st(0) 
 
-// CHECK: fcmovne %st(4), %st 
+// CHECK: fcmovne %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xcc]        
-fcmovne %st(4), %st 
+fcmovne %st(4), %st(0) 
 
-// CHECK: fcmovnu %st(4), %st 
+// CHECK: fcmovnu %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xdc]        
-fcmovnu %st(4), %st 
+fcmovnu %st(4), %st(0) 
 
-// CHECK: fcmovu %st(4), %st 
+// CHECK: fcmovu %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xdc]        
-fcmovu %st(4), %st 
+fcmovu %st(4), %st(0) 
 
 // CHECK: fcomi %st(4) 
 // CHECK: encoding: [0xdb,0xf4]         
index 8004772e8f3defb30ea0f9864eb6fe1d9a51789a..a41d4a0f93cc982ce531fb6a65e2a38de599eace 100644 (file)
@@ -64,37 +64,37 @@ cmovpl %r13d, %r13d
 // CHECK: encoding: [0x45,0x0f,0x48,0xed]        
 cmovsl %r13d, %r13d 
 
-// CHECK: fcmovbe %st(4), %st 
+// CHECK: fcmovbe %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xd4]        
-fcmovbe %st(4), %st 
+fcmovbe %st(4), %st(0) 
 
-// CHECK: fcmovb %st(4), %st 
+// CHECK: fcmovb %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xc4]        
-fcmovb %st(4), %st 
+fcmovb %st(4), %st(0) 
 
-// CHECK: fcmove %st(4), %st 
+// CHECK: fcmove %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xcc]        
-fcmove %st(4), %st 
+fcmove %st(4), %st(0) 
 
-// CHECK: fcmovnbe %st(4), %st 
+// CHECK: fcmovnbe %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xd4]        
-fcmovnbe %st(4), %st 
+fcmovnbe %st(4), %st(0) 
 
-// CHECK: fcmovnb %st(4), %st 
+// CHECK: fcmovnb %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xc4]        
-fcmovnb %st(4), %st 
+fcmovnb %st(4), %st(0) 
 
-// CHECK: fcmovne %st(4), %st 
+// CHECK: fcmovne %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xcc]        
-fcmovne %st(4), %st 
+fcmovne %st(4), %st(0) 
 
-// CHECK: fcmovnu %st(4), %st 
+// CHECK: fcmovnu %st(4), %st(0) 
 // CHECK: encoding: [0xdb,0xdc]        
-fcmovnu %st(4), %st 
+fcmovnu %st(4), %st(0) 
 
-// CHECK: fcmovu %st(4), %st 
+// CHECK: fcmovu %st(4), %st(0) 
 // CHECK: encoding: [0xda,0xdc]        
-fcmovu %st(4), %st 
+fcmovu %st(4), %st(0) 
 
 // CHECK: fcomi %st(4) 
 // CHECK: encoding: [0xdb,0xf4]         
index 5d001b9863ca2891b75420741ba0654242385def..967763de93e057e0f1e6b017a32a9825f9383987 100755 (executable)
@@ -59,9 +59,9 @@ fadds 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x02]        
 fadds (%edx) 
 
-// CHECK: fadd %st, %st(4) 
+// CHECK: fadd %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xc4]       
-fadd %st, %st(4) 
+fadd %st(0), %st(4) 
 
 // CHECK: fadd %st(4) 
 // CHECK: encoding: [0xd8,0xc4]        
@@ -315,9 +315,9 @@ fdivrs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x3a]        
 fdivrs (%edx) 
 
-// CHECK: fdivr %st, %st(4) 
+// CHECK: fdivr %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xfc]       
-fdivr %st, %st(4) 
+fdivr %st(0), %st(4) 
 
 // CHECK: fdivr %st(4) 
 // CHECK: encoding: [0xd8,0xfc]        
@@ -347,9 +347,9 @@ fdivs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x32]        
 fdivs (%edx) 
 
-// CHECK: fdiv %st, %st(4) 
+// CHECK: fdiv %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xf4]       
-fdiv %st, %st(4) 
+fdiv %st(0), %st(4) 
 
 // CHECK: fdiv %st(4) 
 // CHECK: encoding: [0xd8,0xf4]        
@@ -1147,9 +1147,9 @@ fmuls 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x0a]        
 fmuls (%edx) 
 
-// CHECK: fmul %st, %st(4) 
+// CHECK: fmul %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xcc]       
-fmul %st, %st(4) 
+fmul %st(0), %st(4) 
 
 // CHECK: fmul %st(4) 
 // CHECK: encoding: [0xd8,0xcc]        
@@ -1535,9 +1535,9 @@ fsubrs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x2a]        
 fsubrs (%edx) 
 
-// CHECK: fsubr %st, %st(4) 
+// CHECK: fsubr %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xec]       
-fsubr %st, %st(4) 
+fsubr %st(0), %st(4) 
 
 // CHECK: fsubr %st(4) 
 // CHECK: encoding: [0xd8,0xec]        
@@ -1567,9 +1567,9 @@ fsubs 64(%edx,%eax)
 // CHECK: encoding: [0xd8,0x22]        
 fsubs (%edx) 
 
-// CHECK: fsub %st, %st(4) 
+// CHECK: fsub %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xe4]       
-fsub %st, %st(4) 
+fsub %st(0), %st(4) 
 
 // CHECK: fsub %st(4) 
 // CHECK: encoding: [0xd8,0xe4]        
index 83abafd9eeaa7cc9a3f12555d28ab372dfccc363..a3b76b4e4b0ad47e4372c1eaa9b91f79dffb7c8d 100755 (executable)
@@ -59,9 +59,9 @@ fadds 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x02]        
 fadds (%rdx) 
 
-// CHECK: fadd %st, %st(4) 
+// CHECK: fadd %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xc4]       
-fadd %st, %st(4) 
+fadd %st(0), %st(4) 
 
 // CHECK: fadd %st(4) 
 // CHECK: encoding: [0xd8,0xc4]        
@@ -315,9 +315,9 @@ fdivrs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x3a]        
 fdivrs (%rdx) 
 
-// CHECK: fdivr %st, %st(4) 
+// CHECK: fdivr %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xfc]       
-fdivr %st, %st(4) 
+fdivr %st(0), %st(4) 
 
 // CHECK: fdivr %st(4) 
 // CHECK: encoding: [0xd8,0xfc]        
@@ -347,9 +347,9 @@ fdivs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x32]        
 fdivs (%rdx) 
 
-// CHECK: fdiv %st, %st(4) 
+// CHECK: fdiv %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xf4]       
-fdiv %st, %st(4) 
+fdiv %st(0), %st(4) 
 
 // CHECK: fdiv %st(4) 
 // CHECK: encoding: [0xd8,0xf4]        
@@ -1147,9 +1147,9 @@ fmuls 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x0a]        
 fmuls (%rdx) 
 
-// CHECK: fmul %st, %st(4) 
+// CHECK: fmul %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xcc]       
-fmul %st, %st(4) 
+fmul %st(0), %st(4) 
 
 // CHECK: fmul %st(4) 
 // CHECK: encoding: [0xd8,0xcc]        
@@ -1535,9 +1535,9 @@ fsubrs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x2a]        
 fsubrs (%rdx) 
 
-// CHECK: fsubr %st, %st(4) 
+// CHECK: fsubr %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xec]       
-fsubr %st, %st(4) 
+fsubr %st(0), %st(4) 
 
 // CHECK: fsubr %st(4) 
 // CHECK: encoding: [0xd8,0xec]        
@@ -1567,9 +1567,9 @@ fsubs 64(%rdx,%rax)
 // CHECK: encoding: [0xd8,0x22]        
 fsubs (%rdx) 
 
-// CHECK: fsub %st, %st(4) 
+// CHECK: fsub %st(0), %st(4) 
 // CHECK: encoding: [0xdc,0xe4]       
-fsub %st, %st(4) 
+fsub %st(0), %st(4) 
 
 // CHECK: fsub %st(4) 
 // CHECK: encoding: [0xd8,0xe4]        
index 61d8636def59cdc9d289fc5b46fecbacdb844e35..428a7e4ec41f1f077f3a85b6bac32652e6f5a702 100644 (file)
@@ -115,8 +115,8 @@ main:
        and     rax, 257
 // CHECK:      andq    $-257,  %rax
        and     rax, -257
-// CHECK:      fld     %st
-       fld     st
+// CHECK:      fld     %st(0)
+       fld     ST(0)
 // CHECK:      movl    %fs:(%rdi), %eax
     mov EAX, DWORD PTR FS:[RDI]
 // CHECK: leal (,%rdi,4), %r8d
@@ -562,12 +562,12 @@ fnstsw WORD PTR [EAX]
 // CHECK: fsubp %st(1)
 // CHECK: fdivrp %st(1)
 // CHECK: fdivp %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
+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)
@@ -575,12 +575,12 @@ fdivrp ST(1), st
 // CHECK: fsubp %st(1)
 // CHECK: fdivrp %st(1)
 // CHECK: fdivp %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)
+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)
@@ -628,25 +628,25 @@ fdivrp
 // CHECK: fsubr %st(1)
 // CHECK: fdiv %st(1)
 // CHECK: fdivr %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, %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
-fmul ST(1), st
-fsub ST(1), st
-fsubr ST(1), st
-fdiv ST(1), st
-fdivr ST(1), st
+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)
+
+// 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)
+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(1)
 // CHECK: fmul %st(1)
index 3641de17e614f64d5a89786cc6b68cc96b2f8011..50263beaa67567da4247dd29cfefb70ba721e42c 100644 (file)
@@ -216,29 +216,29 @@ cmovnae   %bx,%bx
 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
                cmovzl  %eax,%edx
 
-// CHECK: fmul %st
+// CHECK: fmul %st(0)
 // CHECK:  encoding: [0xd8,0xc8]
-        fmul %st, %st
+        fmul %st(0), %st
 
-// CHECK: fadd %st
+// CHECK: fadd %st(0)
 // CHECK:  encoding: [0xd8,0xc0]
-        fadd %st, %st
+        fadd %st(0), %st
 
-// CHECK: fsub %st
+// CHECK: fsub %st(0)
 // CHECK:  encoding: [0xd8,0xe0]
-        fsub %st, %st
+        fsub %st(0), %st
 
-// CHECK: fsubr        %st
+// CHECK: fsubr        %st(0)
 // CHECK:  encoding: [0xd8,0xe8]
-        fsubr %st, %st
+        fsubr %st(0), %st
 
-// CHECK: fdivr        %st
+// CHECK: fdivr        %st(0)
 // CHECK:  encoding: [0xd8,0xf8]
-        fdivr %st, %st
+        fdivr %st(0), %st
 
-// CHECK: fdiv %st
+// CHECK: fdiv %st(0)
 // CHECK:  encoding: [0xd8,0xf0]
-        fdiv %st, %st
+        fdiv %st(0), %st
 
 // CHECK: movl %cs, %eax
 // CHECK:  encoding: [0x66,0x8c,0xc8]
index 2686792a41598761f89d006c19ee9d71c68c60f1..32281f41216445c49ac74b04136b5e2bad4bb403 100644 (file)
 // CHECK:  encoding: [0x0f,0x0b]
                ud2
 
-// CHECK: fcmovb       %st(2), %st
+// CHECK: fcmovb       %st(2), %st(0)
 // CHECK:  encoding: [0xda,0xc2]
                fcmovb  %st(2),%st
 
-// CHECK: fcmove       %st(2), %st
+// CHECK: fcmove       %st(2), %st(0)
 // CHECK:  encoding: [0xda,0xca]
                fcmove  %st(2),%st
 
-// CHECK: fcmovbe      %st(2), %st
+// CHECK: fcmovbe      %st(2), %st(0)
 // CHECK:  encoding: [0xda,0xd2]
                fcmovbe %st(2),%st
 
-// CHECK: fcmovu        %st(2), %st
+// CHECK: fcmovu        %st(2), %st(0)
 // CHECK:  encoding: [0xda,0xda]
                fcmovu  %st(2),%st
 
-// CHECK: fcmovnb      %st(2), %st
+// CHECK: fcmovnb      %st(2), %st(0)
 // CHECK:  encoding: [0xdb,0xc2]
                fcmovnb %st(2),%st
 
-// CHECK: fcmovne      %st(2), %st
+// CHECK: fcmovne      %st(2), %st(0)
 // CHECK:  encoding: [0xdb,0xca]
                fcmovne %st(2),%st
 
-// CHECK: fcmovnbe     %st(2), %st
+// CHECK: fcmovnbe     %st(2), %st(0)
 // CHECK:  encoding: [0xdb,0xd2]
                fcmovnbe        %st(2),%st
 
-// CHECK: fcmovnu      %st(2), %st
+// CHECK: fcmovnu      %st(2), %st(0)
 // CHECK:  encoding: [0xdb,0xda]
                fcmovnu %st(2),%st
 
index d8cd30eaf1a57443c78dc0e1007125ba64894c3e..69d36032593453e4870ad2aa381b91d222f1b775 100644 (file)
@@ -322,29 +322,29 @@ cmovnae   %bx,%bx
         cmpordsd %xmm0, %xmm1
 
 // rdar://7995856
-// CHECK: fmul %st
+// CHECK: fmul %st(0)
 // CHECK:  encoding: [0xd8,0xc8]
-        fmul %st, %st
+        fmul %st(0), %st
 
-// CHECK: fadd %st
+// CHECK: fadd %st(0)
 // CHECK:  encoding: [0xd8,0xc0]
-        fadd %st, %st
+        fadd %st(0), %st
 
-// CHECK: fsub %st
+// CHECK: fsub %st(0)
 // CHECK:  encoding: [0xd8,0xe0]
-        fsub %st, %st
+        fsub %st(0), %st
 
-// CHECK: fsubr        %st
+// CHECK: fsubr        %st(0)
 // CHECK:  encoding: [0xd8,0xe8]
-        fsubr %st, %st
+        fsubr %st(0), %st
 
-// CHECK: fdivr        %st
+// CHECK: fdivr        %st(0)
 // CHECK:  encoding: [0xd8,0xf8]
-        fdivr %st, %st
+        fdivr %st(0), %st
 
-// CHECK: fdiv %st
+// CHECK: fdiv %st(0)
 // CHECK:  encoding: [0xd8,0xf0]
-        fdiv %st, %st
+        fdiv %st(0), %st
 
 // radr://8017519
 // CHECK: movl %cs, %eax
index 13ad4a7146815d1f08fd15eae062810ec6a7e587..df811a6c4cf2ee65f6299baaf8f0a0a7cdfb4d17 100644 (file)
@@ -183,11 +183,11 @@ smovq // CHECK: movsq
 // CHECK: movb (%eax), %al
         gs;movb 0(%eax), %al
 
-// CHECK: fadd %st
+// CHECK: fadd %st(0)
 // CHECK: fadd %st(1)
 // CHECK: fadd %st(7)
 
-fadd %st
+fadd %st(0)
 fadd %st(1)
 fadd %st(7)
 
@@ -308,7 +308,7 @@ insl        (%dx), %es:(%rdi)
 // CHECK: fucom %st(1)
 // CHECK: fucomp %st(1)
 // CHECK: faddp %st(1)
-// CHECK: faddp        %st
+// CHECK: faddp        %st(0)
 // CHECK: fsubp %st(1)
 // CHECK: fsubrp %st(1)
 // CHECK: fmulp %st(1)
@@ -416,21 +416,21 @@ enter $0x7ace,$0x7f
 mov %cs, %ax
 
 // rdar://8456391
-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
+fcmovb %st(1), %st(0)   // CHECK: fcmovb       %st(1), %st(0)
+fcmove %st(1), %st(0)   // CHECK: fcmove       %st(1), %st(0)
+fcmovbe %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+fcmovu %st(1), %st(0)   // CHECK: fcmovu        %st(1), %st(0)
 
-fcmovnb %st(1), %st  // 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
+fcmovnb %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
+fcmovne %st(1), %st(0)  // CHECK: fcmovne      %st(1), %st(0)
+fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe     %st(1), %st(0)
+fcmovnu %st(1), %st(0)  // CHECK: fcmovnu      %st(1), %st(0)
 
-fcmovnae %st(1), %st // CHECK: fcmovb  %st(1), %st
-fcmovna %st(1), %st  // CHECK: fcmovbe %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)
 
-fcmovae %st(1), %st  // CHECK: fcmovnb %st(1), %st
-fcmova %st(1), %st   // CHECK: fcmovnbe        %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)
 
 // rdar://8456417
 .byte (88 + 1) & 15  // CHECK: .byte   9
@@ -462,14 +462,14 @@ faddp %st, %st(1)
 fmulp %st, %st(2)
 
 // rdar://8468087 - Encode these accurately, they are not synonyms.
-// CHECK: fmul %st, %st(1)
+// CHECK: fmul %st(0), %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, %st(1)
+// CHECK: fadd %st(0), %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, %st(1) // CHECK: encoding: [0xde,0xf9]
-fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9]
+fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
+fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
 
-fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9]
-fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9]
+fsubrp %st(0), %st(1) // CHECK: encoding: [0xde,0xe9]
+fsubrp %st(1), %st(0) // CHECK: encoding: [0xde,0xe9]
 
 // also PR8861
-fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1]
-fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1]
+fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
+fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
 
 
 movl   foo(%rip), %eax
@@ -1397,12 +1397,12 @@ stac
 // CHECK: fsubrp %st(1)
 // CHECK: fdivp %st(1)
 // CHECK: fdivrp %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)
+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)
@@ -1410,12 +1410,12 @@ fdivrp %st, %st(1)
 // CHECK: fsubrp %st(1)
 // CHECK: fdivp %st(1)
 // CHECK: fdivrp %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
+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)
@@ -1449,25 +1449,25 @@ fdivrp
 // CHECK: fsubr %st(1)
 // CHECK: fdiv %st(1)
 // CHECK: fdivr %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)
+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)
 
 // CHECK: fadd %st(1)
 // CHECK: fmul %st(1)
index 359f88ef59f11e89b559c8f2bd0565b294a745f6..c7a990a892eb67faa16d3ff23c779c05bbf291c6 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# 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     fadds  (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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      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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      9     4.50                  U     fcompi %st(3)
 # 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, %st(1)
+# 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     fdivs  (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      34    17.00                 U     fdivp  %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, %st(1)
+# 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     fdivrs (%ecx)
 # CHECK-NEXT:  1      34    17.00   *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      34    17.00                 U     fdivrp %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
+# CHECK-NEXT:  1      1     0.50                  U     ffree  %st(0)
 # CHECK-NEXT:  1      5     5.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  1      5     5.00                  U     ficoml (%eax)
 # CHECK-NEXT:  1      5     5.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  1      2     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  1      2     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  1      2     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     1.00                  U     fld    %st
+# CHECK-NEXT:  1      1     1.00                  U     fld    %st(0)
 # CHECK-NEXT:  1      1     1.00    *             U     flds   (%edx)
 # CHECK-NEXT:  1      1     1.00    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      4     2.00    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# 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     fmuls  (%ecx)
 # CHECK-NEXT:  1      4     4.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      174   87.00                 U     fsin
 # CHECK-NEXT:  1      174   87.00                 U     fsincos
 # CHECK-NEXT:  1      71    35.50                 U     fsqrt
-# CHECK-NEXT:  1      2     1.00                  U     fst    %st
+# CHECK-NEXT:  1      2     1.00                  U     fst    %st(0)
 # CHECK-NEXT:  1      2     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      2     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      2     1.00                  U     fstp   %st
+# CHECK-NEXT:  1      2     1.00                  U     fstp   %st(0)
 # CHECK-NEXT:  1      2     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  1      2     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  1      5     2.50           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# 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     fsubs  (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      5     5.00                  U     fsubp  %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, %st(1)
+# 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     fsubrs (%ecx)
 # CHECK-NEXT:  1      5     5.00    *             U     fsubrl (%eax)
@@ -367,7 +367,7 @@ fyl2xp1
 # CHECK-NEXT: [0]    [1]    Instructions:
 # CHECK-NEXT: 49.50  49.50  f2xm1
 # CHECK-NEXT:  -     1.00   fabs
-# CHECK-NEXT: 5.00    -     fadd       %st, %st(1)
+# CHECK-NEXT: 5.00    -     fadd       %st(0), %st(1)
 # CHECK-NEXT: 5.00    -     fadd       %st(2)
 # CHECK-NEXT: 5.00    -     fadds      (%ecx)
 # CHECK-NEXT: 5.00    -     faddl      (%ecx)
@@ -379,14 +379,14 @@ fyl2xp1
 # 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
-# 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: 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: 5.00    -     fcom       %st(1)
 # CHECK-NEXT: 5.00    -     fcom       %st(3)
 # CHECK-NEXT: 5.00    -     fcoms      (%ecx)
@@ -400,7 +400,7 @@ fyl2xp1
 # CHECK-NEXT: 4.50   4.50   fcompi     %st(3)
 # CHECK-NEXT: 87.00  87.00  fcos
 # CHECK-NEXT: 0.50   0.50   fdecstp
-# CHECK-NEXT: 17.00  17.00  fdiv       %st, %st(1)
+# 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  fdivs      (%ecx)
 # CHECK-NEXT: 17.00  17.00  fdivl      (%eax)
@@ -408,7 +408,7 @@ fyl2xp1
 # CHECK-NEXT: 17.00  17.00  fdivp      %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, %st(1)
+# 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  fdivrs     (%ecx)
 # CHECK-NEXT: 17.00  17.00  fdivrl     (%eax)
@@ -416,7 +416,7 @@ fyl2xp1
 # CHECK-NEXT: 17.00  17.00  fdivrp     %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
+# CHECK-NEXT: 0.50   0.50   ffree      %st(0)
 # CHECK-NEXT: 5.00    -     ficoms     (%ecx)
 # CHECK-NEXT: 5.00    -     ficoml     (%eax)
 # CHECK-NEXT: 5.00    -     ficomps    (%ecx)
@@ -434,7 +434,7 @@ fyl2xp1
 # CHECK-NEXT: 1.00   1.00   fisttps    (%edx)
 # CHECK-NEXT: 1.00   1.00   fisttpl    (%ecx)
 # CHECK-NEXT: 1.00   1.00   fisttpll   (%eax)
-# CHECK-NEXT: 1.00    -     fld        %st
+# CHECK-NEXT: 1.00    -     fld        %st(0)
 # CHECK-NEXT: 1.00    -     flds       (%edx)
 # CHECK-NEXT: 1.00    -     fldl       (%ecx)
 # CHECK-NEXT: 2.00   2.00   fldt       (%eax)
@@ -447,7 +447,7 @@ 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, %st(1)
+# CHECK-NEXT: 4.00    -     fmul       %st(0), %st(1)
 # CHECK-NEXT: 4.00    -     fmul       %st(2)
 # CHECK-NEXT: 4.00    -     fmuls      (%ecx)
 # CHECK-NEXT: 4.00    -     fmull      (%eax)
@@ -467,10 +467,10 @@ fyl2xp1
 # CHECK-NEXT: 87.00  87.00  fsin
 # CHECK-NEXT: 87.00  87.00  fsincos
 # CHECK-NEXT: 35.50  35.50  fsqrt
-# CHECK-NEXT: 1.00   1.00   fst        %st
+# CHECK-NEXT: 1.00   1.00   fst        %st(0)
 # CHECK-NEXT: 1.00   1.00   fsts       (%edx)
 # CHECK-NEXT: 1.00   1.00   fstl       (%ecx)
-# CHECK-NEXT: 1.00   1.00   fstp       %st
+# CHECK-NEXT: 1.00   1.00   fstp       %st(0)
 # CHECK-NEXT: 1.00   1.00   fstpl      (%edx)
 # CHECK-NEXT: 1.00   1.00   fstpl      (%ecx)
 # CHECK-NEXT: 2.50   2.50   fstpt      (%eax)
@@ -480,7 +480,7 @@ 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, %st(1)
+# CHECK-NEXT: 5.00    -     fsub       %st(0), %st(1)
 # CHECK-NEXT: 5.00    -     fsub       %st(2)
 # CHECK-NEXT: 5.00    -     fsubs      (%ecx)
 # CHECK-NEXT: 5.00    -     fsubl      (%eax)
@@ -488,7 +488,7 @@ fyl2xp1
 # CHECK-NEXT: 5.00    -     fsubp      %st(2)
 # CHECK-NEXT: 5.00    -     fisubs     (%ecx)
 # CHECK-NEXT: 5.00    -     fisubl     (%eax)
-# CHECK-NEXT: 5.00    -     fsubr      %st, %st(1)
+# CHECK-NEXT: 5.00    -     fsubr      %st(0), %st(1)
 # CHECK-NEXT: 5.00    -     fsubr      %st(2)
 # CHECK-NEXT: 5.00    -     fsubrs     (%ecx)
 # CHECK-NEXT: 5.00    -     fsubrl     (%eax)
index 33cada60ea9d5a89d50240f6b6b12c755704a7e3..ad72714c74c1bbaf47a96b3b57ef85430ef9125a 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# 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      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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:  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:  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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  2      1     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# 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      14    9.50    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      9     9.50                  U     fdivp  %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, %st(1)
+# 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      14    9.50    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      14    9.50    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      9     9.50                  U     fdivrp %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
+# CHECK-NEXT:  1      100   0.50                  U     ffree  %st(0)
 # CHECK-NEXT:  2      6     1.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  2      6     1.00                  U     ficoml (%eax)
 # CHECK-NEXT:  2      6     1.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.50                  U     fld    %st
+# CHECK-NEXT:  1      1     0.50                  U     fld    %st(0)
 # CHECK-NEXT:  1      5     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      5     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      5     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# 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      10    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.50                  U     fsin
 # CHECK-NEXT:  1      100   0.50                  U     fsincos
 # CHECK-NEXT:  1      1     17.50                 U     fsqrt
-# CHECK-NEXT:  1      1     0.50                  U     fst    %st
+# CHECK-NEXT:  1      1     0.50                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.50                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.50                  U     fstp   %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# 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      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      5     1.00                  U     fsubp  %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, %st(1)
+# 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      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrl (%eax)
@@ -388,7 +388,7 @@ 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, %st(1)
+# 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    -      -      -      -      -      -     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)
@@ -400,14 +400,14 @@ fyl2xp1
 # 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
-# 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:  -      -      -      -      -      -      -      -     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:  -      -      -      -      -     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)
@@ -421,7 +421,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fcompi  %st(3)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdiv    %st, %st(1)
+# 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: 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)
@@ -429,7 +429,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivp   %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, %st(1)
+# 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: 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)
@@ -437,7 +437,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     9.50   9.50    -      -      -      -      -     1.00    -      -      -      -      -      -      -     fdivrp  %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
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     ffree   %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     ficoms  (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     ficoml  (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     ficomps (%ecx)
@@ -455,7 +455,7 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fisttps (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fisttpl (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fisttpll        (%eax)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fld     %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fld     %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     flds    (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     fldl    (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     fldt    (%eax)
@@ -468,7 +468,7 @@ 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, %st(1)
+# 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    -      -      -      -      -      -     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)
@@ -488,10 +488,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fsin
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fsincos
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     17.50  17.50   -      -      -      -      -     1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fst     %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fst     %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fsts    (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fstl    (%ecx)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fstp    %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fstp    %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fstpl   (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fstpl   (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   fstpt   (%eax)
@@ -501,7 +501,7 @@ 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, %st(1)
+# 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    -      -      -      -      -      -     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)
@@ -509,7 +509,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     fsubp   %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, %st(1)
+# 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    -      -      -      -      -      -     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)
index a1fc6e09652d407a3e27f48ad05f81549eb6d90b..5cb92be47eabb01d5f9e9d97eeb96e157e18b0b0 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      9     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
 # CHECK-NEXT:  2      21    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      21    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      15    1.00                  U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
 # CHECK-NEXT:  2      26    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      26    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      20    1.00                  U     fdivrp %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
+# CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
 # CHECK-NEXT:  3      10    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      10    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      10    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      4     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.25                  U     fld    %st
+# CHECK-NEXT:  1      1     0.25                  U     fld    %st(0)
 # CHECK-NEXT:  1      6     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      6     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      6     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     fsin
 # CHECK-NEXT:  1      100   0.25                  U     fsincos
 # CHECK-NEXT:  1      23    9.00                  U     fsqrt
-# CHECK-NEXT:  1      1     0.25                  U     fst    %st
+# CHECK-NEXT:  1      1     0.25                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.25                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.25                  U     fstp   %st(0)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      9     1.00    *             U     fsubrl (%eax)
@@ -375,7 +375,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     faddl      (%ecx)
@@ -387,14 +387,14 @@ fyl2xp1
 # 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
-# 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    -      -      -      -      -      -     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    -      -      -      -      -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcoms      (%ecx)
@@ -408,7 +408,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcompi     %st(3)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
@@ -416,7 +416,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
@@ -424,7 +424,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %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
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficoms     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficoml     (%eax)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficomps    (%ecx)
@@ -442,7 +442,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttps    (%edx)
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttpl    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttpll   (%eax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     flds       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldl       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldt       (%eax)
@@ -455,7 +455,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
@@ -475,10 +475,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsin
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsincos
 # CHECK-NEXT:  -     9.00   1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fsts       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstl       (%ecx)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpt      (%eax)
@@ -488,7 +488,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubl      (%eax)
@@ -496,7 +496,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrl     (%eax)
index ff44cbcebfe4e984bff430c08a86e7b429f6edd7..8fabea45f04297d216e8e4d77a8b731a57beafe8 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# 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      8     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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     fcom   %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      8     1.00                  U     fcoms  (%ecx)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# 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      24    19.00   *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      19    19.00                 U     fdivp  %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, %st(1)
+# 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      24    19.00   *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      24    19.00   *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      19    19.00                 U     fdivrp %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
+# CHECK-NEXT:  1      100   0.50                  U     ffree  %st(0)
 # CHECK-NEXT:  1      8     1.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  1      8     1.00                  U     ficoml (%eax)
 # CHECK-NEXT:  1      8     1.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.50                  U     fld    %st
+# CHECK-NEXT:  1      1     0.50                  U     fld    %st(0)
 # CHECK-NEXT:  1      3     1.00    *             U     flds   (%edx)
 # CHECK-NEXT:  1      3     1.00    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      3     1.00    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# 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      7     1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      7     1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.50                  U     fsin
 # CHECK-NEXT:  1      100   0.50                  U     fsincos
 # CHECK-NEXT:  1      35    35.00                 U     fsqrt
-# CHECK-NEXT:  1      1     0.50                  U     fst    %st
+# CHECK-NEXT:  1      1     0.50                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.50                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.50                  U     fstp   %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# 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      8     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# 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      8     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      8     1.00    *             U     fsubrl (%eax)
@@ -379,7 +379,7 @@ 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, %st(1)
+# 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    -     1.00    -      -      -      -      -      -     fadds  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     faddl  (%ecx)
@@ -391,14 +391,14 @@ fyl2xp1
 # 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
-# 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    -      -      -      -      -      -      -      -     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    -     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)
@@ -412,7 +412,7 @@ fyl2xp1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fcompi %st(3)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdiv   %st, %st(1)
+# 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   1.00    -      -      -      -      -      -     fdivs  (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivl  (%eax)
@@ -420,7 +420,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivp  %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, %st(1)
+# 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   1.00    -      -      -      -      -      -     fdivrs (%ecx)
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -     fdivrl (%eax)
@@ -428,7 +428,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -     fdivrp %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
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     ffree  %st(0)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     ficoms (%ecx)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     ficoml (%eax)
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     ficomps        (%ecx)
@@ -446,7 +446,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fisttps        (%edx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fisttpl        (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fisttpll       (%eax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fld    %st
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fld    %st(0)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -     flds   (%edx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -     fldl   (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -     fldt   (%eax)
@@ -459,7 +459,7 @@ 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, %st(1)
+# 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   1.00    -      -      -      -      -      -     fmuls  (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -     fmull  (%eax)
@@ -479,10 +479,10 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fsin
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fsincos
 # CHECK-NEXT:  -      -      -      -     35.00   -     1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fst    %st
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fst    %st(0)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fsts   (%edx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fstl   (%ecx)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fstp   %st
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     fstp   %st(0)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fstpl  (%edx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fstpl  (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     fstpt  (%eax)
@@ -492,7 +492,7 @@ 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, %st(1)
+# 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    -     1.00    -      -      -      -      -      -     fsubs  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubl  (%eax)
@@ -500,7 +500,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     fsubp  %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, %st(1)
+# 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    -     1.00    -      -      -      -      -      -     fsubrs (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     fsubrl (%eax)
index 43549faa59550dfb2ffb8f0414aa5db00e547e3e..1cba9a7d77fc288392e56eb9376396ff62db39b4 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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:  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:  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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      14    14.00                 U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      14    14.00                 U     fdivrp %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
+# CHECK-NEXT:  1      1     1.00                  U     ffree  %st(0)
 # CHECK-NEXT:  3      11    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      11    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      11    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      5     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      5     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      5     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     1.00                  U     fld    %st
+# CHECK-NEXT:  1      1     1.00                  U     fld    %st(0)
 # CHECK-NEXT:  3      9     1.00    *             U     flds   (%edx)
 # CHECK-NEXT:  3      9     1.00    *             U     fldl   (%ecx)
 # CHECK-NEXT:  3      9     1.00    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.33                  U     fsin
 # CHECK-NEXT:  1      100   0.33                  U     fsincos
 # CHECK-NEXT:  1      24    24.00                 U     fsqrt
-# CHECK-NEXT:  1      1     1.00                  U     fst    %st
+# CHECK-NEXT:  1      1     1.00                  U     fst    %st(0)
 # CHECK-NEXT:  3      6     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     1.00                  U     fstp   %st
+# CHECK-NEXT:  1      1     1.00                  U     fstp   %st(0)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
@@ -373,7 +373,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   faddl    (%ecx)
@@ -385,14 +385,14 @@ fyl2xp1
 # 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
-# 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:  -      -     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:  -      -      -     1.00    -      -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcoms    (%ecx)
@@ -406,7 +406,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(0), %st(1)
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivl    (%eax)
@@ -414,7 +414,7 @@ fyl2xp1
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %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, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(0), %st(1)
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrs   (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrl   (%eax)
@@ -422,7 +422,7 @@ fyl2xp1
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %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
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     ffree    %st(0)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficoms   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficoml   (%eax)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficomps  (%ecx)
@@ -440,7 +440,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttps  (%edx)
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttpl  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttpll (%eax)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fld      %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fld      %st(0)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   flds     (%edx)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   fldl     (%ecx)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   fldt     (%eax)
@@ -453,7 +453,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmull    (%eax)
@@ -473,10 +473,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fsin
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fsincos
 # CHECK-NEXT:  -     24.00  1.00    -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fst      %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fst      %st(0)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fsts     (%edx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstl     (%ecx)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fstp     %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fstp     %st(0)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpl    (%edx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpl    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpt    (%eax)
@@ -486,7 +486,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubl    (%eax)
@@ -494,7 +494,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrl   (%eax)
index 18f3389cc0cc0a8510e16736767ac9dc2aca433b..53006bbc3296e1766c0ac5fb01785952debc5cd8 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  3      1     0.50                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      24    1.00                  U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      24    1.00                  U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      24    1.00                  U     fdivr  %st(2)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      20    1.00                  U     fdivrp %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
+# CHECK-NEXT:  1      1     0.50                  U     ffree  %st(0)
 # CHECK-NEXT:  3      11    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      11    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      11    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      4     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.50                  U     fld    %st
+# CHECK-NEXT:  1      1     0.50                  U     fld    %st(0)
 # CHECK-NEXT:  1      7     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     fsin
 # CHECK-NEXT:  1      100   0.25                  U     fsincos
 # CHECK-NEXT:  1      23    17.00                 U     fsqrt
-# CHECK-NEXT:  1      1     0.50                  U     fst    %st
+# CHECK-NEXT:  1      1     0.50                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.50                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.50                  U     fstp   %st(0)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
@@ -375,7 +375,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fadd       %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     faddl      (%ecx)
@@ -387,14 +387,14 @@ fyl2xp1
 # 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
-# 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    -      -      -      -      -      -     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    -      -      -      -      -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fcoms      (%ecx)
@@ -408,7 +408,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fcompi     %st(3)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
@@ -416,7 +416,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
@@ -424,7 +424,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %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
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     ffree      %st(0)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficoms     (%ecx)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficoml     (%eax)
 # CHECK-NEXT:  -      -      -     2.00   0.50   0.50    -      -      -      -     ficomps    (%ecx)
@@ -442,7 +442,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttps    (%edx)
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttpl    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.33   0.33   1.00    -      -     0.33   fisttpll   (%eax)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fld        %st
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fld        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     flds       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldl       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldt       (%eax)
@@ -455,7 +455,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
@@ -475,10 +475,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsin
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsincos
 # CHECK-NEXT:  -     17.00  1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fst        %st
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fst        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fsts       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstl       (%ecx)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fstp       %st
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     fstp       %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpt      (%eax)
@@ -488,7 +488,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsub       %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubl      (%eax)
@@ -496,7 +496,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubp      %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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     fsubr      %st(2)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     fsubrl     (%eax)
index 3d3b2f3a1bf5bd9851aca2d677dacc8b7f82dc29..fe5de61296f56953a3bd2f88d5d1e858139c7238 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# 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      6     1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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     fcom   %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fcom   %st(3)
 # CHECK-NEXT:  1      6     1.00                  U     fcoms  (%ecx)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# 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      22    17.00   *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      19    17.00                 U     fdivp  %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, %st(1)
+# 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      22    17.00   *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      22    17.00   *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      19    17.00                 U     fdivrp %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
+# CHECK-NEXT:  1      100   1.00                  U     ffree  %st(0)
 # CHECK-NEXT:  1      6     1.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  1      6     1.00                  U     ficoml (%eax)
 # CHECK-NEXT:  1      6     1.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  1      1     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.50                  U     fld    %st
+# CHECK-NEXT:  1      1     0.50                  U     fld    %st(0)
 # CHECK-NEXT:  1      3     1.00    *             U     flds   (%edx)
 # CHECK-NEXT:  1      3     1.00    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      3     1.00    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# 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      8     2.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  1      8     2.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   1.00                  U     fsin
 # CHECK-NEXT:  1      100   1.00                  U     fsincos
 # CHECK-NEXT:  1      40    40.00                 U     fsqrt
-# CHECK-NEXT:  1      1     0.50                  U     fst    %st
+# CHECK-NEXT:  1      1     0.50                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.50                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.50                  U     fstp   %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# 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      6     1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# 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      6     1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      6     1.00    *             U     fsubrl (%eax)
@@ -373,7 +373,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fadd     %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   faddl    (%ecx)
@@ -385,14 +385,14 @@ fyl2xp1
 # 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
-# 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    -      -      -     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    -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fcoms    (%ecx)
@@ -406,7 +406,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fcompi   %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcos
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fdecstp
-# CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdiv     %st, %st(1)
+# 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    -      -      -     1.00   fdivs    (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivl    (%eax)
@@ -414,7 +414,7 @@ fyl2xp1
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivp    %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, %st(1)
+# 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    -      -      -     1.00   fdivrs   (%ecx)
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -     1.00   fdivrl   (%eax)
@@ -422,7 +422,7 @@ fyl2xp1
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     fdivrp   %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
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     ffree    %st(0)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   ficoms   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   ficoml   (%eax)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   ficomps  (%ecx)
@@ -440,7 +440,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fisttps  (%edx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fisttpl  (%ecx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fisttpll (%eax)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fld      %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fld      %st(0)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00   flds     (%edx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00   fldl     (%ecx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00   fldt     (%eax)
@@ -453,7 +453,7 @@ 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, %st(1)
+# 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    -      -      -     1.00   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   fmull    (%eax)
@@ -473,10 +473,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsin
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsincos
 # CHECK-NEXT:  -     40.00   -     1.00    -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fst      %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fst      %st(0)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fsts     (%edx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fstl     (%ecx)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fstp     %st
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     fstp     %st(0)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fstpl    (%edx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fstpl    (%ecx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   fstpt    (%eax)
@@ -486,7 +486,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     frstor   (%eax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fnsave   (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsub     %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubl    (%eax)
@@ -494,7 +494,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubp    %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubs   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fisubl   (%eax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     fsubr    %st(2)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   fsubrl   (%eax)
index cc4269e7760fc7cdf7b7fc5ef5a6ae2c0e0c7318..332f365f1fdd3a971dbedfb0be0e2c715d3db1b9 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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:  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:  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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  3      3     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      14    14.00                 U     fdiv   %st(2)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      14    14.00                 U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      14    14.00                 U     fdivr  %st(2)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      31    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      14    14.00                 U     fdivrp %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
+# CHECK-NEXT:  1      1     1.00                  U     ffree  %st(0)
 # CHECK-NEXT:  3      11    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      11    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      11    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      5     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      5     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      5     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     1.00                  U     fld    %st
+# CHECK-NEXT:  1      1     1.00                  U     fld    %st(0)
 # CHECK-NEXT:  3      9     1.00    *             U     flds   (%edx)
 # CHECK-NEXT:  3      9     1.00    *             U     fldl   (%ecx)
 # CHECK-NEXT:  3      9     1.00    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      5     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      5     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      12    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      12    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.33                  U     fsin
 # CHECK-NEXT:  1      100   0.33                  U     fsincos
 # CHECK-NEXT:  1      24    24.00                 U     fsqrt
-# CHECK-NEXT:  1      1     1.00                  U     fst    %st
+# CHECK-NEXT:  1      1     1.00                  U     fst    %st(0)
 # CHECK-NEXT:  3      6     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     1.00                  U     fstp   %st
+# CHECK-NEXT:  1      1     1.00                  U     fstp   %st(0)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  3      6     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
@@ -373,7 +373,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fadd     %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fadds    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   faddl    (%ecx)
@@ -385,14 +385,14 @@ fyl2xp1
 # 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
-# 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:  -      -     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:  -      -      -     1.00    -      -      -      -     fcom     %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fcom     %st(3)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fcoms    (%ecx)
@@ -406,7 +406,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     fcompi   %st(3)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fcos
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(0), %st(1)
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdiv     %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivs    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivl    (%eax)
@@ -414,7 +414,7 @@ fyl2xp1
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivp    %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, %st(1)
+# CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(0), %st(1)
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivr    %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrs   (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fdivrl   (%eax)
@@ -422,7 +422,7 @@ fyl2xp1
 # CHECK-NEXT:  -     14.00  1.00    -      -      -      -      -     fdivrp   %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
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     ffree    %st(0)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficoms   (%ecx)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficoml   (%eax)
 # CHECK-NEXT:  -      -      -     2.00    -      -     0.50   0.50   ficomps  (%ecx)
@@ -440,7 +440,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttps  (%edx)
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttpl  (%ecx)
 # CHECK-NEXT:  -      -      -     1.00   1.00    -     0.50   0.50   fisttpll (%eax)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fld      %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fld      %st(0)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   flds     (%edx)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   fldl     (%ecx)
 # CHECK-NEXT:  -      -     0.50   0.50    -     1.00   0.50   0.50   fldt     (%eax)
@@ -453,7 +453,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     fmul     %st(2)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmuls    (%ecx)
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   fmull    (%eax)
@@ -473,10 +473,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fsin
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     fsincos
 # CHECK-NEXT:  -     24.00  1.00    -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fst      %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fst      %st(0)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fsts     (%edx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstl     (%ecx)
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fstp     %st
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     fstp     %st(0)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpl    (%edx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpl    (%ecx)
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00   fstpt    (%eax)
@@ -486,7 +486,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsub     %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubs    (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubl    (%eax)
@@ -494,7 +494,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubp    %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, %st(1)
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(0), %st(1)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     fsubr    %st(2)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrs   (%ecx)
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   fsubrl   (%eax)
index 2202e284782490fcbfa3942426c7ee3923ed29a4..7be9d699573ac66cb1e59cd64dd15dbeef646b1a 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      15    1.00                  U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      20    1.00                  U     fdivrp %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
+# CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
 # CHECK-NEXT:  3      11    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      11    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      11    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      4     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.25                  U     fld    %st
+# CHECK-NEXT:  1      1     0.25                  U     fld    %st(0)
 # CHECK-NEXT:  1      7     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     fsin
 # CHECK-NEXT:  1      100   0.25                  U     fsincos
 # CHECK-NEXT:  1      21    7.00                  U     fsqrt
-# CHECK-NEXT:  1      1     0.25                  U     fst    %st
+# CHECK-NEXT:  1      1     0.25                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.25                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.25                  U     fstp   %st(0)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
@@ -375,7 +375,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     faddl      (%ecx)
@@ -387,14 +387,14 @@ fyl2xp1
 # 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
-# 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    -      -      -      -      -      -     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    -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcoms      (%ecx)
@@ -408,7 +408,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
@@ -416,7 +416,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
@@ -424,7 +424,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %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
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficoms     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficoml     (%eax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficomps    (%ecx)
@@ -442,7 +442,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttps    (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttpl    (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttpll   (%eax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     flds       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldl       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldt       (%eax)
@@ -455,7 +455,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
@@ -475,10 +475,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsin
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsincos
 # CHECK-NEXT:  -     7.00   1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fsts       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstl       (%ecx)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpt      (%eax)
@@ -488,7 +488,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubl      (%eax)
@@ -496,7 +496,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrl     (%eax)
index b4bc9b2f05df218d626b0236529e1439a822c716..aecb4a7ab9211be98af8fdde68cc9cce63be3c4a 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fadd   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fadd   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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     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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      2     1.00                  U     fcompi %st(3)
 # 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, %st(1)
+# CHECK-NEXT:  1      15    1.00                  U     fdiv   %st(0), %st(1)
 # CHECK-NEXT:  1      20    1.00                  U     fdiv   %st(2)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  2      22    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      15    1.00                  U     fdivp  %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, %st(1)
+# CHECK-NEXT:  1      20    1.00                  U     fdivr  %st(0), %st(1)
 # CHECK-NEXT:  1      15    1.00                  U     fdivr  %st(2)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  2      27    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      20    1.00                  U     fdivrp %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
+# CHECK-NEXT:  1      100   0.25                  U     ffree  %st(0)
 # CHECK-NEXT:  3      11    2.00                  U     ficoms (%ecx)
 # CHECK-NEXT:  3      11    2.00                  U     ficoml (%eax)
 # CHECK-NEXT:  3      11    2.00                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  3      4     1.00           *      U     fisttps        (%edx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  3      4     1.00           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.25                  U     fld    %st
+# CHECK-NEXT:  1      1     0.25                  U     fld    %st(0)
 # CHECK-NEXT:  1      7     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  1      7     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      4     1.00                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      4     1.00                  U     fmul   %st(2)
 # CHECK-NEXT:  2      11    1.00    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      11    1.00    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     fsin
 # CHECK-NEXT:  1      100   0.25                  U     fsincos
 # CHECK-NEXT:  1      21    7.00                  U     fsqrt
-# CHECK-NEXT:  1      1     0.25                  U     fst    %st
+# CHECK-NEXT:  1      1     0.25                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
-# CHECK-NEXT:  1      1     0.25                  U     fstp   %st
+# CHECK-NEXT:  1      1     0.25                  U     fstp   %st(0)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%edx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  2      1     1.00           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsub   %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsub   %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(0), %st(1)
 # CHECK-NEXT:  1      3     1.00                  U     fsubr  %st(2)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  2      10    1.00    *             U     fsubrl (%eax)
@@ -375,7 +375,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fadd       %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fadds      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     faddl      (%ecx)
@@ -387,14 +387,14 @@ fyl2xp1
 # 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
-# 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    -      -      -      -      -      -     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    -      -     fcom       %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fcom       %st(3)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fcoms      (%ecx)
@@ -408,7 +408,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fcompi     %st(3)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fcos
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     fdecstp
-# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdiv       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivs      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivl      (%eax)
@@ -416,7 +416,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivp      %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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivr      %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrs     (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fdivrl     (%eax)
@@ -424,7 +424,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fdivrp     %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
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     ffree      %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficoms     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficoml     (%eax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     ficomps    (%ecx)
@@ -442,7 +442,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttps    (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttpl    (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00   1.00    -     0.33   fisttpll   (%eax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fld        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     flds       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldl       (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     fldt       (%eax)
@@ -455,7 +455,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(0), %st(1)
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     fmul       %st(2)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmuls      (%ecx)
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     fmull      (%eax)
@@ -475,10 +475,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsin
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fsincos
 # CHECK-NEXT:  -     7.00   1.00    -      -      -      -      -      -      -     fsqrt
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fst        %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fsts       (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstl       (%ecx)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     fstp       %st(0)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%edx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpl      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   fstpt      (%eax)
@@ -488,7 +488,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsub       %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubs      (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubl      (%eax)
@@ -496,7 +496,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubp      %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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     fsubr      %st(2)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrs     (%ecx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     fsubrl     (%eax)
index 8da33440b7ff525fa38b11c3aca771f4d797df2d..2f5f6ef08f1c72d625e741f89fb721f9055e6ac4 100644 (file)
@@ -5,7 +5,7 @@ f2xm1
 
 fabs
 
-fadd %st, %st(1)
+fadd %st(0), %st(1)
 fadd %st(2)
 fadds (%ecx)
 faddl (%ecx)
@@ -21,14 +21,14 @@ fchs
 
 fnclex
 
-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
+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)
 
 fcom %st(1)
 fcom %st(3)
@@ -47,7 +47,7 @@ fcos
 
 fdecstp
 
-fdiv %st, %st(1)
+fdiv %st(0), %st(1)
 fdiv %st(2)
 fdivs (%ecx)
 fdivl (%eax)
@@ -56,7 +56,7 @@ fdivp %st(2)
 fidivs (%ecx)
 fidivl (%eax)
 
-fdivr %st, %st(1)
+fdivr %st(0), %st(1)
 fdivr %st(2)
 fdivrs (%ecx)
 fdivrl (%eax)
@@ -65,7 +65,7 @@ fdivrp %st(2)
 fidivrs (%ecx)
 fidivrl (%eax)
 
-ffree %st
+ffree %st(0)
 
 ficoms (%ecx)
 ficoml (%eax)
@@ -90,7 +90,7 @@ fisttps (%edx)
 fisttpl (%ecx)
 fisttpll (%eax)
 
-fld %st
+fld %st(0)
 flds (%edx)
 fldl (%ecx)
 fldt (%eax)
@@ -106,7 +106,7 @@ fldln2
 fldpi
 fldz
 
-fmul %st, %st(1)
+fmul %st(0), %st(1)
 fmul %st(2)
 fmuls (%ecx)
 fmull (%eax)
@@ -138,10 +138,10 @@ fsincos
 
 fsqrt
 
-fst %st
+fst %st(0)
 fsts (%edx)
 fstl (%ecx)
-fstp %st
+fstp %st(0)
 fstpl (%edx)
 fstpl (%ecx)
 fstpt (%eax)
@@ -153,7 +153,7 @@ fnstsw (%eax)
 frstor (%eax)
 fsave (%eax)
 
-fsub %st, %st(1)
+fsub %st(0), %st(1)
 fsub %st(2)
 fsubs (%ecx)
 fsubl (%eax)
@@ -162,7 +162,7 @@ fsubp %st(2)
 fisubs (%ecx)
 fisubl (%eax)
 
-fsubr %st, %st(1)
+fsubr %st(0), %st(1)
 fsubr %st(2)
 fsubrs (%ecx)
 fsubrl (%eax)
@@ -208,7 +208,7 @@ 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, %st(1)
+# 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      10    1.00    *             U     fadds  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     faddl  (%ecx)
@@ -220,14 +220,14 @@ fyl2xp1
 # 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
-# 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      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      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)
@@ -241,7 +241,7 @@ fyl2xp1
 # CHECK-NEXT:  1      9     0.50                  U     fcompi %st(3)
 # 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, %st(1)
+# 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      22    1.00    *             U     fdivs  (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fdivl  (%eax)
@@ -249,7 +249,7 @@ fyl2xp1
 # CHECK-NEXT:  1      15    1.00                  U     fdivp  %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, %st(1)
+# 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      22    1.00    *             U     fdivrs (%ecx)
 # CHECK-NEXT:  1      22    1.00    *             U     fdivrl (%eax)
@@ -257,7 +257,7 @@ fyl2xp1
 # CHECK-NEXT:  1      15    1.00                  U     fdivrp %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
+# CHECK-NEXT:  1      11    1.00                  U     ffree  %st(0)
 # CHECK-NEXT:  2      12    1.50                  U     ficoms (%ecx)
 # CHECK-NEXT:  2      12    1.50                  U     ficoml (%eax)
 # CHECK-NEXT:  2      12    1.50                  U     ficomps        (%ecx)
@@ -275,7 +275,7 @@ fyl2xp1
 # CHECK-NEXT:  1      12    0.50           *      U     fisttps        (%edx)
 # CHECK-NEXT:  1      12    0.50           *      U     fisttpl        (%ecx)
 # CHECK-NEXT:  1      12    0.50           *      U     fisttpll       (%eax)
-# CHECK-NEXT:  1      1     0.50                  U     fld    %st
+# CHECK-NEXT:  1      1     0.50                  U     fld    %st(0)
 # CHECK-NEXT:  1      8     0.50    *             U     flds   (%edx)
 # CHECK-NEXT:  1      8     0.50    *             U     fldl   (%ecx)
 # CHECK-NEXT:  2      1     0.50    *             U     fldt   (%eax)
@@ -288,7 +288,7 @@ 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, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fmul   %st(0), %st(1)
 # CHECK-NEXT:  1      3     0.50                  U     fmul   %st(2)
 # CHECK-NEXT:  2      10    0.50    *             U     fmuls  (%ecx)
 # CHECK-NEXT:  2      10    0.50    *             U     fmull  (%eax)
@@ -308,10 +308,10 @@ fyl2xp1
 # CHECK-NEXT:  1      100   0.25                  U     fsin
 # CHECK-NEXT:  1      100   0.25                  U     fsincos
 # CHECK-NEXT:  1      20    20.00                 U     fsqrt
-# CHECK-NEXT:  2      5     0.50                  U     fst    %st
+# CHECK-NEXT:  2      5     0.50                  U     fst    %st(0)
 # CHECK-NEXT:  1      1     0.50           *      U     fsts   (%edx)
 # CHECK-NEXT:  1      1     0.50           *      U     fstl   (%ecx)
-# CHECK-NEXT:  2      5     0.50                  U     fstp   %st
+# CHECK-NEXT:  2      5     0.50                  U     fstp   %st(0)
 # CHECK-NEXT:  1      1     0.50           *      U     fstpl  (%edx)
 # CHECK-NEXT:  1      1     0.50           *      U     fstpl  (%ecx)
 # CHECK-NEXT:  1      5     0.50           *      U     fstpt  (%eax)
@@ -321,7 +321,7 @@ 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, %st(1)
+# 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      10    1.00    *             U     fsubs  (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubl  (%eax)
@@ -329,7 +329,7 @@ fyl2xp1
 # CHECK-NEXT:  1      3     1.00                  U     fsubp  %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, %st(1)
+# 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      10    1.00    *             U     fsubrs (%ecx)
 # CHECK-NEXT:  1      10    1.00    *             U     fsubrl (%eax)
@@ -377,7 +377,7 @@ 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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fadd %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fadds        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     faddl        (%ecx)
@@ -389,14 +389,14 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fbstp        (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fchs
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fnclex
-# 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:  -      -      -      -      -      -      -      -      -      -      -      -     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:  -      -      -      -      -      -      -     1.00    -      -      -      -     fcom %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fcom %st(3)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fcoms        (%ecx)
@@ -410,7 +410,7 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -     0.50    -      -     fcompi       %st(3)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fcos
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdecstp
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdiv %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivs        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivl        (%eax)
@@ -418,7 +418,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivp        %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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivr        %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivrs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     fdivrl       (%eax)
@@ -426,7 +426,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     fdivrp       %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
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     1.00    -     ffree        %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.50    -      -     1.50    -     ficoms       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.50    -      -     1.50    -     ficoml       (%eax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.50    -      -     1.50    -     ficomps      (%ecx)
@@ -444,7 +444,7 @@ fyl2xp1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -     0.50   0.50    -     fisttps      (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -     0.50   0.50    -     fisttpl      (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -     0.50   0.50    -     fisttpll     (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -     0.50    -     fld  %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -     0.50    -     fld  %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     flds (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     fldl (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50    -     0.50    -     fldt (%eax)
@@ -457,7 +457,7 @@ 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, %st(1)
+# 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    -      -      -      -      -     0.50   0.50    -      -      -     fmuls        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50   0.50    -      -      -     fmull        (%eax)
@@ -477,10 +477,10 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fsin
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fsincos
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     20.00   -     fsqrt
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     fst  %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     fst  %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     fsts (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     fstl (%ecx)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     fstp %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     fstp %st(0)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     fstpl        (%edx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     fstpl        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -     0.50   0.50    -     fstpt        (%eax)
@@ -490,7 +490,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     frstor       (%eax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     wait
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     fnsave       (%eax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsub %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubs        (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubl        (%eax)
@@ -498,7 +498,7 @@ fyl2xp1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubp        %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, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st(0), %st(1)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     fsubr        %st(2)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubrs       (%ecx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     fsubrl       (%eax)