aboutsummaryrefslogtreecommitdiffstats
path: root/modules/alg_ia32
diff options
context:
space:
mode:
authorlloyd <[email protected]>2006-08-15 12:03:24 +0000
committerlloyd <[email protected]>2006-08-15 12:03:24 +0000
commit9013cfab2fc2e371a02ba4fdab12dfc374eb1189 (patch)
treed7d96194e450a130e9366f082b0d05f01ea994a5 /modules/alg_ia32
parent1201cc618d3e2828eb683337680a6bc8b7540759 (diff)
Reorder the linear transformations for (nominally) better instruction
scheduling.
Diffstat (limited to 'modules/alg_ia32')
-rw-r--r--modules/alg_ia32/serp_asm.S20
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) ; \