Closed Bug 1753507 Opened 3 years ago Closed 3 years ago

Simplify the implementation of Scale().

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: jrmuizel, Assigned: jrmuizel)

Details

Attachments

(1 file)

Rect::Scale(float, float): # @Rect::Scale(float, float)
movss xmm2, dword ptr [rdi] # xmm2 = mem[0],zero,zero,zero
movss xmm3, dword ptr [rdi + 4] # xmm3 = mem[0],zero,zero,zero
movss xmm4, dword ptr [rdi + 8] # xmm4 = mem[0],zero,zero,zero
addss xmm4, xmm2
mulss xmm4, xmm0
movss xmm5, dword ptr [rdi + 12] # xmm5 = mem[0],zero,zero,zero
addss xmm5, xmm3
mulss xmm5, xmm1
mulss xmm2, xmm0
movss dword ptr [rdi], xmm2
mulss xmm3, xmm1
movss dword ptr [rdi + 4], xmm3
subss xmm4, xmm2
movss dword ptr [rdi + 8], xmm4
subss xmm5, xmm3
movss dword ptr [rdi + 12], xmm5
ret

vs

Rect::Scale(float, float): # @Rect::Scale(float, float)
movups xmm2, xmmword ptr [rdi]
unpcklps xmm0, xmm1 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movlhps xmm0, xmm0 # xmm0 = xmm0[0,0]
mulps xmm0, xmm2
movups xmmword ptr [rdi], xmm0
ret

Rect::Scale(float, float): # @Rect::Scale(float, float)
movss xmm2, dword ptr [rdi] # xmm2 = mem[0],zero,zero,zero
movss xmm3, dword ptr [rdi + 4] # xmm3 = mem[0],zero,zero,zero
movss xmm4, dword ptr [rdi + 8] # xmm4 = mem[0],zero,zero,zero
addss xmm4, xmm2
mulss xmm4, xmm0
movss xmm5, dword ptr [rdi + 12] # xmm5 = mem[0],zero,zero,zero
addss xmm5, xmm3
mulss xmm5, xmm1
mulss xmm2, xmm0
movss dword ptr [rdi], xmm2
mulss xmm3, xmm1
movss dword ptr [rdi + 4], xmm3
subss xmm4, xmm2
movss dword ptr [rdi + 8], xmm4
subss xmm5, xmm3
movss dword ptr [rdi + 12], xmm5
ret

vs

Rect::Scale(float, float): # @Rect::Scale(float, float)
movups xmm2, xmmword ptr [rdi]
unpcklps xmm0, xmm1 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movlhps xmm0, xmm0 # xmm0 = xmm0[0,0]
mulps xmm0, xmm2
movups xmmword ptr [rdi], xmm0
ret

Pushed by jmuizelaar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1beef8eefd61 Simplify the implementation of BaseRect::Scale(). r=gfx-reviewers,bradwerth
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: