mirror of
https://github.com/hanzoai/datastore.git
synced 2026-10-30 14:48:37 +00:00
82 lines
1.9 KiB
ArmAsm
82 lines
1.9 KiB
ArmAsm
.text
|
|
.p2align 3
|
|
.globl gcm_init_rv64i_zvkg
|
|
.type gcm_init_rv64i_zvkg,@function
|
|
gcm_init_rv64i_zvkg:
|
|
ld a2, 0(a1)
|
|
ld a3, 8(a1)
|
|
sb a2, 7(a0)
|
|
srli t0, a2, 8
|
|
sb t0, 6(a0)
|
|
srli t0, a2, 16
|
|
sb t0, 5(a0)
|
|
srli t0, a2, 24
|
|
sb t0, 4(a0)
|
|
srli t0, a2, 32
|
|
sb t0, 3(a0)
|
|
srli t0, a2, 40
|
|
sb t0, 2(a0)
|
|
srli t0, a2, 48
|
|
sb t0, 1(a0)
|
|
srli t0, a2, 56
|
|
sb t0, 0(a0)
|
|
|
|
sb a3, 15(a0)
|
|
srli t0, a3, 8
|
|
sb t0, 14(a0)
|
|
srli t0, a3, 16
|
|
sb t0, 13(a0)
|
|
srli t0, a3, 24
|
|
sb t0, 12(a0)
|
|
srli t0, a3, 32
|
|
sb t0, 11(a0)
|
|
srli t0, a3, 40
|
|
sb t0, 10(a0)
|
|
srli t0, a3, 48
|
|
sb t0, 9(a0)
|
|
srli t0, a3, 56
|
|
sb t0, 8(a0)
|
|
|
|
ret
|
|
.size gcm_init_rv64i_zvkg,.-gcm_init_rv64i_zvkg
|
|
.p2align 3
|
|
.globl gcm_init_rv64i_zvkg_zvkb
|
|
.type gcm_init_rv64i_zvkg_zvkb,@function
|
|
gcm_init_rv64i_zvkg_zvkb:
|
|
.word 0xc1817057 # vsetivli x0, 2, e64, m1, ta, ma
|
|
.word 33943559 # vle64.v v0, (a1)
|
|
.word 1241817175 # vrev8.v v0, v0
|
|
.word 33910823 # vse64.v v0, (a0)
|
|
ret
|
|
.size gcm_init_rv64i_zvkg_zvkb,.-gcm_init_rv64i_zvkg_zvkb
|
|
.p2align 3
|
|
.globl gcm_gmult_rv64i_zvkg
|
|
.type gcm_gmult_rv64i_zvkg,@function
|
|
gcm_gmult_rv64i_zvkg:
|
|
.word 0xc1027057
|
|
.word 33939719
|
|
.word 33906823
|
|
.word 2720571639
|
|
.word 33906855
|
|
ret
|
|
.size gcm_gmult_rv64i_zvkg,.-gcm_gmult_rv64i_zvkg
|
|
.p2align 3
|
|
.globl gcm_ghash_rv64i_zvkg
|
|
.type gcm_ghash_rv64i_zvkg,@function
|
|
gcm_ghash_rv64i_zvkg:
|
|
.word 0xc1027057
|
|
.word 33939719
|
|
.word 33906823
|
|
|
|
Lstep:
|
|
.word 33972615
|
|
add a2, a2, 16
|
|
add a3, a3, -16
|
|
.word 2988548343
|
|
bnez a3, Lstep
|
|
|
|
.word 33906855
|
|
ret
|
|
|
|
.size gcm_ghash_rv64i_zvkg,.-gcm_ghash_rv64i_zvkg
|