Commit db53d97a authored by Keith Randall's avatar Keith Randall

runtime: Use aligned loads for AES key schedule.

R=rsc, minux.ma, khr
CC=golang-dev
https://golang.org/cl/7763050
parent a63d5dd1
......@@ -742,8 +742,8 @@ TEXT runtime·aeshashstr(SB),7,$0
TEXT runtime·aeshashbody(SB),7,$0
MOVL (DX), X0 // seed to low 32 bits of xmm0
PINSRD $1, CX, X0 // size to next 32 bits of xmm0
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
MOVO runtime·aeskeysched+0(SB), X2
MOVO runtime·aeskeysched+16(SB), X3
aesloop:
CMPL CX, $16
JB aesloopend
......@@ -791,11 +791,9 @@ TEXT runtime·aeshash32(SB),7,$0
MOVL 12(SP), AX // ptr to data
MOVL (DX), X0 // seed
PINSRD $1, (AX), X0 // data
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
AESENC X2, X0
AESENC X3, X0
AESENC X2, X0
AESENC runtime·aeskeysched+0(SB), X0
AESENC runtime·aeskeysched+16(SB), X0
AESENC runtime·aeskeysched+0(SB), X0
MOVL X0, (DX)
RET
......@@ -804,11 +802,9 @@ TEXT runtime·aeshash64(SB),7,$0
MOVL 12(SP), AX // ptr to data
MOVQ (AX), X0 // data
PINSRD $2, (DX), X0 // seed
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
AESENC X2, X0
AESENC X3, X0
AESENC X2, X0
AESENC runtime·aeskeysched+0(SB), X0
AESENC runtime·aeskeysched+16(SB), X0
AESENC runtime·aeskeysched+0(SB), X0
MOVL X0, (DX)
RET
......
......@@ -762,8 +762,8 @@ TEXT runtime·aeshashstr(SB),7,$0
TEXT runtime·aeshashbody(SB),7,$0
MOVQ (DX), X0 // seed to low 64 bits of xmm0
PINSRQ $1, CX, X0 // size to high 64 bits of xmm0
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
MOVO runtime·aeskeysched+0(SB), X2
MOVO runtime·aeskeysched+16(SB), X3
aesloop:
CMPQ CX, $16
JB aesloopend
......@@ -811,11 +811,9 @@ TEXT runtime·aeshash32(SB),7,$0
MOVQ 24(SP), AX // ptr to data
MOVQ (DX), X0 // seed
PINSRD $2, (AX), X0 // data
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
AESENC X2, X0
AESENC X3, X0
AESENC X2, X0
AESENC runtime·aeskeysched+0(SB), X0
AESENC runtime·aeskeysched+16(SB), X0
AESENC runtime·aeskeysched+0(SB), X0
MOVQ X0, (DX)
RET
......@@ -824,11 +822,9 @@ TEXT runtime·aeshash64(SB),7,$0
MOVQ 24(SP), AX // ptr to data
MOVQ (DX), X0 // seed
PINSRQ $1, (AX), X0 // data
MOVOU runtime·aeskeysched+0(SB), X2
MOVOU runtime·aeskeysched+16(SB), X3
AESENC X2, X0
AESENC X3, X0
AESENC X2, X0
AESENC runtime·aeskeysched+0(SB), X0
AESENC runtime·aeskeysched+16(SB), X0
AESENC runtime·aeskeysched+0(SB), X0
MOVQ X0, (DX)
RET
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment