OLD | NEW |
(Empty) | |
| 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(); |
OLD | NEW |