From: Andy Polyakov Date: Fri, 23 Jan 2015 17:02:44 +0000 (+0100) Subject: des/asm/des_enc.m4: strip #ifdef OPENSSL_SYS_ULTRASPARC as part of X-Git-Tag: OpenSSL_1_1_0-pre1~1765 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2863d5f3cd96d66cadeef19b8b4111de55ce78de;p=oweals%2Fopenssl.git des/asm/des_enc.m4: strip #ifdef OPENSSL_SYS_ULTRASPARC as part of pre-processor controls cleanup. It doesn't mean that it no longer works on UltraSPARC, only that it doesn't utilize sparcv9-specific features like branch prediction hints and load in little-endian byte order anymore. This "costs" ~3% in EDE3 performance regression on UltraSPARC. Reviewed-by: Rich Salz Reviewed-by: Tim Hudson --- diff --git a/crypto/des/asm/des_enc.m4 b/crypto/des/asm/des_enc.m4 index e732ba6b90..6ae17fddb7 100644 --- a/crypto/des/asm/des_enc.m4 +++ b/crypto/des/asm/des_enc.m4 @@ -67,9 +67,6 @@ # define STPTR stx # define ARG0 128 # define ARGSZ 8 -# ifndef OPENSSL_SYS_ULTRASPARC -# define OPENSSL_SYS_ULTRASPARC -# endif #else # define FRAME -96 # define BIAS 0 @@ -429,11 +426,7 @@ $4: xor $2, local1, $2 ! 1 finished xor $2, local2, $2 ! 3 finished -#ifdef OPENSSL_SYS_ULTRASPARC - bne,pt %icc, $4 -#else bne $4 -#endif and local4, 252, local1 ! sbox 1 next round ! two rounds more: @@ -791,18 +784,6 @@ define(load_little_endian, { ! first in memory to rightmost in register -#ifdef OPENSSL_SYS_ULTRASPARC - andcc $1, 3, global0 - bne,pn %icc, $5 - nop - - lda [$1] 0x88, $2 - add $1, 4, $4 - - ba,pt %icc, $5a - lda [$4] 0x88, $3 -#endif - $5: ldub [$1+3], $2 @@ -854,19 +835,6 @@ define(load_little_endian_inc, { ! first in memory to rightmost in register -#ifdef OPENSSL_SYS_ULTRASPARC - andcc $1, 3, global0 - bne,pn %icc, $5 - nop - - lda [$1] 0x88, $2 - add $1, 4, $1 - - lda [$1] 0x88, $3 - ba,pt %icc, $5a - add $1, 4, $1 -#endif - $5: ldub [$1+3], $2 @@ -989,18 +957,6 @@ define(store_little_endian, { ! rightmost in register to first in memory -#ifdef OPENSSL_SYS_ULTRASPARC - andcc $1, 3, global0 - bne,pn %icc, $5 - nop - - sta $2, [$1] 0x88 - add $1, 4, $4 - - ba,pt %icc, $5a - sta $3, [$4] 0x88 -#endif - $5: and $2, 255, $4 stub $4, [$1+0] @@ -1195,11 +1151,7 @@ DES_encrypt1: ld [in0], in5 ! left cmp in2, 0 ! enc -#ifdef OPENSSL_SYS_ULTRASPARC - be,pn %icc, .encrypt.dec ! enc/dec -#else be .encrypt.dec -#endif ld [in0+4], out5 ! right ! parameter 6 1/2 for include encryption/decryption @@ -1287,11 +1239,7 @@ DES_encrypt2: ! we use our own stackframe -#ifdef OPENSSL_SYS_ULTRASPARC - be,pn %icc, .encrypt2.dec ! decryption -#else be .encrypt2.dec -#endif STPTR in0, [%sp+BIAS+ARG0+0*ARGSZ] ld [in3], out0 ! key 7531 first round @@ -1467,11 +1415,7 @@ DES_ncbc_encrypt: cmp in5, 0 ! enc -#ifdef OPENSSL_SYS_ULTRASPARC - be,pn %icc, .ncbc.dec -#else be .ncbc.dec -#endif STPTR in4, IVEC ! addr left right temp label @@ -1479,11 +1423,7 @@ DES_ncbc_encrypt: addcc in2, -8, in2 ! bytes missing when first block done -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ncbc.enc.seven.or.less -#else bl .ncbc.enc.seven.or.less -#endif mov in3, in4 ! schedule .ncbc.enc.next.block: @@ -1507,11 +1447,7 @@ DES_ncbc_encrypt: rounds_macro(in5, out5, 1, .ncbc.enc.1, in3, in4) ! include encryption ks in3 -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ncbc.enc.next.block_fp -#else bl .ncbc.enc.next.block_fp -#endif add in0, 8, in0 ! input address ! If 8 or more bytes are to be encrypted after this block, @@ -1552,22 +1488,14 @@ DES_ncbc_encrypt: addcc in2, -8, in2 ! bytes missing when next block done -#ifdef OPENSSL_SYS_ULTRASPARC - bpos,pt %icc, .ncbc.enc.next.block ! also jumps if 0 -#else bpos .ncbc.enc.next.block -#endif add in1, 8, in1 .ncbc.enc.seven.or.less: cmp in2, -8 -#ifdef OPENSSL_SYS_ULTRASPARC - ble,pt %icc, .ncbc.enc.finish -#else ble .ncbc.enc.finish -#endif nop add in2, 8, local1 ! bytes to load @@ -1594,11 +1522,7 @@ DES_ncbc_encrypt: add in3, 120, in3 LDPTR IVEC, local7 ! ivec -#ifdef OPENSSL_SYS_ULTRASPARC - ble,pn %icc, .ncbc.dec.finish -#else ble .ncbc.dec.finish -#endif mov in3, in4 ! schedule STPTR in1, OUTPUT @@ -1622,11 +1546,7 @@ DES_ncbc_encrypt: ! in2 is compared to 8 in the rounds xor out5, in0, out4 ! iv xor -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ncbc.dec.seven.or.less -#else bl .ncbc.dec.seven.or.less -#endif xor in5, in1, global4 ! iv xor ! Load ivec next block now, since input and output address might be the same. @@ -1639,11 +1559,7 @@ DES_ncbc_encrypt: add local7, 8, local7 addcc in2, -8, in2 -#ifdef OPENSSL_SYS_ULTRASPARC - bg,pt %icc, .ncbc.dec.next.block -#else bg .ncbc.dec.next.block -#endif STPTR local7, OUTPUT @@ -1694,11 +1610,6 @@ DES_ede3_cbc_encrypt: LDPTR [%fp+BIAS+ARG0+6*ARGSZ], local4 ! ivec cmp local3, 0 ! enc -#ifdef OPENSSL_SYS_ULTRASPARC - be,pn %icc, .ede3.dec -#else - be .ede3.dec -#endif STPTR in4, KS2 STPTR in5, KS3 @@ -1707,11 +1618,7 @@ DES_ede3_cbc_encrypt: addcc in2, -8, in2 ! bytes missing after next block -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ede3.enc.seven.or.less -#else bl .ede3.enc.seven.or.less -#endif STPTR in3, KS1 .ede3.enc.next.block: @@ -1741,11 +1648,7 @@ DES_ede3_cbc_encrypt: call .des_enc ! ks3 in3 compares in2 to 8 nop -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ede3.enc.next.block_fp -#else bl .ede3.enc.next.block_fp -#endif add in0, 8, in0 ! If 8 or more bytes are to be encrypted after this block, @@ -1787,22 +1690,14 @@ DES_ede3_cbc_encrypt: addcc in2, -8, in2 ! bytes missing when next block done -#ifdef OPENSSL_SYS_ULTRASPARC - bpos,pt %icc, .ede3.enc.next.block -#else bpos .ede3.enc.next.block -#endif add in1, 8, in1 .ede3.enc.seven.or.less: cmp in2, -8 -#ifdef OPENSSL_SYS_ULTRASPARC - ble,pt %icc, .ede3.enc.finish -#else ble .ede3.enc.finish -#endif nop add in2, 8, local1 ! bytes to load @@ -1830,11 +1725,7 @@ DES_ede3_cbc_encrypt: STPTR in3, KS1 cmp in2, 0 -#ifdef OPENSSL_SYS_ULTRASPARC - ble %icc, .ede3.dec.finish -#else ble .ede3.dec.finish -#endif STPTR in5, KS3 LDPTR [%fp+BIAS+ARG0+6*ARGSZ], local7 ! iv @@ -1863,11 +1754,7 @@ DES_ede3_cbc_encrypt: ! in2 is compared to 8 in the rounds xor out5, in0, out4 -#ifdef OPENSSL_SYS_ULTRASPARC - bl,pn %icc, .ede3.dec.seven.or.less -#else bl .ede3.dec.seven.or.less -#endif xor in5, in1, global4 load_little_endian_inc(local5, in0, in1, local3, .LLE10) ! iv next block @@ -1878,11 +1765,7 @@ DES_ede3_cbc_encrypt: addcc in2, -8, in2 add local7, 8, local7 -#ifdef OPENSSL_SYS_ULTRASPARC - bg,pt %icc, .ede3.dec.next.block -#else bg .ede3.dec.next.block -#endif STPTR local7, OUTPUT .ede3.dec.store.iv: