aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2014-05-04 16:38:32 +0200
committerAndy Polyakov <appro@openssl.org>2014-05-04 16:38:32 +0200
commitbd227733b9f5acaba81e064f508b5821317dc59b (patch)
tree43cae0f01943990e24e07a4b749bec5b6e90c45e
parent9250a30692e182957d3fe48e3e07b1824ca1453a (diff)
downloadopenssl-bd227733b9f5acaba81e064f508b5821317dc59b.tar.gz
C64x+ assembly pack: make it work with older toolchain.
-rw-r--r--crypto/aes/asm/aes-c64xplus.pl40
-rw-r--r--crypto/bn/asm/bn-c64xplus.asm4
-rw-r--r--crypto/bn/asm/c64xplus-gf2m.pl4
-rw-r--r--crypto/c64xpluscpuid.pl4
-rw-r--r--crypto/modes/asm/ghash-c64xplus.pl4
-rw-r--r--crypto/sha/asm/sha1-c64xplus.pl4
-rw-r--r--crypto/sha/asm/sha256-c64xplus.pl15
-rw-r--r--crypto/sha/asm/sha512-c64xplus.pl17
8 files changed, 63 insertions, 29 deletions
diff --git a/crypto/aes/asm/aes-c64xplus.pl b/crypto/aes/asm/aes-c64xplus.pl
index cc14ae3157..24b2ba4d8e 100644
--- a/crypto/aes/asm/aes-c64xplus.pl
+++ b/crypto/aes/asm/aes-c64xplus.pl
@@ -44,6 +44,10 @@ open STDOUT,">$output";
$code=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.nocmp
.asg AES_encrypt,_AES_encrypt
@@ -85,18 +89,18 @@ _AES_encrypt:
__encrypt:
.if __TI_EABI__
[B2] LDNDW *INP++,A9:A8 ; load input
-|| MVKL \$PCR_OFFSET(AES_Te,_AES_encrypt),$TEA
-|| ADDKPC _AES_encrypt,B0
+|| MVKL \$PCR_OFFSET(AES_Te,__encrypt),$TEA
+|| ADDKPC __encrypt,B0
[B2] LDNDW *INP++,B9:B8
-|| MVKH \$PCR_OFFSET(AES_Te,_AES_encrypt),$TEA
+|| MVKH \$PCR_OFFSET(AES_Te,__encrypt),$TEA
|| ADD 0,KEY,$KPA
|| ADD 4,KEY,$KPB
.else
[B2] LDNDW *INP++,A9:A8 ; load input
-|| MVKL (AES_Te-_AES_encrypt),$TEA
-|| ADDKPC _AES_encrypt,B0
+|| MVKL (AES_Te-__encrypt),$TEA
+|| ADDKPC __encrypt,B0
[B2] LDNDW *INP++,B9:B8
-|| MVKH (AES_Te-_AES_encrypt),$TEA
+|| MVKH (AES_Te-__encrypt),$TEA
|| ADD 0,KEY,$KPA
|| ADD 4,KEY,$KPB
.endif
@@ -297,18 +301,18 @@ _AES_decrypt:
__decrypt:
.if __TI_EABI__
[B2] LDNDW *INP++,A9:A8 ; load input
-|| MVKL \$PCR_OFFSET(AES_Td,_AES_decrypt),$TEA
-|| ADDKPC _AES_decrypt,B0
+|| MVKL \$PCR_OFFSET(AES_Td,__decrypt),$TEA
+|| ADDKPC __decrypt,B0
[B2] LDNDW *INP++,B9:B8
-|| MVKH \$PCR_OFFSET(AES_Td,_AES_decrypt),$TEA
+|| MVKH \$PCR_OFFSET(AES_Td,__decrypt),$TEA
|| ADD 0,KEY,$KPA
|| ADD 4,KEY,$KPB
.else
[B2] LDNDW *INP++,A9:A8 ; load input
-|| MVKL (AES_Td-_AES_decrypt),$TEA
-|| ADDKPC _AES_decrypt,B0
+|| MVKL (AES_Td-__decrypt),$TEA
+|| ADDKPC __decrypt,B0
[B2] LDNDW *INP++,B9:B8
-|| MVKH (AES_Td-_AES_decrypt),$TEA
+|| MVKH (AES_Td-__decrypt),$TEA
|| ADD 0,KEY,$KPA
|| ADD 4,KEY,$KPB
.endif
@@ -546,16 +550,16 @@ __set_encrypt_key:
.if __TI_EABI__
[A0] ADD 0,KEY,$KPA
|| [A0] ADD 4,KEY,$KPB
-|| [A0] MVKL \$PCR_OFFSET(AES_Te4,_AES_set_encrypt_key),$TEA
-|| [A0] ADDKPC _AES_set_encrypt_key,B6
- [A0] MVKH \$PCR_OFFSET(AES_Te4,_AES_set_encrypt_key),$TEA
+|| [A0] MVKL \$PCR_OFFSET(AES_Te4,__set_encrypt_key),$TEA
+|| [A0] ADDKPC __set_encrypt_key,B6
+ [A0] MVKH \$PCR_OFFSET(AES_Te4,__set_encrypt_key),$TEA
[A0] ADD B6,$TEA,$TEA ; AES_Te4
.else
[A0] ADD 0,KEY,$KPA
|| [A0] ADD 4,KEY,$KPB
-|| [A0] MVKL (AES_Te4-_AES_set_encrypt_key),$TEA
-|| [A0] ADDKPC _AES_set_encrypt_key,B6
- [A0] MVKH (AES_Te4-_AES_set_encrypt_key),$TEA
+|| [A0] MVKL (AES_Te4-__set_encrypt_key),$TEA
+|| [A0] ADDKPC __set_encrypt_key,B6
+ [A0] MVKH (AES_Te4-__set_encrypt_key),$TEA
[A0] ADD B6,$TEA,$TEA ; AES_Te4
.endif
NOP
diff --git a/crypto/bn/asm/bn-c64xplus.asm b/crypto/bn/asm/bn-c64xplus.asm
index f07b09e439..7cd58817e7 100644
--- a/crypto/bn/asm/bn-c64xplus.asm
+++ b/crypto/bn/asm/bn-c64xplus.asm
@@ -12,6 +12,10 @@
;; SPLOOPs spin at ... 2*n cycles [plus epilogue].
;;====================================================================
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.asg bn_mul_add_words,_bn_mul_add_words
.asg bn_mul_words,_bn_mul_words
diff --git a/crypto/bn/asm/c64xplus-gf2m.pl b/crypto/bn/asm/c64xplus-gf2m.pl
index 1b3ecc2c94..e4aa4e4ceb 100644
--- a/crypto/bn/asm/c64xplus-gf2m.pl
+++ b/crypto/bn/asm/c64xplus-gf2m.pl
@@ -107,6 +107,10 @@ ___
}
$code.=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.asg bn_GF2m_mul_2x2,_bn_GF2m_mul_2x2
.endif
diff --git a/crypto/c64xpluscpuid.pl b/crypto/c64xpluscpuid.pl
index 0ee0a4e86f..2feb4e31f4 100644
--- a/crypto/c64xpluscpuid.pl
+++ b/crypto/c64xpluscpuid.pl
@@ -6,6 +6,10 @@ open STDOUT,">$output";
$code.=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.asg OPENSSL_rdtsc,_OPENSSL_rdtsc
.asg OPENSSL_cleanse,_OPENSSL_cleanse
diff --git a/crypto/modes/asm/ghash-c64xplus.pl b/crypto/modes/asm/ghash-c64xplus.pl
index 409b0d61b9..a465b4236c 100644
--- a/crypto/modes/asm/ghash-c64xplus.pl
+++ b/crypto/modes/asm/ghash-c64xplus.pl
@@ -35,6 +35,10 @@ open STDOUT,">$output";
$code.=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.asg gcm_gmult_1bit,_gcm_gmult_1bit
.asg gcm_gmult_4bit,_gcm_gmult_4bit
diff --git a/crypto/sha/asm/sha1-c64xplus.pl b/crypto/sha/asm/sha1-c64xplus.pl
index 456f80a86e..ad8b17211f 100644
--- a/crypto/sha/asm/sha1-c64xplus.pl
+++ b/crypto/sha/asm/sha1-c64xplus.pl
@@ -38,6 +38,10 @@ open STDOUT,">$output";
$code=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.asg sha1_block_data_order,_sha1_block_data_order
.endif
diff --git a/crypto/sha/asm/sha256-c64xplus.pl b/crypto/sha/asm/sha256-c64xplus.pl
index 798f78309b..2f775ac005 100644
--- a/crypto/sha/asm/sha256-c64xplus.pl
+++ b/crypto/sha/asm/sha256-c64xplus.pl
@@ -38,6 +38,10 @@ open STDOUT,">$output";
$code.=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.nocmp
.asg sha256_block_data_order,_sha256_block_data_order
@@ -54,24 +58,25 @@ $code.=<<___;
.global _sha256_block_data_order
_sha256_block_data_order:
+__sha256_block:
.asmfunc stack_usage(64)
MV $NUM,A0 ; reassign $NUM
|| MVK -64,B0
[!A0] BNOP RA ; if ($NUM==0) return;
|| [A0] STW FP,*SP--[16] ; save frame pointer and alloca(64)
|| [A0] MV SP,FP
- [A0] ADDKPC _sha256_block_data_order,B2
+ [A0] ADDKPC __sha256_block,B2
|| [A0] AND B0,SP,SP ; align stack at 64 bytes
.if __TI_EABI__
[A0] MVK 0x00404,B1
-|| [A0] MVKL \$PCR_OFFSET(K256,_sha256_block_data_order),$K256
+|| [A0] MVKL \$PCR_OFFSET(K256,__sha256_block),$K256
[A0] MVKH 0x50000,B1
-|| [A0] MVKH \$PCR_OFFSET(K256,_sha256_block_data_order),$K256
+|| [A0] MVKH \$PCR_OFFSET(K256,__sha256_block),$K256
.else
[A0] MVK 0x00404,B1
-|| [A0] MVKL (K256-_sha256_block_data_order),$K256
+|| [A0] MVKL (K256-__sha256_block),$K256
[A0] MVKH 0x50000,B1
-|| [A0] MVKH (K256-_sha256_block_data_order),$K256
+|| [A0] MVKH (K256-__sha256_block),$K256
.endif
[A0] MVC B1,AMR ; setup circular addressing
|| [A0] MV SP,$Xia
diff --git a/crypto/sha/asm/sha512-c64xplus.pl b/crypto/sha/asm/sha512-c64xplus.pl
index 77a62523e5..71a1e80bbb 100644
--- a/crypto/sha/asm/sha512-c64xplus.pl
+++ b/crypto/sha/asm/sha512-c64xplus.pl
@@ -46,6 +46,10 @@ open STDOUT,">$output";
$code.=<<___;
.text
+
+ .if .ASSEMBLER_VERSION<7000000
+ .asg 0,__TI_EABI__
+ .endif
.if __TI_EABI__
.nocmp
.asg sha512_block_data_order,_sha512_block_data_order
@@ -65,6 +69,7 @@ $code.=<<___;
.global _sha512_block_data_order
_sha512_block_data_order:
+__sha512_block:
.asmfunc stack_usage(40+128)
MV $NUM,A0 ; reassign $NUM
|| MVK -128,B0
@@ -81,15 +86,15 @@ _sha512_block_data_order:
|| [A0] ADD B0,SP,SP ; alloca(128)
.if __TI_EABI__
[A0] AND B0,SP,SP ; align stack at 128 bytes
-|| [A0] ADDKPC _sha512_block_data_order,B1
-|| [A0] MVKL \$PCR_OFFSET(K512,_sha512_block_data_order),$K512
- [A0] MVKH \$PCR_OFFSET(K512,_sha512_block_data_order),$K512
+|| [A0] ADDKPC __sha512_block,B1
+|| [A0] MVKL \$PCR_OFFSET(K512,__sha512_block),$K512
+ [A0] MVKH \$PCR_OFFSET(K512,__sha512_block),$K512
|| [A0] SUBAW SP,2,SP ; reserve two words above buffer
.else
[A0] AND B0,SP,SP ; align stack at 128 bytes
-|| [A0] ADDKPC _sha512_block_data_order,B1
-|| [A0] MVKL (K512-_sha512_block_data_order),$K512
- [A0] MVKH (K512-_sha512_block_data_order),$K512
+|| [A0] ADDKPC __sha512_block,B1
+|| [A0] MVKL (K512-__sha512_block),$K512
+ [A0] MVKH (K512-__sha512_block),$K512
|| [A0] SUBAW SP,2,SP ; reserve two words above buffer
.endif
ADDAW SP,3,$Xilo