| Index: openssl/ms/uplink-x86.pl
|
| ===================================================================
|
| --- openssl/ms/uplink-x86.pl (revision 0)
|
| +++ openssl/ms/uplink-x86.pl (revision 0)
|
| @@ -0,0 +1,33 @@
|
| +#!/usr/bin/env perl
|
| +
|
| +$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
|
| +push(@INC, "${dir}.", "${dir}../crypto/perlasm");
|
| +require "x86asm.pl";
|
| +
|
| +require "uplink-common.pl";
|
| +
|
| +&asm_init($ARGV[0],"uplink-x86");
|
| +
|
| +&external_label("OPENSSL_Uplink");
|
| +&public_label("OPENSSL_UplinkTable");
|
| +
|
| +for ($i=1;$i<=$N;$i++) {
|
| +&function_begin_B("_\$lazy${i}");
|
| + &lea ("eax",&DWP(&label("OPENSSL_UplinkTable")));
|
| + &push ("eax");
|
| + &push ($i);
|
| + &call (&label("OPENSSL_Uplink"));
|
| + &add ("esp",8);
|
| + &pop ("eax");
|
| + &jmp_ptr(&DWP(4*$i,"eax"));
|
| +&function_end_B("_\$lazy${i}");
|
| +}
|
| +
|
| +&dataseg();
|
| +&align(4);
|
| +&set_label("OPENSSL_UplinkTable");
|
| +&data_word($N);
|
| +for ($i=1;$i<=$N;$i++) {
|
| +&data_word(&label("_\$lazy${i}"));
|
| +}
|
| +&asm_finish();
|
|
|