File tree Expand file tree Collapse file tree 2 files changed +3
-5
lines changed Expand file tree Collapse file tree 2 files changed +3
-5
lines changed Original file line number Diff line number Diff line change @@ -3591,10 +3591,10 @@ static bool isX87Reg(unsigned Reg) {
3591
3591
3592
3592
// / check if the instruction is X87 instruction
3593
3593
bool X86::isX87Instruction (MachineInstr &MI) {
3594
- // Call defs X87 register, so we special case it here because
3594
+ // Call and inlineasm defs X87 register, so we special case it here because
3595
3595
// otherwise calls are incorrectly flagged as x87 instructions
3596
3596
// as a result.
3597
- if (MI.isCall ())
3597
+ if (MI.isCall () || MI. isInlineAsm () )
3598
3598
return false ;
3599
3599
for (const MachineOperand &MO : MI.operands ()) {
3600
3600
if (!MO.isReg ())
Original file line number Diff line number Diff line change @@ -81,20 +81,17 @@ define double @bar(double %0) #0 {
81
81
; X64-NEXT: #APP
82
82
; X64-NEXT: ldmxcsr 0
83
83
; X64-NEXT: #NO_APP
84
- ; X64-NEXT: wait
85
84
; X64-NEXT: movsd {{.*#+}} xmm2 = [1.0E+0,0.0E+0]
86
85
; X64-NEXT: movapd %xmm2, %xmm3
87
86
; X64-NEXT: divsd %xmm0, %xmm3
88
87
; X64-NEXT: #APP
89
88
; X64-NEXT: ldmxcsr 0
90
89
; X64-NEXT: #NO_APP
91
- ; X64-NEXT: wait
92
90
; X64-NEXT: movapd %xmm2, %xmm1
93
91
; X64-NEXT: divsd %xmm0, %xmm1
94
92
; X64-NEXT: #APP
95
93
; X64-NEXT: ldmxcsr 0
96
94
; X64-NEXT: #NO_APP
97
- ; X64-NEXT: wait
98
95
; X64-NEXT: divsd %xmm0, %xmm2
99
96
; X64-NEXT: movapd %xmm3, %xmm0
100
97
; X64-NEXT: callq fma@PLT
@@ -105,6 +102,7 @@ define double @bar(double %0) #0 {
105
102
; X86: # %bb.0:
106
103
; X86-NEXT: subl $28, %esp
107
104
; X86-NEXT: fldl {{[0-9]+}}(%esp)
105
+ ; X86-NEXT: wait
108
106
; X86-NEXT: #APP
109
107
; X86-NEXT: fldcw 0
110
108
; X86-NEXT: #NO_APP
You can’t perform that action at this time.
0 commit comments