summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/perlasm
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/perlasm')
-rw-r--r--src/lib/libcrypto/perlasm/cbc.pl41
-rw-r--r--src/lib/libcrypto/perlasm/x86asm.pl9
2 files changed, 30 insertions, 20 deletions
diff --git a/src/lib/libcrypto/perlasm/cbc.pl b/src/lib/libcrypto/perlasm/cbc.pl
index 0145c4f0cc..22149c680e 100644
--- a/src/lib/libcrypto/perlasm/cbc.pl
+++ b/src/lib/libcrypto/perlasm/cbc.pl
@@ -146,9 +146,15 @@ sub cbc
146 &mov($count, &wparam(2)); # length 146 &mov($count, &wparam(2)); # length
147 &and($count, 7); 147 &and($count, 7);
148 &jz(&label("finish")); 148 &jz(&label("finish"));
149 &call(&label("PIC_point"));
150&set_label("PIC_point");
151 &blindpop("edx");
152 &lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx"));
153 &mov($count,&DWP(0,"ecx",$count,4))
154 &add($count,"edx");
149 &xor("ecx","ecx"); 155 &xor("ecx","ecx");
150 &xor("edx","edx"); 156 &xor("edx","edx");
151 &mov($count,&DWP(&label("cbc_enc_jmp_table"),"",$count,4)); 157 #&mov($count,&DWP(&label("cbc_enc_jmp_table"),"",$count,4));
152 &jmp_ptr($count); 158 &jmp_ptr($count);
153 159
154&set_label("ej7"); 160&set_label("ej7");
@@ -318,22 +324,23 @@ sub cbc
318 324
319 &set_label("cbc_enc_jmp_table",1); 325 &set_label("cbc_enc_jmp_table",1);
320 &data_word("0"); 326 &data_word("0");
321 &data_word(&label("ej1")); 327 &data_word(&label("ej1")."-".&label("PIC_point"));
322 &data_word(&label("ej2")); 328 &data_word(&label("ej2")."-".&label("PIC_point"));
323 &data_word(&label("ej3")); 329 &data_word(&label("ej3")."-".&label("PIC_point"));
324 &data_word(&label("ej4")); 330 &data_word(&label("ej4")."-".&label("PIC_point"));
325 &data_word(&label("ej5")); 331 &data_word(&label("ej5")."-".&label("PIC_point"));
326 &data_word(&label("ej6")); 332 &data_word(&label("ej6")."-".&label("PIC_point"));
327 &data_word(&label("ej7")); 333 &data_word(&label("ej7")."-".&label("PIC_point"));
328 &set_label("cbc_dec_jmp_table",1); 334 # not used
329 &data_word("0"); 335 #&set_label("cbc_dec_jmp_table",1);
330 &data_word(&label("dj1")); 336 #&data_word("0");
331 &data_word(&label("dj2")); 337 #&data_word(&label("dj1")."-".&label("PIC_point"));
332 &data_word(&label("dj3")); 338 #&data_word(&label("dj2")."-".&label("PIC_point"));
333 &data_word(&label("dj4")); 339 #&data_word(&label("dj3")."-".&label("PIC_point"));
334 &data_word(&label("dj5")); 340 #&data_word(&label("dj4")."-".&label("PIC_point"));
335 &data_word(&label("dj6")); 341 #&data_word(&label("dj5")."-".&label("PIC_point"));
336 &data_word(&label("dj7")); 342 #&data_word(&label("dj6")."-".&label("PIC_point"));
343 #&data_word(&label("dj7")."-".&label("PIC_point"));
337 344
338 &function_end_B($name); 345 &function_end_B($name);
339 346
diff --git a/src/lib/libcrypto/perlasm/x86asm.pl b/src/lib/libcrypto/perlasm/x86asm.pl
index 9a3d85b098..1cb96e914a 100644
--- a/src/lib/libcrypto/perlasm/x86asm.pl
+++ b/src/lib/libcrypto/perlasm/x86asm.pl
@@ -18,9 +18,9 @@ sub main'asm_init
18 ($type,$fn,$i386)=@_; 18 ($type,$fn,$i386)=@_;
19 $filename=$fn; 19 $filename=$fn;
20 20
21 $cpp=$sol=$aout=$win32=$gaswin=0; 21 $elf=$cpp=$sol=$aout=$win32=$gaswin=0;
22 if ( ($type eq "elf")) 22 if ( ($type eq "elf"))
23 { require "x86unix.pl"; } 23 { $elf=1; require "x86unix.pl"; }
24 elsif ( ($type eq "a.out")) 24 elsif ( ($type eq "a.out"))
25 { $aout=1; require "x86unix.pl"; } 25 { $aout=1; require "x86unix.pl"; }
26 elsif ( ($type eq "gaswin")) 26 elsif ( ($type eq "gaswin"))
@@ -47,6 +47,9 @@ EOF
47 exit(1); 47 exit(1);
48 } 48 }
49 49
50 $pic=0;
51 for (@ARGV) { $pic=1 if (/\-[fK]PIC/i); }
52
50 &asm_init_output(); 53 &asm_init_output();
51 54
52&comment("Don't even think of reading this code"); 55&comment("Don't even think of reading this code");
@@ -91,7 +94,7 @@ $tmp
91#undef SIZE 94#undef SIZE
92#undef TYPE 95#undef TYPE
93#define SIZE(a,b) 96#define SIZE(a,b)
94#define TYPE(a,b) 97#define TYPE(a,b) .def a; .scl 2; .type 32; .endef
95#endif /* __CYGWIN || __DJGPP */ 98#endif /* __CYGWIN || __DJGPP */
96#endif 99#endif
97 100