Make WIN32 static builds work again.
[openssl.git] / ms / uplink-x86.pl
1 #!/usr/bin/env perl
2
3 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
4 push(@INC, "${dir}.", "${dir}../crypto/perlasm");
5 require "x86asm.pl";
6
7 require "uplink-common.pl";
8
9 &asm_init($ARGV[0],"uplink-x86");
10
11 &external_label("OPENSSL_Uplink");
12 &public_label("OPENSSL_UplinkTable");
13
14 for ($i=1;$i<=$N;$i++) {
15 &function_begin_B("_\$lazy${i}");
16         &lea    ("eax",&DWP(&label("OPENSSL_UplinkTable")));
17         &push   ("eax");
18         &push   ($i);
19         &call   (&label("OPENSSL_Uplink"));
20         &add    ("esp",8);
21         &pop    ("eax");
22         &jmp_ptr(&DWP(4*$i,"eax"));
23 &function_end_B("_\$lazy${i}");
24 }
25
26 &dataseg();
27 &align(4);
28 &set_label("OPENSSL_UplinkTable");
29 &data_word($N);
30 for ($i=1;$i<=$N;$i++) {
31 &data_word(&label("_\$lazy${i}"));
32 }
33 &asm_finish();