C64x+ assembly pack: make it work with older toolchain.
authorAndy Polyakov <appro@openssl.org>
Sun, 4 May 2014 14:38:32 +0000 (16:38 +0200)
committerAndy Polyakov <appro@openssl.org>
Sun, 4 May 2014 14:38:32 +0000 (16:38 +0200)
crypto/aes/asm/aes-c64xplus.pl
crypto/bn/asm/bn-c64xplus.asm
crypto/bn/asm/c64xplus-gf2m.pl
crypto/c64xpluscpuid.pl
crypto/modes/asm/ghash-c64xplus.pl
crypto/sha/asm/sha1-c64xplus.pl
crypto/sha/asm/sha256-c64xplus.pl
crypto/sha/asm/sha512-c64xplus.pl

index cc14ae315799c6bceaaad3158157f57b6f822415..24b2ba4d8e1e12d652bacdd7da247f73b4cb3cfe 100644 (file)
@@ -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
index f07b09e439bb2f2d6363761fe812af2de0dee586..7cd58817e72790b6df43bec01c5c07260922c16f 100644 (file)
 ;; 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
index 1b3ecc2c94546e4ba1094abe57cffa33c0afe05a..e4aa4e4cebdfb9c8d6db2deba0721cffd482c514 100644 (file)
@@ -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
index 0ee0a4e86fe4a63f77f38e4a6a88378d9208bec1..2feb4e31f45ace5e18074994f5be69ab9738f806 100644 (file)
@@ -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
index 409b0d61b9cf22e46215d815aa38a982761f7e06..a465b4236ce9f0bb3f71542779abb1f25a0506b7 100644 (file)
@@ -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
index 456f80a86e407bf745fe392c905d0eca517e5172..ad8b17211f2a120928384d166551ea36c12fef03 100644 (file)
@@ -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
index 798f78309b77e993e78ca435fe2b1ea795764b98..2f775ac0050cf3593bae2e0839d9d15a59f3770e 100644 (file)
@@ -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
index 77a62523e565bbff8186274a8e1bbc217e41a11f..71a1e80bbb13dcf8685a76bfb3209cc0b55f0ab6 100644 (file)
@@ -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