libbb: change define names in SHA-NI code to match kernel source more closely
No binary (build failed)
—
(log yok)
| @@ -34,10 +34,10 @@ | |
| #define MSG %xmm0 | |
| #define STATE0 %xmm1 | |
| #define STATE1 %xmm2 | |
| - | #define MSGTMP0 %xmm3 |
| - | #define MSGTMP1 %xmm4 |
| - | #define MSGTMP2 %xmm5 |
| - | #define MSGTMP3 %xmm6 |
| + | #define MSG0 %xmm3 |
| + | #define MSG1 %xmm4 |
| + | #define MSG2 %xmm5 |
| + | #define MSG3 %xmm6 |
| #define XMMTMP %xmm7 | |
| @@ -46,9 +46,9 @@ | |
| .balign 8 # allow decoders to fetch at least 2 first insns | |
| sha256_process_block64_shaNI: | |
| - | movu128 76+0*16(%eax), XMMTMP /* ABCD (little-endian dword order) */ |
| + | movu128 76+0*16(%eax), XMMTMP /* ABCD (shown least-significant-dword-first) */ |
| movu128 76+1*16(%eax), STATE1 /* EFGH */ | |
| - | /* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */ |
| + | /* shufps: dwords 0,1 of the result are selected from *2nd* operand, and dwords 2,3 from 1st operand */ |
| mova128 STATE1, STATE0 | |
| /* --- -------------- ABCD -- EFGH */ | |
| shufps SHUF(1,0,1,0), XMMTMP, STATE0 /* FEBA */ | |
| @@ -61,7 +61,7 @@ sha256_process_block64_shaNI: | |
| /* Rounds 0-3 */ | |
| movu128 0*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP0 |
| + | mova128 MSG, MSG0 |
| paddd 0*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| @@ -70,170 +70,170 @@ sha256_process_block64_shaNI: | |
| /* Rounds 4-7 */ | |
| movu128 1*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP1 |
| + | mova128 MSG, MSG1 |
| paddd 1*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 8-11 */ | |
| movu128 2*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP2 |
| + | mova128 MSG, MSG2 |
| paddd 2*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 12-15 */ | |
| movu128 3*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| /* ...to here */ | |
| - | mova128 MSG, MSGTMP3 |
| + | mova128 MSG, MSG3 |
| paddd 3*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 16-19 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 4*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 20-23 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 5*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 24-27 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 6*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 28-31 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 7*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 32-35 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 8*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 36-39 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 9*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 40-43 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 10*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 44-47 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 11*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 48-51 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 12*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 52-55 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 13*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| /* Rounds 56-59 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 14*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| /* Rounds 60-63 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 15*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| @@ -241,7 +241,7 @@ sha256_process_block64_shaNI: | |
| /* Write hash values back in the correct order */ | |
| mova128 STATE0, XMMTMP | |
| - | /* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */ |
| + | /* shufps: dwords 0,1 of the result are selected from *2nd* operand, and dwords 2,3 from 1st operand */ |
| /* --- -------------- HGDC -- FEBA */ | |
| shufps SHUF(3,2,3,2), STATE1, STATE0 /* ABCD */ | |
| shufps SHUF(1,0,1,0), STATE1, XMMTMP /* EFGH */ | |
| @@ -34,10 +34,10 @@ | |
| #define MSG %xmm0 | |
| #define STATE0 %xmm1 | |
| #define STATE1 %xmm2 | |
| - | #define MSGTMP0 %xmm3 |
| - | #define MSGTMP1 %xmm4 |
| - | #define MSGTMP2 %xmm5 |
| - | #define MSGTMP3 %xmm6 |
| + | #define MSG0 %xmm3 |
| + | #define MSG1 %xmm4 |
| + | #define MSG2 %xmm5 |
| + | #define MSG3 %xmm6 |
| #define XMMTMP %xmm7 | |
| @@ -49,9 +49,9 @@ | |
| .balign 8 # allow decoders to fetch at least 2 first insns | |
| sha256_process_block64_shaNI: | |
| - | movu128 80+0*16(%rdi), XMMTMP /* ABCD (little-endian dword order) */ |
| + | movu128 80+0*16(%rdi), XMMTMP /* ABCD (shown least-significant-dword-first) */ |
| movu128 80+1*16(%rdi), STATE1 /* EFGH */ | |
| - | /* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */ |
| + | /* shufps: dwords 0,1 of the result are selected from *2nd* operand, and dwords 2,3 from 1st operand */ |
| mova128 STATE1, STATE0 | |
| /* --- -------------- ABCD -- EFGH */ | |
| shufps SHUF(1,0,1,0), XMMTMP, STATE0 /* FEBA */ | |
| @@ -68,7 +68,7 @@ sha256_process_block64_shaNI: | |
| /* Rounds 0-3 */ | |
| movu128 0*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP0 |
| + | mova128 MSG, MSG0 |
| paddd 0*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| @@ -77,170 +77,170 @@ sha256_process_block64_shaNI: | |
| /* Rounds 4-7 */ | |
| movu128 1*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP1 |
| + | mova128 MSG, MSG1 |
| paddd 1*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 8-11 */ | |
| movu128 2*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| - | mova128 MSG, MSGTMP2 |
| + | mova128 MSG, MSG2 |
| paddd 2*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 12-15 */ | |
| movu128 3*16(DATA_PTR), MSG | |
| pshufb XMMTMP, MSG | |
| /* ...to here */ | |
| - | mova128 MSG, MSGTMP3 |
| + | mova128 MSG, MSG3 |
| paddd 3*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 16-19 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 4*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 20-23 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 5*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 24-27 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 6*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 28-31 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 7*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 32-35 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 8*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 36-39 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 9*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP1, MSGTMP0 |
| + | sha256msg1 MSG1, MSG0 |
| /* Rounds 40-43 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 10*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP2, MSGTMP1 |
| + | sha256msg1 MSG2, MSG1 |
| /* Rounds 44-47 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 11*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP3, XMMTMP |
| - | palignr $4, MSGTMP2, XMMTMP |
| - | paddd XMMTMP, MSGTMP0 |
| - | sha256msg2 MSGTMP3, MSGTMP0 |
| + | mova128 MSG3, XMMTMP |
| + | palignr $4, MSG2, XMMTMP |
| + | paddd XMMTMP, MSG0 |
| + | sha256msg2 MSG3, MSG0 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP3, MSGTMP2 |
| + | sha256msg1 MSG3, MSG2 |
| /* Rounds 48-51 */ | |
| - | mova128 MSGTMP0, MSG |
| + | mova128 MSG0, MSG |
| paddd 12*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP0, XMMTMP |
| - | palignr $4, MSGTMP3, XMMTMP |
| - | paddd XMMTMP, MSGTMP1 |
| - | sha256msg2 MSGTMP0, MSGTMP1 |
| + | mova128 MSG0, XMMTMP |
| + | palignr $4, MSG3, XMMTMP |
| + | paddd XMMTMP, MSG1 |
| + | sha256msg2 MSG0, MSG1 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| - | sha256msg1 MSGTMP0, MSGTMP3 |
| + | sha256msg1 MSG0, MSG3 |
| /* Rounds 52-55 */ | |
| - | mova128 MSGTMP1, MSG |
| + | mova128 MSG1, MSG |
| paddd 13*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP1, XMMTMP |
| - | palignr $4, MSGTMP0, XMMTMP |
| - | paddd XMMTMP, MSGTMP2 |
| - | sha256msg2 MSGTMP1, MSGTMP2 |
| + | mova128 MSG1, XMMTMP |
| + | palignr $4, MSG0, XMMTMP |
| + | paddd XMMTMP, MSG2 |
| + | sha256msg2 MSG1, MSG2 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| /* Rounds 56-59 */ | |
| - | mova128 MSGTMP2, MSG |
| + | mova128 MSG2, MSG |
| paddd 14*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| - | mova128 MSGTMP2, XMMTMP |
| - | palignr $4, MSGTMP1, XMMTMP |
| - | paddd XMMTMP, MSGTMP3 |
| - | sha256msg2 MSGTMP2, MSGTMP3 |
| + | mova128 MSG2, XMMTMP |
| + | palignr $4, MSG1, XMMTMP |
| + | paddd XMMTMP, MSG3 |
| + | sha256msg2 MSG2, MSG3 |
| shuf128_32 $0x0E, MSG, MSG | |
| sha256rnds2 MSG, STATE1, STATE0 | |
| /* Rounds 60-63 */ | |
| - | mova128 MSGTMP3, MSG |
| + | mova128 MSG3, MSG |
| paddd 15*16-8*16(SHA256CONSTANTS), MSG | |
| sha256rnds2 MSG, STATE0, STATE1 | |
| shuf128_32 $0x0E, MSG, MSG | |
| @@ -252,7 +252,7 @@ sha256_process_block64_shaNI: | |
| /* Write hash values back in the correct order */ | |
| mova128 STATE0, XMMTMP | |
| - | /* shufps takes dwords 0,1 from *2nd* operand, and dwords 2,3 from 1st one */ |
| + | /* shufps: dwords 0,1 of the result are selected from *2nd* operand, and dwords 2,3 from 1st operand */ |
| /* --- -------------- HGDC -- FEBA */ | |
| shufps SHUF(3,2,3,2), STATE1, STATE0 /* ABCD */ | |
| shufps SHUF(1,0,1,0), STATE1, XMMTMP /* EFGH */ | |