[vpsm4_ex][aarch64] Move constant to .rodata section

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26509)
This commit is contained in:
Alexey Moksyakov 2025-01-23 19:04:00 +03:00 committed by Tomas Mraz
parent 110f1afd12
commit e4b899f53c
1 changed files with 15 additions and 10 deletions

View File

@ -475,12 +475,13 @@ sub load_sbox () {
my $data = shift;
$code.=<<___;
ldr $MaskQ, .Lsbox_magic
ldr $TAHMatQ, .Lsbox_magic+16
ldr $TALMatQ, .Lsbox_magic+32
ldr $ATAHMatQ, .Lsbox_magic+48
ldr $ATALMatQ, .Lsbox_magic+64
ldr $ANDMaskQ, .Lsbox_magic+80
adrp $xtmp2, .Lsbox_magic
ldr $MaskQ, [$xtmp2, #:lo12:.Lsbox_magic]
ldr $TAHMatQ, [$xtmp2, #:lo12:.Lsbox_magic+16]
ldr $TALMatQ, [$xtmp2, #:lo12:.Lsbox_magic+32]
ldr $ATAHMatQ, [$xtmp2, #:lo12:.Lsbox_magic+48]
ldr $ATALMatQ, [$xtmp2, #:lo12:.Lsbox_magic+64]
ldr $ANDMaskQ, [$xtmp2, #:lo12:.Lsbox_magic+80]
___
}
@ -525,7 +526,8 @@ sub compute_tweak_vec() {
my $std = shift;
&rbit(@vtmp[2],$src,$std);
$code.=<<___;
ldr @qtmp[0], .Lxts_magic
adrp $xtmp2, .Lxts_magic
ldr @qtmp[0], [$xtmp2, #:lo12:.Lxts_magic]
shl $des.16b, @vtmp[2].16b, #1
ext @vtmp[1].16b, @vtmp[2].16b, @vtmp[2].16b,#15
ushr @vtmp[1].16b, @vtmp[1].16b, #7
@ -583,13 +585,16 @@ ___
&load_sbox();
&rev32($vkey,$vkey);
$code.=<<___;
adr $pointer,.Lshuffles
adrp $pointer,.Lshuffles
add $pointer,$pointer,#:lo12:.Lshuffles
ld1 {$vmap.2d},[$pointer]
adr $pointer,.Lfk
adrp $pointer,.Lfk
add $pointer,$pointer,#:lo12:.Lfk
ld1 {$vfk.2d},[$pointer]
eor $vkey.16b,$vkey.16b,$vfk.16b
mov $schedules,#32
adr $pointer,.Lck
adrp $pointer,.Lck
add $pointer,$pointer,#:lo12:.Lck
movi @vtmp[0].16b,#64
cbnz $enc,1f
add $keys,$keys,124