Mercurial > mplayer.hg
changeset 30470:9ccf3bea4cf1
Prefix EXTERN_ASM to global variables to match them to an extern prefix of C.
author | komh |
---|---|
date | Fri, 05 Feb 2010 11:00:59 +0000 |
parents | 6dd1ae2298f3 |
children | ef00ce26e9b5 |
files | loader/wrapper.S |
diffstat | 1 files changed, 28 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/loader/wrapper.S Fri Feb 05 10:54:28 2010 +0000 +++ b/loader/wrapper.S Fri Feb 05 11:00:59 2010 +0000 @@ -1,27 +1,33 @@ +#include "config.h" + +#define GLUE(a, b) a ## b +#define JOIN(a, b) GLUE(a, b) +#define MANGLE(s) JOIN(EXTERN_ASM, s) + .data -.globl caller_return -caller_return: +.globl MANGLE(caller_return) +MANGLE(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 MANGLE(report_entry) +MANGLE(report_entry): + .long MANGLE(null_call) +.globl MANGLE(report_ret) +MANGLE(report_ret): + .long MANGLE(null_call) +.global MANGLE(wrapper_target) +MANGLE(wrapper_target): + .long MANGLE(null_call) .text -.globl null_call - .type null_call, @function +.globl MANGLE(null_call) + .type MANGLE(null_call), @function .balign 16,0x90 -null_call: +MANGLE(null_call): ret -.globl wrapper - .type wrapper, @function +.globl MANGLE(wrapper) + .type MANGLE(wrapper), @function .balign 16,0x90 -wrapper: +MANGLE(wrapper): pusha # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI) pushf # store flags @@ -39,7 +45,7 @@ push %eax push %edx - call *report_entry # report entry + call *MANGLE(report_entry) # report entry test %eax, %eax jnz .Ldone @@ -48,14 +54,14 @@ popf # restore flags popa # restore registers - popl caller_return # switch return addresses + popl MANGLE(caller_return) # switch return addresses pushl $.Lwrapper_return - jmp *wrapper_target # wrapper_target should return at .Lwrapper_return + jmp *MANGLE(wrapper_target) # wrapper_target should return at .Lwrapper_return .balign 16, 0x90 .Lwrapper_return: - pushl caller_return # restore the original return address + pushl MANGLE(caller_return) # restore the original return address pusha # more for reference sake here pushf @@ -73,7 +79,7 @@ push %eax push %edx - call *report_ret # report the return information (same args) + call *MANGLE(report_ret) # report the return information (same args) .Ldone: leave