summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2013-11-09 11:41:59 +0100
committerAndy Polyakov <appro@openssl.org>2013-11-09 11:41:59 +0100
commit33446493f4ccd26562431b25fad304cfe857c887 (patch)
tree859244fda8971213b993bfb663c0ce1366958580
parent96180cac04591abfe50fc86096365553484bde65 (diff)
modes/asm/ghash-alpha.pl: make it work with older assembler for real.
PR: 3165
-rw-r--r--crypto/modes/asm/ghash-alpha.pl36
1 files changed, 23 insertions, 13 deletions
diff --git a/crypto/modes/asm/ghash-alpha.pl b/crypto/modes/asm/ghash-alpha.pl
index f47c85eb1f..80fefbdfaa 100644
--- a/crypto/modes/asm/ghash-alpha.pl
+++ b/crypto/modes/asm/ghash-alpha.pl
@@ -254,15 +254,6 @@ $code=<<___;
.text
-.align 4
-rem_4bit:
- .quad 0x0000<<48, 0x1C20<<48, 0x3840<<48, 0x2460<<48
- .quad 0x7080<<48, 0x6CA0<<48, 0x48C0<<48, 0x54E0<<48
- .quad 0xE100<<48, 0xFD20<<48, 0xD940<<48, 0xC560<<48
- .quad 0x9180<<48, 0x8DA0<<48, 0xA9C0<<48, 0xB5E0<<48
-.ascii "GHASH for Alpha, CRYPTOGAMS by <appro\@openssl.org>"
-.align 4
-
.set noat
.set noreorder
.globl gcm_gmult_4bit
@@ -275,8 +266,8 @@ gcm_gmult_4bit:
ldq $Xlo,8($Xi)
ldq $Xhi,0($Xi)
- br $rem_4bit,.Lpic1
-.Lpic1: lda $rem_4bit,.Lpic1-rem_4bit($rem_4bit)
+ bsr $t0,picmeup
+ nop
___
&loop();
@@ -350,8 +341,8 @@ gcm_ghash_4bit:
ldq $Xhi,0($Xi)
ldq $Xlo,8($Xi)
- br $rem_4bit,.Lpic2
-.Lpic2: lda $rem_4bit,.Lpic2-rem_4bit($rem_4bit)
+ bsr $t0,picmeup
+ nop
.Louter:
extql $inhi,$inp,$inhi
@@ -443,6 +434,25 @@ $code.=<<___;
lda sp,32(sp)
ret (ra)
.end gcm_ghash_4bit
+
+.align 4
+.ent picmeup
+picmeup:
+ .FRame sp,0,$t0
+ .prologue 0
+ br $rem_4bit,.Lpic
+.Lpic: lda $rem_4bit,12($rem_4bit)
+ ret ($t0)
+.end picmeup
+ nop
+rem_4bit:
+ .long 0,0x0000<<16, 0,0x1C20<<16, 0,0x3840<<16, 0,0x2460<<16
+ .long 0,0x7080<<16, 0,0x6CA0<<16, 0,0x48C0<<16, 0,0x54E0<<16
+ .long 0,0xE100<<16, 0,0xFD20<<16, 0,0xD940<<16, 0,0xC560<<16
+ .long 0,0x9180<<16, 0,0x8DA0<<16, 0,0xA9C0<<16, 0,0xB5E0<<16
+.ascii "GHASH for Alpha, CRYPTOGAMS by <appro\@openssl.org>"
+.align 4
+
___
$output=shift and open STDOUT,">$output";
print $code;