diff options
author | lloyd <[email protected]> | 2006-08-15 12:03:24 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2006-08-15 12:03:24 +0000 |
commit | 9013cfab2fc2e371a02ba4fdab12dfc374eb1189 (patch) | |
tree | d7d96194e450a130e9366f082b0d05f01ea994a5 /modules | |
parent | 1201cc618d3e2828eb683337680a6bc8b7540759 (diff) |
Reorder the linear transformations for (nominally) better instruction
scheduling.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/alg_ia32/serp_asm.S | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/modules/alg_ia32/serp_asm.S b/modules/alg_ia32/serp_asm.S index 30c154516..78af324fb 100644 --- a/modules/alg_ia32/serp_asm.S +++ b/modules/alg_ia32/serp_asm.S @@ -395,19 +395,19 @@ START_LISTING(serp_asm.S) #define TRANSFORM(A, B, C, D, T) \ ROTL_IMM(A, 13) ; \ ROTL_IMM(C, 3) ; \ - XOR(B, A) ; \ - XOR(B, C) ; \ - XOR(D, C) ; \ ASSIGN(T, A) ; \ SHL_IMM(T, 3) ; \ + XOR(B, A) ; \ + XOR(D, C) ; \ + XOR(B, C) ; \ XOR(D, T) ; \ ROTL_IMM(B, 1) ; \ ROTL_IMM(D, 7) ; \ - XOR(A, B) ; \ - XOR(A, D) ; \ - XOR(C, D) ; \ ASSIGN(T, B) ; \ SHL_IMM(T, 7) ; \ + XOR(A, B) ; \ + XOR(C, D) ; \ + XOR(A, D) ; \ XOR(C, T) ; \ ROTL_IMM(A, 5) ; \ ROTL_IMM(C, 22) ; @@ -417,18 +417,18 @@ START_LISTING(serp_asm.S) ROTR_IMM(A, 5) ; \ ASSIGN(T, B) ; \ SHL_IMM(T, 7) ; \ - XOR(C, D) ; \ - XOR(C, T) ; \ XOR(A, B) ; \ + XOR(C, D) ; \ XOR(A, D) ; \ + XOR(C, T) ; \ ROTR_IMM(D, 7) ; \ ROTR_IMM(B, 1) ; \ ASSIGN(T, A) ; \ SHL_IMM(T, 3) ; \ - XOR(D, T) ; \ - XOR(D, C) ; \ XOR(B, C) ; \ + XOR(D, C) ; \ XOR(B, A) ; \ + XOR(D, T) ; \ ROTR_IMM(C, 3) ; \ ROTR_IMM(A, 13) ; \ |