diff options
author | Andy Polyakov <appro@openssl.org> | 2008-12-19 11:17:29 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2008-12-19 11:17:29 +0000 |
commit | be01f79d3d1b1e661d390d86cff4335daed8bfcd (patch) | |
tree | be37d6b3ef3a79d9233b336d676d220b0555ce48 /ms | |
parent | bf785c984907f74d0a869ed1e6b5855888b1df96 (diff) | |
download | openssl-new-be01f79d3d1b1e661d390d86cff4335daed8bfcd.tar.gz |
x86_64 assembler pack: add support for Win64 SEH.
Diffstat (limited to 'ms')
-rwxr-xr-x | ms/uplink-x86_64.pl | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/ms/uplink-x86_64.pl b/ms/uplink-x86_64.pl index 80807ce05b..9acbf6be6f 100755 --- a/ms/uplink-x86_64.pl +++ b/ms/uplink-x86_64.pl @@ -12,6 +12,7 @@ $prefix="_lazy"; print <<___; .text .extern OPENSSL_Uplink +.globl OPENSSL_UplinkTable ___ for ($i=1;$i<=$N;$i++) { print <<___; @@ -30,8 +31,8 @@ $prefix${i}: mov 56(%rsp),%rdx mov 64(%rsp),%r8 mov 72(%rsp),%r9 - add \$40,%rsp lea OPENSSL_UplinkTable(%rip),%rax + add \$40,%rsp jmp *8*$i(%rax) $prefix${i}_end: .size $prefix${i},.-$prefix${i} @@ -39,24 +40,25 @@ ___ } print <<___; .data -.globl OPENSSL_UplinkTable OPENSSL_UplinkTable: .quad $N ___ for ($i=1;$i<=$N;$i++) { print " .quad $prefix$i\n"; } print <<___; -.section .pdata +.section .pdata,"r" +.align 4 ___ for ($i=1;$i<=$N;$i++) { print <<___; - .long $prefix${i} - .long $prefix${i}_end - .long ${prefix}_unwind_info + .rva $prefix${i},$prefix${i}_end,${prefix}_unwind_info ___ } print <<___; -.section .xdata +.section .xdata,"r" +.align 8 ${prefix}_unwind_info: .byte 0x01,0x04,0x01,0x00 .byte 0x04,0x42,0x00,0x00 ___ + +close STDOUT; |