Skip to content
Permalink
Browse files
REGRESSION(r148790) Made 7 tests fail on x86 32bit
https://bugs.webkit.org/show_bug.cgi?id=114913

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The X87 register was not freed before some calls. Instead
of inserting resetX87Registers to the last call sites,
the two X87 registers are now freed in every call.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/instructions.rb:
* offlineasm/x86.rb:

LayoutTests:

Unskip the five tests now passsing again.

* platform/qt/TestExpectations:

Canonical link: https://commits.webkit.org/137777@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
carewolf committed Aug 15, 2013
1 parent d1fb0a6 commit bb57637b7dcb04d3bbe1ba868c54ddc1fd0d29a4
@@ -1,3 +1,14 @@
2013-08-15 Allan Sandfeld Jensen <allan.jensen@digia.com>

REGRESSION(r148790) Made 7 tests fail on x86 32bit
https://bugs.webkit.org/show_bug.cgi?id=114913

Reviewed by Filip Pizlo.

Unskip the five tests now passsing again.

* platform/qt/TestExpectations:

2013-08-15 Simon Pena <simon.pena@samsung.com>

[GTK] Unreviewed gardening. Rebaseline after r154057.
@@ -1385,11 +1385,6 @@ webkit.org/b/112680 jquery/manipulation.html [ Skip ]
inspector/console/console-filter-test.html

# REGRESSION(r148790) Made 7 tests fail on x86 32bit
webkit.org/b/114913 fast/canvas/canvas-arc-360-winding.html [ Skip ]
webkit.org/b/114913 fast/canvas/canvas-fillPath-alpha-shadow.html [ Skip ]
webkit.org/b/114913 fast/canvas/canvas-fillPath-gradient-shadow.html [ Skip ]
webkit.org/b/114913 fast/canvas/canvas-fillPath-pattern-shadow.html [ Skip ]
webkit.org/b/114913 fast/canvas/canvas-strokePath-alpha-shadow.html [ Skip ]
webkit.org/b/114913 sputnik/Conformance/15_Native_Objects/15.8_Math/15.8.2/15.8.2.13_pow/S15.8.2.13_A24.html [ Skip ]
webkit.org/b/114913 sputnik/Conformance/15_Native_Objects/15.8_Math/15.8.2/15.8.2.8_exp/S15.8.2.8_A6.html [ Skip ]

@@ -1,3 +1,19 @@
2013-08-15 Allan Sandfeld Jensen <allan.jensen@digia.com>

REGRESSION(r148790) Made 7 tests fail on x86 32bit
https://bugs.webkit.org/show_bug.cgi?id=114913

Reviewed by Filip Pizlo.

The X87 register was not freed before some calls. Instead
of inserting resetX87Registers to the last call sites,
the two X87 registers are now freed in every call.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/instructions.rb:
* offlineasm/x86.rb:

2013-08-14 Michael Saboff <msaboff@apple.com>

Fixed jit on Win64.
@@ -102,7 +102,6 @@ macro cCall2(function, arg1, arg2)
move arg2, t1
call function
elsif X86
resetX87Stack
poke arg1, 0
poke arg2, 1
call function
@@ -126,7 +125,6 @@ macro cCall4(function, arg1, arg2, arg3, arg4)
move arg4, t3
call function
elsif X86
resetX87Stack
poke arg1, 0
poke arg2, 1
poke arg3, 2
@@ -81,9 +81,6 @@ end
macro prepareStateForCCall()
leap [PB, PC, 8], PC
move PB, t3
if X86_64
resetX87Stack
end
end

macro restoreStateAfterCCall()
@@ -254,8 +254,7 @@
X86_INSTRUCTIONS =
[
"cdqi",
"idivi",
"resetX87Stack"
"idivi"
]

ARM_INSTRUCTIONS =
@@ -1149,6 +1149,12 @@ def lowerX86Common
when "break"
$asm.puts "int $3"
when "call"
if useX87
2.times {
| offset |
$asm.puts "ffree %st(#{offset})"
}
end
$asm.puts "call #{operands[0].x86CallOperand(:ptr)}"
when "ret"
$asm.puts "ret"
@@ -1336,13 +1342,6 @@ def lowerX86Common
$asm.puts "leal #{operands[0].x86AddressOperand(:int)}, #{operands[1].x86Operand(:int)}"
when "leap"
$asm.puts "lea#{x86Suffix(:ptr)} #{operands[0].x86AddressOperand(:ptr)}, #{operands[1].x86Operand(:ptr)}"
when "resetX87Stack"
if useX87
2.times {
| offset |
$asm.puts "ffree %st(#{offset})"
}
end
else
lowerDefault
end

0 comments on commit bb57637

Please sign in to comment.