diff options
author | miod <> | 2023-02-01 20:45:04 +0000 |
---|---|---|
committer | miod <> | 2023-02-01 20:45:04 +0000 |
commit | dc4b2cf3e0979364f14ff89a07ffafc47435e2e7 (patch) | |
tree | 58219f5c6538172b9d00f33bf48c9a61419ec7a0 /src/lib/libcrypto/whrlpool | |
parent | 86f42338b2994b620482c37e3d0d9fc3ba1f523b (diff) | |
download | openbsd-dc4b2cf3e0979364f14ff89a07ffafc47435e2e7.tar.gz openbsd-dc4b2cf3e0979364f14ff89a07ffafc47435e2e7.tar.bz2 openbsd-dc4b2cf3e0979364f14ff89a07ffafc47435e2e7.zip |
Move all data blocks from .text to .rodata and cleanup up and homogeneize code
responsible from getting the proper address of those blocks.
ok tb@ jsing@
Diffstat (limited to 'src/lib/libcrypto/whrlpool')
-rw-r--r-- | src/lib/libcrypto/whrlpool/asm/wp-mmx.pl | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libcrypto/whrlpool/asm/wp-mmx.pl b/src/lib/libcrypto/whrlpool/asm/wp-mmx.pl index 0ff8e5b612..a54d702c3f 100644 --- a/src/lib/libcrypto/whrlpool/asm/wp-mmx.pl +++ b/src/lib/libcrypto/whrlpool/asm/wp-mmx.pl | |||
@@ -77,6 +77,8 @@ sub row() | |||
77 | $tbl="ebp"; | 77 | $tbl="ebp"; |
78 | @mm=("mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7"); | 78 | @mm=("mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7"); |
79 | 79 | ||
80 | &static_label("table"); | ||
81 | |||
80 | &function_begin_B("whirlpool_block_mmx"); | 82 | &function_begin_B("whirlpool_block_mmx"); |
81 | &push ("ebp"); | 83 | &push ("ebp"); |
82 | &push ("ebx"); | 84 | &push ("ebx"); |
@@ -97,10 +99,8 @@ $tbl="ebp"; | |||
97 | &mov (&DWP(8,"ebx"),"ebp"); | 99 | &mov (&DWP(8,"ebx"),"ebp"); |
98 | &mov (&DWP(16,"ebx"),"eax"); # saved stack pointer | 100 | &mov (&DWP(16,"ebx"),"eax"); # saved stack pointer |
99 | 101 | ||
100 | &call (&label("pic_point")); | 102 | &picsetup($tbl); |
101 | &set_label("pic_point"); | 103 | &picsymbol($tbl, &label("table"), $tbl); |
102 | &blindpop($tbl); | ||
103 | &lea ($tbl,&DWP(&label("table")."-".&label("pic_point"),$tbl)); | ||
104 | 104 | ||
105 | &xor ("ecx","ecx"); | 105 | &xor ("ecx","ecx"); |
106 | &xor ("edx","edx"); | 106 | &xor ("edx","edx"); |
@@ -218,7 +218,9 @@ for($i=0;$i<8;$i++) { | |||
218 | &pop ("ebx"); | 218 | &pop ("ebx"); |
219 | &pop ("ebp"); | 219 | &pop ("ebp"); |
220 | &ret (); | 220 | &ret (); |
221 | &function_end_B("whirlpool_block_mmx"); | ||
221 | 222 | ||
223 | &rodataseg(); | ||
222 | &align(64); | 224 | &align(64); |
223 | &set_label("table"); | 225 | &set_label("table"); |
224 | &LL(0x18,0x18,0x60,0x18,0xc0,0x78,0x30,0xd8); | 226 | &LL(0x18,0x18,0x60,0x18,0xc0,0x78,0x30,0xd8); |
@@ -488,6 +490,6 @@ for($i=0;$i<8;$i++) { | |||
488 | &L(0xe4,0x27,0x41,0x8b,0xa7,0x7d,0x95,0xd8); | 490 | &L(0xe4,0x27,0x41,0x8b,0xa7,0x7d,0x95,0xd8); |
489 | &L(0xfb,0xee,0x7c,0x66,0xdd,0x17,0x47,0x9e); | 491 | &L(0xfb,0xee,0x7c,0x66,0xdd,0x17,0x47,0x9e); |
490 | &L(0xca,0x2d,0xbf,0x07,0xad,0x5a,0x83,0x33); | 492 | &L(0xca,0x2d,0xbf,0x07,0xad,0x5a,0x83,0x33); |
493 | &previous(); | ||
491 | 494 | ||
492 | &function_end_B("whirlpool_block_mmx"); | ||
493 | &asm_finish(); | 495 | &asm_finish(); |