fix unsafe read of Y in assembly kernel
This commit is contained in:
parent
8d5a9c2f98
commit
5cc1111383
|
@ -452,11 +452,6 @@
|
||||||
|
|
||||||
MOVDDUP(4 * SIZE, A1, a1)
|
MOVDDUP(4 * SIZE, A1, a1)
|
||||||
|
|
||||||
movsd 0 * SIZE(YY), yy1
|
|
||||||
movhpd 1 * SIZE(YY), yy1
|
|
||||||
movsd 2 * SIZE(YY), yy2
|
|
||||||
movhpd 3 * SIZE(YY), yy2
|
|
||||||
|
|
||||||
movapd 8 * SIZE(XX), xtemp1
|
movapd 8 * SIZE(XX), xtemp1
|
||||||
movapd 10 * SIZE(XX), xtemp2
|
movapd 10 * SIZE(XX), xtemp2
|
||||||
movapd 12 * SIZE(XX), xtemp3
|
movapd 12 * SIZE(XX), xtemp3
|
||||||
|
@ -475,6 +470,12 @@
|
||||||
MOVDDUP(6 * SIZE - (4 * SIZE), A2, a2)
|
MOVDDUP(6 * SIZE - (4 * SIZE), A2, a2)
|
||||||
ALIGN_3
|
ALIGN_3
|
||||||
|
|
||||||
|
.L12_prep:
|
||||||
|
movsd 0 * SIZE(YY), yy1
|
||||||
|
movhpd 1 * SIZE(YY), yy1
|
||||||
|
movsd 2 * SIZE(YY), yy2
|
||||||
|
movhpd 3 * SIZE(YY), yy2
|
||||||
|
|
||||||
.L12:
|
.L12:
|
||||||
movapd xtemp1, xt1
|
movapd xtemp1, xt1
|
||||||
mulpd a1, xt1
|
mulpd a1, xt1
|
||||||
|
@ -608,8 +609,6 @@
|
||||||
|
|
||||||
movlpd yy2, 6 * SIZE(YY)
|
movlpd yy2, 6 * SIZE(YY)
|
||||||
movhpd yy2, 7 * SIZE(YY)
|
movhpd yy2, 7 * SIZE(YY)
|
||||||
movsd 10 * SIZE(YY), yy2
|
|
||||||
movhpd 11 * SIZE(YY), yy2
|
|
||||||
|
|
||||||
movapd xtemp2, xt1
|
movapd xtemp2, xt1
|
||||||
movapd 18 * SIZE(XX), xtemp2
|
movapd 18 * SIZE(XX), xtemp2
|
||||||
|
@ -621,8 +620,6 @@
|
||||||
|
|
||||||
movlpd yy1, 4 * SIZE(YY)
|
movlpd yy1, 4 * SIZE(YY)
|
||||||
movhpd yy1, 5 * SIZE(YY)
|
movhpd yy1, 5 * SIZE(YY)
|
||||||
movsd 8 * SIZE(YY), yy1
|
|
||||||
movhpd 9 * SIZE(YY), yy1
|
|
||||||
|
|
||||||
subq $-16 * SIZE, XX
|
subq $-16 * SIZE, XX
|
||||||
addq $ 8 * SIZE, YY
|
addq $ 8 * SIZE, YY
|
||||||
|
@ -630,7 +627,8 @@
|
||||||
addq $ 8 * SIZE, A2
|
addq $ 8 * SIZE, A2
|
||||||
|
|
||||||
decq I
|
decq I
|
||||||
jg .L12
|
jg .L12_prep
|
||||||
|
jmp .L15
|
||||||
ALIGN_3
|
ALIGN_3
|
||||||
|
|
||||||
.L14:
|
.L14:
|
||||||
|
@ -641,7 +639,6 @@
|
||||||
jle .L16
|
jle .L16
|
||||||
|
|
||||||
MOVDDUP(6 * SIZE - (4 * SIZE), A2, a2)
|
MOVDDUP(6 * SIZE - (4 * SIZE), A2, a2)
|
||||||
jmp .L15_pastcheck
|
|
||||||
|
|
||||||
.L15:
|
.L15:
|
||||||
movq M, I
|
movq M, I
|
||||||
|
@ -650,6 +647,11 @@
|
||||||
testq $2, I
|
testq $2, I
|
||||||
jle .L16
|
jle .L16
|
||||||
|
|
||||||
|
movsd 0 * SIZE(YY), yy1
|
||||||
|
movhpd 1 * SIZE(YY), yy1
|
||||||
|
movsd 2 * SIZE(YY), yy2
|
||||||
|
movhpd 3 * SIZE(YY), yy2
|
||||||
|
|
||||||
.L15_pastcheck:
|
.L15_pastcheck:
|
||||||
movapd xtemp1, xt1
|
movapd xtemp1, xt1
|
||||||
mulpd a1, xt1
|
mulpd a1, xt1
|
||||||
|
@ -705,8 +707,6 @@
|
||||||
|
|
||||||
movlpd yy2, 2 * SIZE(YY)
|
movlpd yy2, 2 * SIZE(YY)
|
||||||
movhpd yy2, 3 * SIZE(YY)
|
movhpd yy2, 3 * SIZE(YY)
|
||||||
movsd 6 * SIZE(YY), yy2
|
|
||||||
movhpd 7 * SIZE(YY), yy2
|
|
||||||
|
|
||||||
movapd xtemp2, xt1
|
movapd xtemp2, xt1
|
||||||
movapd 10 * SIZE(XX), xtemp2
|
movapd 10 * SIZE(XX), xtemp2
|
||||||
|
@ -717,8 +717,6 @@
|
||||||
|
|
||||||
movlpd yy1, 0 * SIZE(YY)
|
movlpd yy1, 0 * SIZE(YY)
|
||||||
movhpd yy1, 1 * SIZE(YY)
|
movhpd yy1, 1 * SIZE(YY)
|
||||||
movsd 4 * SIZE(YY), yy1
|
|
||||||
movhpd 5 * SIZE(YY), yy1
|
|
||||||
|
|
||||||
addq $4 * SIZE, YY
|
addq $4 * SIZE, YY
|
||||||
addq $4 * SIZE, A1
|
addq $4 * SIZE, A1
|
||||||
|
@ -731,6 +729,9 @@
|
||||||
|
|
||||||
MOVDDUP(1 * SIZE, A1, a2)
|
MOVDDUP(1 * SIZE, A1, a2)
|
||||||
|
|
||||||
|
movsd 0 * SIZE(YY), yy1
|
||||||
|
movhpd 1 * SIZE(YY), yy1
|
||||||
|
|
||||||
movapd xtemp1, xt1
|
movapd xtemp1, xt1
|
||||||
mulpd a1, xt1
|
mulpd a1, xt1
|
||||||
mulpd atemp1, a1
|
mulpd atemp1, a1
|
||||||
|
|
Loading…
Reference in New Issue