summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2020-11-25 17:25:05 +0100
committerNiels Möller <nisse@lysator.liu.se>2020-11-25 17:25:05 +0100
commit31bbf5342d49aec42c952c2aa2e3054f9b614f60 (patch)
treeedf338f9266b95f32736369a0e4fd5ee6906fd0a
parentfd7c990e9b4b572a17822e4db51e945333748a22 (diff)
parent92ca357741eaab223a62775adbfa2d271d36618e (diff)
downloadnettle-31bbf5342d49aec42c952c2aa2e3054f9b614f60.tar.gz
Merge branch 'ppc-gcm' into 'ppc-gcm'
[PowerPC64] Modify register defines in gcm-hash.asm See merge request nettle/nettle!10
-rw-r--r--powerpc64/p8/gcm-hash.asm40
1 files changed, 20 insertions, 20 deletions
diff --git a/powerpc64/p8/gcm-hash.asm b/powerpc64/p8/gcm-hash.asm
index 03389227..ad0ff6b3 100644
--- a/powerpc64/p8/gcm-hash.asm
+++ b/powerpc64/p8/gcm-hash.asm
@@ -126,12 +126,12 @@ IF_LE(`
C --- Hp = (H mod x⁶⁴) × (x⁶⁴+x⁶³+x⁶²+x⁵⁷) mod P(X), deg(Hp) ≤ 127 ---
C --- Hp = (H mod x⁶⁴) × (x⁶⁴+x⁶³+x⁶²+x⁵⁷) ---
vpmsumd Hp,H,POLY_L C Hp = (H mod x⁶⁴) × (x⁶³+x⁶²+x⁵⁷)
- xxmrgld VSR(Hl),VSR(H),VSR(ZERO) C Hl = (H mod x⁶⁴) × x⁶⁴
xxswapd VSR(Hm),VSR(H)
- vxor Hl,Hl,Hp C Hl = Hl + Hp
+ xxmrgld VSR(Hl),VSR(H),VSR(ZERO) C Hl = (H mod x⁶⁴) × x⁶⁴
vxor Hm,Hm,Hp C Hm = Hm + Hp
- xxmrghd VSR(H1M),VSR(H),VSR(Hl) C H1M = (H div x⁶⁴)||(Hl div x⁶⁴)
+ vxor Hl,Hl,Hp C Hl = Hl + Hp
xxmrgld VSR(H1L),VSR(H),VSR(Hm) C H1L = (H mod x⁶⁴)||(Hl mod x⁶⁴)
+ xxmrghd VSR(H1M),VSR(H),VSR(Hl) C H1M = (H div x⁶⁴)||(Hl div x⁶⁴)
vpmsumd F,H1L,H C F = (H1Lh × Hh) + (H1Ll × Hl)
vpmsumd R,H1M,H C R = (H1Mh × Hh) + (H1Ml × Hl)
@@ -208,8 +208,8 @@ define(`X', `r4')
define(`LENGTH', `r5')
define(`DATA', `r6')
-define(`ZERO', `v18')
-define(`POLY', `v19')
+define(`ZERO', `v16')
+define(`POLY', `v17')
define(`POLY_L', `v0')
define(`D', `v1')
@@ -229,14 +229,14 @@ define(`R', `v14')
define(`F', `v15')
define(`R2', `v16')
define(`F2', `v17')
-define(`R3', `v18')
-define(`F3', `v19')
-define(`R4', `v20')
-define(`F4', `v21')
-define(`T', `v22')
+define(`T', `v18')
+define(`R3', `v20')
+define(`F3', `v21')
+define(`R4', `v22')
+define(`F4', `v23')
-define(`LE_TEMP', `v22')
-define(`LE_MASK', `v23')
+define(`LE_TEMP', `v18')
+define(`LE_MASK', `v19')
C void gcm_hash (const struct gcm_key *key, union gcm_block *x,
C size_t length, const uint8_t *data)
@@ -268,13 +268,13 @@ IF_LE(`
C store non-volatile vector registers
addi r8,SP,-64
- stvx 20,0,r8
+ stvx v20,0,r8
addi r8,r8,16
- stvx 21,0,r8
+ stvx v21,0,r8
addi r8,r8,16
- stvx 22,0,r8
+ stvx v22,0,r8
addi r8,r8,16
- stvx 23,0,r8
+ stvx v23,0,r8
C load table elements
li r8,1*16
@@ -343,13 +343,13 @@ IF_LE(`
C restore non-volatile vector registers
addi r8,SP,-64
- lvx 20,0,r8
+ lvx v20,0,r8
addi r8,r8,16
- lvx 21,0,r8
+ lvx v21,0,r8
addi r8,r8,16
- lvx 22,0,r8
+ lvx v22,0,r8
addi r8,r8,16
- lvx 23,0,r8
+ lvx v23,0,r8
clrldi LENGTH,LENGTH,58 C 'set the high-order 58 bits to zeros'
L2x: