mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
576 lines
7.3 KiB
ArmAsm
576 lines
7.3 KiB
ArmAsm
|
.machine "any"
|
||
|
|
||
|
.abiversion 2
|
||
|
.text
|
||
|
|
||
|
.globl gcm_init_p8
|
||
|
.type gcm_init_p8,@function
|
||
|
.align 5
|
||
|
gcm_init_p8:
|
||
|
.localentry gcm_init_p8,0
|
||
|
|
||
|
li 0,-4096
|
||
|
li 8,0x10
|
||
|
li 12,-1
|
||
|
li 9,0x20
|
||
|
or 0,0,0
|
||
|
li 10,0x30
|
||
|
.long 0x7D202699
|
||
|
|
||
|
vspltisb 8,-16
|
||
|
vspltisb 5,1
|
||
|
vaddubm 8,8,8
|
||
|
vxor 4,4,4
|
||
|
vor 8,8,5
|
||
|
vsldoi 8,8,4,15
|
||
|
vsldoi 6,4,5,1
|
||
|
vaddubm 8,8,8
|
||
|
vspltisb 7,7
|
||
|
vor 8,8,6
|
||
|
vspltb 6,9,0
|
||
|
vsl 9,9,5
|
||
|
vsrab 6,6,7
|
||
|
vand 6,6,8
|
||
|
vxor 3,9,6
|
||
|
|
||
|
vsldoi 9,3,3,8
|
||
|
vsldoi 8,4,8,8
|
||
|
vsldoi 11,4,9,8
|
||
|
vsldoi 10,9,4,8
|
||
|
|
||
|
.long 0x7D001F99
|
||
|
.long 0x7D681F99
|
||
|
li 8,0x40
|
||
|
.long 0x7D291F99
|
||
|
li 9,0x50
|
||
|
.long 0x7D4A1F99
|
||
|
li 10,0x60
|
||
|
|
||
|
.long 0x10035CC8
|
||
|
.long 0x10234CC8
|
||
|
.long 0x104354C8
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x100044C8
|
||
|
vxor 6,6,2
|
||
|
vxor 16,0,6
|
||
|
|
||
|
vsldoi 17,16,16,8
|
||
|
vsldoi 19,4,17,8
|
||
|
vsldoi 18,17,4,8
|
||
|
|
||
|
.long 0x7E681F99
|
||
|
li 8,0x70
|
||
|
.long 0x7E291F99
|
||
|
li 9,0x80
|
||
|
.long 0x7E4A1F99
|
||
|
li 10,0x90
|
||
|
.long 0x10039CC8
|
||
|
.long 0x11B09CC8
|
||
|
.long 0x10238CC8
|
||
|
.long 0x11D08CC8
|
||
|
.long 0x104394C8
|
||
|
.long 0x11F094C8
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
.long 0x114D44C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vsldoi 11,14,4,8
|
||
|
vsldoi 9,4,14,8
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
vxor 13,13,11
|
||
|
vxor 15,15,9
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vsldoi 13,13,13,8
|
||
|
vxor 0,0,7
|
||
|
vxor 13,13,10
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
vsldoi 9,13,13,8
|
||
|
.long 0x100044C8
|
||
|
.long 0x11AD44C8
|
||
|
vxor 6,6,2
|
||
|
vxor 9,9,15
|
||
|
vxor 0,0,6
|
||
|
vxor 13,13,9
|
||
|
|
||
|
vsldoi 9,0,0,8
|
||
|
vsldoi 17,13,13,8
|
||
|
vsldoi 11,4,9,8
|
||
|
vsldoi 10,9,4,8
|
||
|
vsldoi 19,4,17,8
|
||
|
vsldoi 18,17,4,8
|
||
|
|
||
|
.long 0x7D681F99
|
||
|
li 8,0xa0
|
||
|
.long 0x7D291F99
|
||
|
li 9,0xb0
|
||
|
.long 0x7D4A1F99
|
||
|
li 10,0xc0
|
||
|
.long 0x7E681F99
|
||
|
.long 0x7E291F99
|
||
|
.long 0x7E4A1F99
|
||
|
|
||
|
or 12,12,12
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,2,0
|
||
|
.long 0
|
||
|
.size gcm_init_p8,.-gcm_init_p8
|
||
|
.globl gcm_gmult_p8
|
||
|
.type gcm_gmult_p8,@function
|
||
|
.align 5
|
||
|
gcm_gmult_p8:
|
||
|
.localentry gcm_gmult_p8,0
|
||
|
|
||
|
lis 0,0xfff8
|
||
|
li 8,0x10
|
||
|
li 12,-1
|
||
|
li 9,0x20
|
||
|
or 0,0,0
|
||
|
li 10,0x30
|
||
|
.long 0x7C601E99
|
||
|
|
||
|
.long 0x7D682699
|
||
|
lvsl 12,0,0
|
||
|
.long 0x7D292699
|
||
|
vspltisb 5,0x07
|
||
|
.long 0x7D4A2699
|
||
|
vxor 12,12,5
|
||
|
.long 0x7D002699
|
||
|
vperm 3,3,3,12
|
||
|
vxor 4,4,4
|
||
|
|
||
|
.long 0x10035CC8
|
||
|
.long 0x10234CC8
|
||
|
.long 0x104354C8
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x100044C8
|
||
|
vxor 6,6,2
|
||
|
vxor 0,0,6
|
||
|
|
||
|
vperm 0,0,0,12
|
||
|
.long 0x7C001F99
|
||
|
|
||
|
or 12,12,12
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,2,0
|
||
|
.long 0
|
||
|
.size gcm_gmult_p8,.-gcm_gmult_p8
|
||
|
|
||
|
.globl gcm_ghash_p8
|
||
|
.type gcm_ghash_p8,@function
|
||
|
.align 5
|
||
|
gcm_ghash_p8:
|
||
|
.localentry gcm_ghash_p8,0
|
||
|
|
||
|
li 0,-4096
|
||
|
li 8,0x10
|
||
|
li 12,-1
|
||
|
li 9,0x20
|
||
|
or 0,0,0
|
||
|
li 10,0x30
|
||
|
.long 0x7C001E99
|
||
|
|
||
|
.long 0x7D682699
|
||
|
li 8,0x40
|
||
|
lvsl 12,0,0
|
||
|
.long 0x7D292699
|
||
|
li 9,0x50
|
||
|
vspltisb 5,0x07
|
||
|
.long 0x7D4A2699
|
||
|
li 10,0x60
|
||
|
vxor 12,12,5
|
||
|
.long 0x7D002699
|
||
|
vperm 0,0,0,12
|
||
|
vxor 4,4,4
|
||
|
|
||
|
cmpldi 6,64
|
||
|
bge .Lgcm_ghash_p8_4x
|
||
|
|
||
|
.long 0x7C602E99
|
||
|
addi 5,5,16
|
||
|
subic. 6,6,16
|
||
|
vperm 3,3,3,12
|
||
|
vxor 3,3,0
|
||
|
beq .Lshort
|
||
|
|
||
|
.long 0x7E682699
|
||
|
li 8,16
|
||
|
.long 0x7E292699
|
||
|
add 9,5,6
|
||
|
.long 0x7E4A2699
|
||
|
|
||
|
|
||
|
.align 5
|
||
|
.Loop_2x:
|
||
|
.long 0x7E002E99
|
||
|
vperm 16,16,16,12
|
||
|
|
||
|
subic 6,6,32
|
||
|
.long 0x10039CC8
|
||
|
.long 0x11B05CC8
|
||
|
subfe 0,0,0
|
||
|
.long 0x10238CC8
|
||
|
.long 0x11D04CC8
|
||
|
and 0,0,6
|
||
|
.long 0x104394C8
|
||
|
.long 0x11F054C8
|
||
|
add 5,5,0
|
||
|
|
||
|
vxor 0,0,13
|
||
|
vxor 1,1,14
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 2,2,15
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
.long 0x7C682E99
|
||
|
addi 5,5,32
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x100044C8
|
||
|
vperm 3,3,3,12
|
||
|
vxor 6,6,2
|
||
|
vxor 3,3,6
|
||
|
vxor 3,3,0
|
||
|
cmpld 9,5
|
||
|
bgt .Loop_2x
|
||
|
|
||
|
cmplwi 6,0
|
||
|
bne .Leven
|
||
|
|
||
|
.Lshort:
|
||
|
.long 0x10035CC8
|
||
|
.long 0x10234CC8
|
||
|
.long 0x104354C8
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x100044C8
|
||
|
vxor 6,6,2
|
||
|
|
||
|
.Leven:
|
||
|
vxor 0,0,6
|
||
|
vperm 0,0,0,12
|
||
|
.long 0x7C001F99
|
||
|
|
||
|
or 12,12,12
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,4,0
|
||
|
.long 0
|
||
|
.align 5
|
||
|
.gcm_ghash_p8_4x:
|
||
|
.Lgcm_ghash_p8_4x:
|
||
|
stdu 1,-256(1)
|
||
|
li 10,63
|
||
|
li 11,79
|
||
|
stvx 20,10,1
|
||
|
addi 10,10,32
|
||
|
stvx 21,11,1
|
||
|
addi 11,11,32
|
||
|
stvx 22,10,1
|
||
|
addi 10,10,32
|
||
|
stvx 23,11,1
|
||
|
addi 11,11,32
|
||
|
stvx 24,10,1
|
||
|
addi 10,10,32
|
||
|
stvx 25,11,1
|
||
|
addi 11,11,32
|
||
|
stvx 26,10,1
|
||
|
addi 10,10,32
|
||
|
stvx 27,11,1
|
||
|
addi 11,11,32
|
||
|
stvx 28,10,1
|
||
|
addi 10,10,32
|
||
|
stvx 29,11,1
|
||
|
addi 11,11,32
|
||
|
stvx 30,10,1
|
||
|
li 10,0x60
|
||
|
stvx 31,11,1
|
||
|
li 0,-1
|
||
|
stw 12,252(1)
|
||
|
or 0,0,0
|
||
|
|
||
|
lvsl 5,0,8
|
||
|
|
||
|
li 8,0x70
|
||
|
.long 0x7E292699
|
||
|
li 9,0x80
|
||
|
vspltisb 6,8
|
||
|
|
||
|
li 10,0x90
|
||
|
.long 0x7EE82699
|
||
|
li 8,0xa0
|
||
|
.long 0x7F092699
|
||
|
li 9,0xb0
|
||
|
.long 0x7F2A2699
|
||
|
li 10,0xc0
|
||
|
.long 0x7FA82699
|
||
|
li 8,0x10
|
||
|
.long 0x7FC92699
|
||
|
li 9,0x20
|
||
|
.long 0x7FEA2699
|
||
|
li 10,0x30
|
||
|
|
||
|
vsldoi 7,4,6,8
|
||
|
vaddubm 18,5,7
|
||
|
vaddubm 19,6,18
|
||
|
|
||
|
srdi 6,6,4
|
||
|
|
||
|
.long 0x7C602E99
|
||
|
.long 0x7E082E99
|
||
|
subic. 6,6,8
|
||
|
.long 0x7EC92E99
|
||
|
.long 0x7F8A2E99
|
||
|
addi 5,5,0x40
|
||
|
vperm 3,3,3,12
|
||
|
vperm 16,16,16,12
|
||
|
vperm 22,22,22,12
|
||
|
vperm 28,28,28,12
|
||
|
|
||
|
vxor 2,3,0
|
||
|
|
||
|
.long 0x11B0BCC8
|
||
|
.long 0x11D0C4C8
|
||
|
.long 0x11F0CCC8
|
||
|
|
||
|
vperm 11,17,9,18
|
||
|
vperm 5,22,28,19
|
||
|
vperm 10,17,9,19
|
||
|
vperm 6,22,28,18
|
||
|
.long 0x12B68CC8
|
||
|
.long 0x12855CC8
|
||
|
.long 0x137C4CC8
|
||
|
.long 0x134654C8
|
||
|
|
||
|
vxor 21,21,14
|
||
|
vxor 20,20,13
|
||
|
vxor 27,27,21
|
||
|
vxor 26,26,15
|
||
|
|
||
|
blt .Ltail_4x
|
||
|
|
||
|
.Loop_4x:
|
||
|
.long 0x7C602E99
|
||
|
.long 0x7E082E99
|
||
|
subic. 6,6,4
|
||
|
.long 0x7EC92E99
|
||
|
.long 0x7F8A2E99
|
||
|
addi 5,5,0x40
|
||
|
vperm 16,16,16,12
|
||
|
vperm 22,22,22,12
|
||
|
vperm 28,28,28,12
|
||
|
vperm 3,3,3,12
|
||
|
|
||
|
.long 0x1002ECC8
|
||
|
.long 0x1022F4C8
|
||
|
.long 0x1042FCC8
|
||
|
.long 0x11B0BCC8
|
||
|
.long 0x11D0C4C8
|
||
|
.long 0x11F0CCC8
|
||
|
|
||
|
vxor 0,0,20
|
||
|
vxor 1,1,27
|
||
|
vxor 2,2,26
|
||
|
vperm 5,22,28,19
|
||
|
vperm 6,22,28,18
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
.long 0x12855CC8
|
||
|
.long 0x134654C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x12B68CC8
|
||
|
.long 0x137C4CC8
|
||
|
.long 0x100044C8
|
||
|
|
||
|
vxor 20,20,13
|
||
|
vxor 26,26,15
|
||
|
vxor 2,2,3
|
||
|
vxor 21,21,14
|
||
|
vxor 2,2,6
|
||
|
vxor 27,27,21
|
||
|
vxor 2,2,0
|
||
|
bge .Loop_4x
|
||
|
|
||
|
.Ltail_4x:
|
||
|
.long 0x1002ECC8
|
||
|
.long 0x1022F4C8
|
||
|
.long 0x1042FCC8
|
||
|
|
||
|
vxor 0,0,20
|
||
|
vxor 1,1,27
|
||
|
|
||
|
.long 0x10E044C8
|
||
|
|
||
|
vsldoi 5,1,4,8
|
||
|
vsldoi 6,4,1,8
|
||
|
vxor 2,2,26
|
||
|
vxor 0,0,5
|
||
|
vxor 2,2,6
|
||
|
|
||
|
vsldoi 0,0,0,8
|
||
|
vxor 0,0,7
|
||
|
|
||
|
vsldoi 6,0,0,8
|
||
|
.long 0x100044C8
|
||
|
vxor 6,6,2
|
||
|
vxor 0,0,6
|
||
|
|
||
|
addic. 6,6,4
|
||
|
beq .Ldone_4x
|
||
|
|
||
|
.long 0x7C602E99
|
||
|
cmpldi 6,2
|
||
|
li 6,-4
|
||
|
blt .Lone
|
||
|
.long 0x7E082E99
|
||
|
beq .Ltwo
|
||
|
|
||
|
.Lthree:
|
||
|
.long 0x7EC92E99
|
||
|
vperm 3,3,3,12
|
||
|
vperm 16,16,16,12
|
||
|
vperm 22,22,22,12
|
||
|
|
||
|
vxor 2,3,0
|
||
|
vor 29,23,23
|
||
|
vor 30, 24, 24
|
||
|
vor 31,25,25
|
||
|
|
||
|
vperm 5,16,22,19
|
||
|
vperm 6,16,22,18
|
||
|
.long 0x12B08CC8
|
||
|
.long 0x13764CC8
|
||
|
.long 0x12855CC8
|
||
|
.long 0x134654C8
|
||
|
|
||
|
vxor 27,27,21
|
||
|
b .Ltail_4x
|
||
|
|
||
|
.align 4
|
||
|
.Ltwo:
|
||
|
vperm 3,3,3,12
|
||
|
vperm 16,16,16,12
|
||
|
|
||
|
vxor 2,3,0
|
||
|
vperm 5,4,16,19
|
||
|
vperm 6,4,16,18
|
||
|
|
||
|
vsldoi 29,4,17,8
|
||
|
vor 30, 17, 17
|
||
|
vsldoi 31,17,4,8
|
||
|
|
||
|
.long 0x12855CC8
|
||
|
.long 0x13704CC8
|
||
|
.long 0x134654C8
|
||
|
|
||
|
b .Ltail_4x
|
||
|
|
||
|
.align 4
|
||
|
.Lone:
|
||
|
vperm 3,3,3,12
|
||
|
|
||
|
vsldoi 29,4,9,8
|
||
|
vor 30, 9, 9
|
||
|
vsldoi 31,9,4,8
|
||
|
|
||
|
vxor 2,3,0
|
||
|
vxor 20,20,20
|
||
|
vxor 27,27,27
|
||
|
vxor 26,26,26
|
||
|
|
||
|
b .Ltail_4x
|
||
|
|
||
|
.Ldone_4x:
|
||
|
vperm 0,0,0,12
|
||
|
.long 0x7C001F99
|
||
|
|
||
|
li 10,63
|
||
|
li 11,79
|
||
|
or 12,12,12
|
||
|
lvx 20,10,1
|
||
|
addi 10,10,32
|
||
|
lvx 21,11,1
|
||
|
addi 11,11,32
|
||
|
lvx 22,10,1
|
||
|
addi 10,10,32
|
||
|
lvx 23,11,1
|
||
|
addi 11,11,32
|
||
|
lvx 24,10,1
|
||
|
addi 10,10,32
|
||
|
lvx 25,11,1
|
||
|
addi 11,11,32
|
||
|
lvx 26,10,1
|
||
|
addi 10,10,32
|
||
|
lvx 27,11,1
|
||
|
addi 11,11,32
|
||
|
lvx 28,10,1
|
||
|
addi 10,10,32
|
||
|
lvx 29,11,1
|
||
|
addi 11,11,32
|
||
|
lvx 30,10,1
|
||
|
lvx 31,11,1
|
||
|
addi 1,1,256
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x04,0,0x80,0,4,0
|
||
|
.long 0
|
||
|
.size gcm_ghash_p8,.-gcm_ghash_p8
|
||
|
|
||
|
.byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||
|
.align 2
|
||
|
.align 2
|