[MPlayer-cvslog] r21384 - in trunk/loader: Makefile stubs.S win32.c
reimar
subversion at mplayerhq.hu
Wed Nov 29 13:56:52 CET 2006
Author: reimar
Date: Wed Nov 29 13:56:52 2006
New Revision: 21384
Removed:
trunk/loader/stubs.S
Modified:
trunk/loader/Makefile
trunk/loader/win32.c
Log:
Get rid of stubs.S, move code to inline asm.
Modified: trunk/loader/Makefile
==============================================================================
--- trunk/loader/Makefile (original)
+++ trunk/loader/Makefile Wed Nov 29 13:56:52 2006
@@ -8,7 +8,7 @@
SRCS= driver.c afl.c vfl.c
ifneq ($(TARGET_WIN32),yes)
SRCS+= ldt_keeper.c pe_image.c module.c ext.c win32.c \
- pe_resource.c resource.c registry.c elfdll.c stubs.S
+ pe_resource.c resource.c registry.c elfdll.c
# QTX emulation is not supported in Darwin
ifneq ($(TARGET_OS),Darwin)
SRCS+= wrapper.S
Modified: trunk/loader/win32.c
==============================================================================
--- trunk/loader/win32.c (original)
+++ trunk/loader/win32.c Wed Nov 29 13:56:52 2006
@@ -18,6 +18,7 @@
*/
#include "config.h"
+#include "mangle.h"
#ifdef MPLAYER
#ifdef USE_QTX_CODECS
@@ -4587,8 +4588,25 @@
/* these are needed for mss1 */
-/* defined in stubs.s */
-void exp_EH_prolog(void);
+/**
+ * \brief this symbol is defined within exp_EH_prolog_dummy
+ * \param dest jump target
+ */
+void exp_EH_prolog(void *dest);
+//! just a dummy function that acts a container for the asm section
+void exp_EH_prolog_dummy(void) {
+ asm volatile (
+// take care, this "function" may not change flags or
+// registers besides eax (which is also why we can't use
+// exp_EH_prolog_dummy directly)
+MANGLE(exp_EH_prolog)": \n\t"
+ "pop %eax \n\t"
+ "push %ebp \n\t"
+ "mov %esp, %ebp \n\t"
+ "lea -12(%esp), %esp \n\t"
+ "jmp *%eax \n\t"
+ );
+}
#include <netinet/in.h>
static WINAPI inline unsigned long int exphtonl(unsigned long int hostlong)
More information about the MPlayer-cvslog
mailing list