Simplify the implementation of Scale().
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
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
Assignee | ||
Comment 1•3 years ago
|
||
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
Comment 3•3 years ago
|
||
bugherder |
Description
•