diff options
author | Andy Polyakov <appro@openssl.org> | 2005-05-17 00:08:28 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2005-05-17 00:08:28 +0000 |
commit | ea1b02db6ab4864befde88ed03099f075cf7db76 (patch) | |
tree | 6aa77dcf5934d6197d9fafa59d3ce55f4eb019f4 /ms/uplink.pl | |
parent | 2c4b354d32b1f34314f1a3ebeee0d0fcfb7505a0 (diff) |
OPENSSL_Applink update.
Diffstat (limited to 'ms/uplink.pl')
-rwxr-xr-x | ms/uplink.pl | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/ms/uplink.pl b/ms/uplink.pl index 801f6e01fa..cd9d37f56f 100755 --- a/ms/uplink.pl +++ b/ms/uplink.pl @@ -29,10 +29,37 @@ $arg = shift; if ($arg =~ /win32n/) { ia32nasm(); } elsif ($arg =~ /win32/) { ia32masm(); } -elsif ($arg =~ /ia64/) { ia64ias(); } -elsif ($arg =~ /amd64/) { amd64masm(); } +elsif ($arg =~ /coff/) { ia32gas(); } +elsif ($arg =~ /win64i/ or $arg =~ /ia64/) { ia64ias(); } +elsif ($arg =~ /win64a/ or $arg =~ /amd64/) { amd64masm(); } else { die "nonsense $arg"; } +sub ia32gas() { +print <<___; +.text +___ +for ($i=1;$i<=$N;$i++) { +print <<___; +.def .Lazy$i; .scl 3; .type 32; .endef +.align 4 +.Lazy$i: + pushl \$$i + pushl _OPENSSL_UplinkTable + call _OPENSSL_Uplink + addl \$8,%esp + jmp *(_OPENSSL_UplinkTable+4*$i) +___ +} +print <<___; +.data +.align 4 +.globl _OPENSSL_UplinkTable +_OPENSSL_UplinkTable: + .long $N +___ +for ($i=1;$i<=$N;$i++) { print " .long .Lazy$i\n"; } +} + sub ia32masm() { print <<___; .386P |