]> git.ipfire.org Git - thirdparty/openssl.git/blob - ms/uplink-x86.pl
Split ms/uplink.pl to corresponding platform versions.
[thirdparty/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();