summaryrefslogtreecommitdiffstats
path: root/crypto/modes/asm/ghash-c64xplus.pl
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2012-11-28 13:19:10 +0000
committerAndy Polyakov <appro@openssl.org>2012-11-28 13:19:10 +0000
commit904732f68bcc6ebd3f8961a9272bc811dc26bcbd (patch)
tree7ab988b23467d2545e4aa2e50bd176bf6923fc2a /crypto/modes/asm/ghash-c64xplus.pl
parentcf5ecc3e1fd112dd8a544bfb26bfb96c96b604c7 (diff)
C64x+ assembly pack: improve EABI support.
Diffstat (limited to 'crypto/modes/asm/ghash-c64xplus.pl')
-rw-r--r--crypto/modes/asm/ghash-c64xplus.pl9
1 files changed, 7 insertions, 2 deletions
diff --git a/crypto/modes/asm/ghash-c64xplus.pl b/crypto/modes/asm/ghash-c64xplus.pl
index 1ac4d927d0..409b0d61b9 100644
--- a/crypto/modes/asm/ghash-c64xplus.pl
+++ b/crypto/modes/asm/ghash-c64xplus.pl
@@ -35,6 +35,11 @@ open STDOUT,">$output";
$code.=<<___;
.text
+ .if __TI_EABI__
+ .asg gcm_gmult_1bit,_gcm_gmult_1bit
+ .asg gcm_gmult_4bit,_gcm_gmult_4bit
+ .asg gcm_ghash_4bit,_gcm_ghash_4bit
+ .endif
.asg B3,RA
@@ -144,7 +149,7 @@ ___
# 8/2 S1 L1x S2 | ....
#####... ................|............
$code.=<<___;
- XORMPY $H0,$xia,$H0x ; 0 ; H·Xi[i]
+ XORMPY $H0,$xia,$H0x ; 0 ; H·(Xi[i]<<1)
|| XORMPY $H01u,$xib,$H01y
|| [A0] LDBU *--${xip},$x0
XORMPY $H1,$xia,$H1x ; 1
@@ -153,7 +158,7 @@ $code.=<<___;
XORMPY $H3,$xia,$H3x ; 3
|| XORMPY $H3u,$xib,$H3y
||[!A0] MVK.D 15,A0 ; *--${xip} counter
- XOR.L $H0x,$Z0,$Z0 ; 4 ; Z^=H·Xi[i]
+ XOR.L $H0x,$Z0,$Z0 ; 4 ; Z^=H·(Xi[i]<<1)
|| [A0] SUB.S A0,1,A0
XOR.L $H1x,$Z1,$Z1 ; 5
|| AND.D $H01y,$FF000000,$H0z