Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
cc01e8ff
Commit
cc01e8ff
authored
Nov 23, 2005
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Preserve 16-byte stack alignment in the various assembly
functions. Needed for MacOSX.
parent
5b5a2f32
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
51 additions
and
24 deletions
+51
-24
relay16.c
dlls/kernel/relay16.c
+15
-6
misc.c
dlls/msvcrt/misc.c
+2
-1
loader.c
dlls/ntdll/loader.c
+1
-0
relay.c
dlls/ntdll/relay.c
+15
-6
resource.c
dlls/ntdll/resource.c
+11
-10
signal_i386.c
dlls/ntdll/signal_i386.c
+2
-0
winproc.c
dlls/user/winproc.c
+1
-0
port.c
libs/wine/port.c
+2
-0
preloader.c
loader/preloader.c
+1
-1
import.c
tools/winebuild/import.c
+1
-0
No files found.
dlls/kernel/relay16.c
View file @
cc01e8ff
...
@@ -285,14 +285,23 @@ extern int call_entry_point( void *func, int nb_args, const int *args );
...
@@ -285,14 +285,23 @@ extern int call_entry_point( void *func, int nb_args, const int *args );
__ASM_GLOBAL_FUNC
(
call_entry_point
,
__ASM_GLOBAL_FUNC
(
call_entry_point
,
"
\t
pushl %ebp
\n
"
"
\t
pushl %ebp
\n
"
"
\t
movl %esp,%ebp
\n
"
"
\t
movl %esp,%ebp
\n
"
"
\t
pushl %esi
\n
"
"
\t
pushl %edi
\n
"
"
\t
movl 12(%ebp),%edx
\n
"
"
\t
shll $2,%edx
\n
"
"
\t
jz 1f
\n
"
"
\t
subl %edx,%esp
\n
"
"
\t
andl $~15,%esp
\n
"
"
\t
movl 12(%ebp),%ecx
\n
"
"
\t
movl 12(%ebp),%ecx
\n
"
"
\t
movl 16(%ebp),%e
dx
\n
"
"
\t
movl 16(%ebp),%e
si
\n
"
"
\t
jecxz 1f
\n
"
"
\t
movl %esp,%edi
\n
"
"
2:
\t
pushl -4(%edx,%ecx,4)
\n
"
"
\t
cld
\n
"
"
\t
loop 2b
\n
"
"
\t
rep; movsl
\n
"
"1:
\t
call *8(%ebp)
\n
"
"1:
\t
call *8(%ebp)
\n
"
"
\t
movl %ebp,%esp
\n
"
"
\t
leal -8(%ebp),%esp
\n
"
"
\t
leave
\n
"
"
\t
popl %edi
\n
"
"
\t
popl %esi
\n
"
"
\t
popl %ebp
\n
"
"
\t
ret"
);
"
\t
ret"
);
...
...
dlls/msvcrt/misc.c
View file @
cc01e8ff
...
@@ -125,6 +125,7 @@ __ASM_GLOBAL_FUNC(_chkesp,
...
@@ -125,6 +125,7 @@ __ASM_GLOBAL_FUNC(_chkesp,
"ret
\n
"
"ret
\n
"
"1:
\t
pushl %ebp
\n\t
"
"1:
\t
pushl %ebp
\n\t
"
"movl %esp,%ebp
\n\t
"
"movl %esp,%ebp
\n\t
"
"subl $12,%esp
\n\t
"
"pushl %eax
\n\t
"
"pushl %eax
\n\t
"
"pushl %ecx
\n\t
"
"pushl %ecx
\n\t
"
"pushl %edx
\n\t
"
"pushl %edx
\n\t
"
...
@@ -132,7 +133,7 @@ __ASM_GLOBAL_FUNC(_chkesp,
...
@@ -132,7 +133,7 @@ __ASM_GLOBAL_FUNC(_chkesp,
"popl %edx
\n\t
"
"popl %edx
\n\t
"
"popl %ecx
\n\t
"
"popl %ecx
\n\t
"
"popl %eax
\n\t
"
"popl %eax
\n\t
"
"
popl %ebp
\n\t
"
"
leave
\n\t
"
"ret"
);
"ret"
);
void
MSVCRT_chkesp_fail
(
void
)
void
MSVCRT_chkesp_fail
(
void
)
...
...
dlls/ntdll/loader.c
View file @
cc01e8ff
...
@@ -144,6 +144,7 @@ __ASM_GLOBAL_FUNC(call_dll_entry_point,
...
@@ -144,6 +144,7 @@ __ASM_GLOBAL_FUNC(call_dll_entry_point,
"pushl %ebp
\n\t
"
"pushl %ebp
\n\t
"
"movl %esp,%ebp
\n\t
"
"movl %esp,%ebp
\n\t
"
"pushl %ebx
\n\t
"
"pushl %ebx
\n\t
"
"subl $8,%esp
\n\t
"
"pushl 20(%ebp)
\n\t
"
"pushl 20(%ebp)
\n\t
"
"pushl 16(%ebp)
\n\t
"
"pushl 16(%ebp)
\n\t
"
"pushl 12(%ebp)
\n\t
"
"pushl 12(%ebp)
\n\t
"
...
...
dlls/ntdll/relay.c
View file @
cc01e8ff
...
@@ -451,14 +451,23 @@ extern LONGLONG call_entry_point( void *func, int nb_args, const int *args );
...
@@ -451,14 +451,23 @@ extern LONGLONG call_entry_point( void *func, int nb_args, const int *args );
__ASM_GLOBAL_FUNC
(
call_entry_point
,
__ASM_GLOBAL_FUNC
(
call_entry_point
,
"
\t
pushl %ebp
\n
"
"
\t
pushl %ebp
\n
"
"
\t
movl %esp,%ebp
\n
"
"
\t
movl %esp,%ebp
\n
"
"
\t
pushl %esi
\n
"
"
\t
pushl %edi
\n
"
"
\t
movl 12(%ebp),%edx
\n
"
"
\t
shll $2,%edx
\n
"
"
\t
jz 1f
\n
"
"
\t
subl %edx,%esp
\n
"
"
\t
andl $~15,%esp
\n
"
"
\t
movl 12(%ebp),%ecx
\n
"
"
\t
movl 12(%ebp),%ecx
\n
"
"
\t
movl 16(%ebp),%e
dx
\n
"
"
\t
movl 16(%ebp),%e
si
\n
"
"
\t
jecxz 1f
\n
"
"
\t
movl %esp,%edi
\n
"
"
2:
\t
pushl -4(%edx,%ecx,4)
\n
"
"
\t
cld
\n
"
"
\t
loop 2b
\n
"
"
\t
rep; movsl
\n
"
"1:
\t
call *8(%ebp)
\n
"
"1:
\t
call *8(%ebp)
\n
"
"
\t
movl %ebp,%esp
\n
"
"
\t
leal -8(%ebp),%esp
\n
"
"
\t
leave
\n
"
"
\t
popl %edi
\n
"
"
\t
popl %esi
\n
"
"
\t
popl %ebp
\n
"
"
\t
ret"
);
"
\t
ret"
);
...
...
dlls/ntdll/resource.c
View file @
cc01e8ff
...
@@ -364,16 +364,17 @@ static inline NTSTATUS access_resource( HMODULE hmod, const IMAGE_RESOURCE_DATA_
...
@@ -364,16 +364,17 @@ static inline NTSTATUS access_resource( HMODULE hmod, const IMAGE_RESOURCE_DATA_
#ifdef __i386__
#ifdef __i386__
/* Shrinker depends on the "call access_resource" instruction being there */
/* Shrinker depends on the "call access_resource" instruction being there */
__ASM_GLOBAL_FUNC
(
LdrAccessResource
,
__ASM_GLOBAL_FUNC
(
LdrAccessResource
,
"pushl %ebp
\n
"
"pushl %ebp
\n\t
"
"movl %esp, %ebp
\n
"
"movl %esp, %ebp
\n\t
"
"pushl 24(%ebp)
\n
"
"subl $4,%esp
\n\t
"
"pushl 20(%ebp)
\n
"
"pushl 24(%ebp)
\n\t
"
"pushl 16(%ebp)
\n
"
"pushl 20(%ebp)
\n\t
"
"pushl 12(%ebp)
\n
"
"pushl 16(%ebp)
\n\t
"
"pushl 8(%ebp)
\n
"
"pushl 12(%ebp)
\n\t
"
"call "
__ASM_NAME
(
"access_resource"
)
"
\n
"
"pushl 8(%ebp)
\n\t
"
"leave
\n
"
"call "
__ASM_NAME
(
"access_resource"
)
"
\n\t
"
"ret $16
\n
"
"leave
\n\t
"
"ret $16"
);
);
#else
#else
NTSTATUS
WINAPI
LdrAccessResource
(
HMODULE
hmod
,
const
IMAGE_RESOURCE_DATA_ENTRY
*
entry
,
NTSTATUS
WINAPI
LdrAccessResource
(
HMODULE
hmod
,
const
IMAGE_RESOURCE_DATA_ENTRY
*
entry
,
...
...
dlls/ntdll/signal_i386.c
View file @
cc01e8ff
...
@@ -1450,6 +1450,7 @@ __ASM_GLOBAL_FUNC( DbgUserBreakPoint, "int $3; ret");
...
@@ -1450,6 +1450,7 @@ __ASM_GLOBAL_FUNC( DbgUserBreakPoint, "int $3; ret");
__ASM_GLOBAL_FUNC
(
EXC_CallHandler
,
__ASM_GLOBAL_FUNC
(
EXC_CallHandler
,
" pushl %ebp
\n
"
" pushl %ebp
\n
"
" movl %esp, %ebp
\n
"
" movl %esp, %ebp
\n
"
" subl $4,%esp
\n
"
" movl 28(%ebp), %edx
\n
"
/* ugly hack to pass the 6th param needed because of Shrinker */
" movl 28(%ebp), %edx
\n
"
/* ugly hack to pass the 6th param needed because of Shrinker */
" pushl 24(%ebp)
\n
"
" pushl 24(%ebp)
\n
"
" pushl 20(%ebp)
\n
"
" pushl 20(%ebp)
\n
"
...
@@ -1463,6 +1464,7 @@ __ASM_GLOBAL_FUNC( EXC_CallHandler,
...
@@ -1463,6 +1464,7 @@ __ASM_GLOBAL_FUNC( EXC_CallHandler,
__ASM_GLOBAL_FUNC
(
call_exception_handler
,
__ASM_GLOBAL_FUNC
(
call_exception_handler
,
" pushl %ebp
\n
"
" pushl %ebp
\n
"
" movl %esp, %ebp
\n
"
" movl %esp, %ebp
\n
"
" subl $12,%esp
\n
"
" pushl 12(%ebp)
\n
"
/* make any exceptions in this... */
" pushl 12(%ebp)
\n
"
/* make any exceptions in this... */
" pushl %edx
\n
"
/* handler be handled by... */
" pushl %edx
\n
"
/* handler be handled by... */
" .byte 0x64
\n
"
" .byte 0x64
\n
"
...
...
dlls/user/winproc.c
View file @
cc01e8ff
...
@@ -270,6 +270,7 @@ __ASM_GLOBAL_FUNC( WINPROC_wrapper,
...
@@ -270,6 +270,7 @@ __ASM_GLOBAL_FUNC( WINPROC_wrapper,
"pushl %edi
\n\t
"
"pushl %edi
\n\t
"
"pushl %esi
\n\t
"
"pushl %esi
\n\t
"
"pushl %ebx
\n\t
"
"pushl %ebx
\n\t
"
"subl $12,%esp
\n\t
"
"pushl 24(%ebp)
\n\t
"
"pushl 24(%ebp)
\n\t
"
"pushl 20(%ebp)
\n\t
"
"pushl 20(%ebp)
\n\t
"
"pushl 16(%ebp)
\n\t
"
"pushl 16(%ebp)
\n\t
"
...
...
libs/wine/port.c
View file @
cc01e8ff
...
@@ -59,6 +59,8 @@ __ASM_GLOBAL_FUNC( wine_switch_to_stack,
...
@@ -59,6 +59,8 @@ __ASM_GLOBAL_FUNC( wine_switch_to_stack,
"movl 4(%esp),%ecx
\n\t
"
/* func */
"movl 4(%esp),%ecx
\n\t
"
/* func */
"movl 8(%esp),%edx
\n\t
"
/* arg */
"movl 8(%esp),%edx
\n\t
"
/* arg */
"movl 12(%esp),%esp
\n\t
"
/* stack */
"movl 12(%esp),%esp
\n\t
"
/* stack */
"andl $~15,%esp
\n\t
"
"subl $12,%esp
\n\t
"
"pushl %edx
\n\t
"
"pushl %edx
\n\t
"
"xorl %ebp,%ebp
\n\t
"
"xorl %ebp,%ebp
\n\t
"
"call *%ecx
\n\t
"
"call *%ecx
\n\t
"
...
...
loader/preloader.c
View file @
cc01e8ff
...
@@ -166,7 +166,7 @@ void _start();
...
@@ -166,7 +166,7 @@ void _start();
extern
char
_end
[];
extern
char
_end
[];
__ASM_GLOBAL_FUNC
(
_start
,
__ASM_GLOBAL_FUNC
(
_start
,
"
\t
movl %esp,%eax
\n
"
"
\t
movl %esp,%eax
\n
"
"
\t
leal -1
28
(%esp),%esp
\n
"
/* allocate some space for extra aux values */
"
\t
leal -1
36
(%esp),%esp
\n
"
/* allocate some space for extra aux values */
"
\t
pushl %eax
\n
"
/* orig stack pointer */
"
\t
pushl %eax
\n
"
/* orig stack pointer */
"
\t
pushl %esp
\n
"
/* ptr to orig stack pointer */
"
\t
pushl %esp
\n
"
/* ptr to orig stack pointer */
"
\t
call wld_start
\n
"
"
\t
call wld_start
\n
"
...
...
tools/winebuild/import.c
View file @
cc01e8ff
...
@@ -1186,6 +1186,7 @@ void output_stubs( FILE *outfile, DLLSPEC *spec )
...
@@ -1186,6 +1186,7 @@ void output_stubs( FILE *outfile, DLLSPEC *spec )
fprintf
(
outfile
,
"
\t
.align %d
\n
"
,
get_alignment
(
4
)
);
fprintf
(
outfile
,
"
\t
.align %d
\n
"
,
get_alignment
(
4
)
);
fprintf
(
outfile
,
"
\t
%s
\n
"
,
func_declaration
(
name
)
);
fprintf
(
outfile
,
"
\t
%s
\n
"
,
func_declaration
(
name
)
);
fprintf
(
outfile
,
"%s:
\n
"
,
asm_name
(
name
)
);
fprintf
(
outfile
,
"%s:
\n
"
,
asm_name
(
name
)
);
fprintf
(
outfile
,
"
\t
subl $4,%%esp
\n
"
);
if
(
UsePIC
)
if
(
UsePIC
)
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment