summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/whrlpool
diff options
context:
space:
mode:
authormiod <>2023-02-01 20:45:04 +0000
committermiod <>2023-02-01 20:45:04 +0000
commitdc4b2cf3e0979364f14ff89a07ffafc47435e2e7 (patch)
tree58219f5c6538172b9d00f33bf48c9a61419ec7a0 /src/lib/libcrypto/whrlpool
parent86f42338b2994b620482c37e3d0d9fc3ba1f523b (diff)
downloadopenbsd-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.pl12
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();