openbsd-ports/x11/mplayer/patches/patch-loader_wrapper_S
biorn b718e5ab1f update to 1.0pre5
ok pvalchev@
2004-10-18 06:48:08 +00:00

94 lines
2.2 KiB
Plaintext

$OpenBSD: patch-loader_wrapper_S,v 1.3 2004/10/18 06:48:20 biorn Exp $
--- loader/wrapper.S.orig Mon Nov 25 21:37:12 2002
+++ loader/wrapper.S Thu Jul 15 09:29:23 2004
@@ -1,27 +1,36 @@
+#include "../mangle.h"
+#if defined(__OpenBSD__) && !defined(__ELF__)
+.data
+#else
.section .data
-.globl caller_return
-caller_return:
+#endif
+.globl MANGLEA(caller_return)
+MANGLEA(caller_return):
.long 0
-.globl report_entry
-report_entry:
- .long null_call
-.globl report_ret
-report_ret:
- .long null_call
-.global wrapper_target
-wrapper_target:
- .long null_call
+.globl MANGLEA(report_entry)
+MANGLEA(report_entry):
+ .long MANGLEA(null_call)
+.globl MANGLEA(report_ret)
+MANGLEA(report_ret):
+ .long MANGLEA(null_call)
+.global MANGLEA(wrapper_target)
+MANGLEA(wrapper_target):
+ .long MANGLEA(null_call)
+#if defined(__OpenBSD__) && !defined(__ELF__)
+.text
+#else
.section .text
-.globl null_call
- .type null_call, @function
+#endif
+.globl MANGLEA(null_call)
+ .type MANGLEA(null_call), @function
.balign 16,0x90
-null_call:
+MANGLEA(null_call):
ret
-.globl wrapper
- .type wrapper, @function
+.globl MANGLEA(wrapper)
+ .type MANGLEA(wrapper), @function
.balign 16,0x90
-wrapper:
+MANGLEA(wrapper):
pusha # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI)
pushf # store flags
@@ -39,7 +48,7 @@ wrapper:
push %eax
push %edx
- call *report_entry # report entry
+ call *MANGLEA(report_entry) # report entry
test %eax, %eax
jnz .Ldone
@@ -48,14 +57,14 @@ wrapper:
popf # restore flags
popa # restore registers
- popl caller_return # switch return addresses
+ popl MANGLEA(caller_return) # switch return addresses
pushl $.Lwrapper_return
- jmp *wrapper_target # wrapper_target should return at .Lwrapper_return
+ jmp *MANGLEA(wrapper_target) # wrapper_target should return at .Lwrapper_return
.balign 16, 0x90
.Lwrapper_return:
- pushl caller_return # restore the original return address
+ pushl MANGLEA(caller_return) # restore the original return address
pusha # more for reference sake here
pushf
@@ -73,7 +82,7 @@ wrapper:
push %eax
push %edx
- call *report_ret # report the return information (same args)
+ call *MANGLEA(report_ret) # report the return information (same args)
.Ldone:
leave