Hopefully remove the remaining %ecx clobbering cases in chacha_386
This commit is contained in:
parent
8509cc1bd7
commit
084bfe67fd
|
@ -41,7 +41,8 @@ TEXT ·supportsSSSE3(SB), NOSPLIT, $0-1
|
||||||
CPUID
|
CPUID
|
||||||
SHRL $9, CX
|
SHRL $9, CX
|
||||||
ANDL $1, CX
|
ANDL $1, CX
|
||||||
MOVB CX, ret+0(FP)
|
MOVB CX, DX
|
||||||
|
MOVB DX, ret+0(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
#define Dst DI
|
#define Dst DI
|
||||||
|
@ -163,18 +164,19 @@ CHACHA_LOOP:
|
||||||
JMP GENERATE_KEYSTREAM // There is at least one more plaintext byte
|
JMP GENERATE_KEYSTREAM // There is at least one more plaintext byte
|
||||||
|
|
||||||
BUFFER_KEYSTREAM:
|
BUFFER_KEYSTREAM:
|
||||||
|
MOVL Len, Rounds // Use Rounds as tmp. register for Len - we don't need Rounds anymore
|
||||||
MOVL block+24(FP), State
|
MOVL block+24(FP), State
|
||||||
MOVOU X4, 0(State)
|
MOVOU X4, 0(State)
|
||||||
MOVOU X5, 16(State)
|
MOVOU X5, 16(State)
|
||||||
MOVOU X6, 32(State)
|
MOVOU X6, 32(State)
|
||||||
MOVOU X7, 48(State)
|
MOVOU X7, 48(State)
|
||||||
MOVL Len, Rounds // Use Rounds as tmp. register for Len - we don't need Rounds anymore
|
|
||||||
FINALIZE(Dst, Src, State, Rounds, Tmp0, Tmp1)
|
FINALIZE(Dst, Src, State, Rounds, Tmp0, Tmp1)
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
|
MOVL Len, Tmp0 // Number of bytes written to the keystream buffer - 0 iff Len mod 64 == 0
|
||||||
|
MOVL Tmp0, ret+36(FP)
|
||||||
MOVL state+28(FP), State
|
MOVL state+28(FP), State
|
||||||
MOVOU X3, 3*16(State)
|
MOVOU X3, 3*16(State)
|
||||||
MOVL Len, ret+36(FP) // Number of bytes written to the keystream buffer - 0 iff Len mod 64 == 0
|
|
||||||
RET
|
RET
|
||||||
|
|
||||||
#undef State
|
#undef State
|
||||||
|
@ -267,10 +269,11 @@ BUFFER_KEYSTREAM:
|
||||||
MOVL Stack, Tmp2 // set BP to SP so that DONE resets SP correctly
|
MOVL Stack, Tmp2 // set BP to SP so that DONE resets SP correctly
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
|
MOVL Len, Tmp0
|
||||||
|
MOVL Tmp0, ret+36(FP)
|
||||||
MOVL Tmp2, Stack // restore stack pointer
|
MOVL Tmp2, Stack // restore stack pointer
|
||||||
MOVL state+28(FP), Tmp0
|
MOVL state+28(FP), Tmp0
|
||||||
MOVOU X3, 3*16(Tmp0)
|
MOVOU X3, 3*16(Tmp0)
|
||||||
MOVL Len, ret+36(FP)
|
|
||||||
RET
|
RET
|
||||||
|
|
||||||
#undef Dst
|
#undef Dst
|
||||||
|
|
Loading…
Reference in New Issue