Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
1cae4793
Commit
1cae4793
authored
Nov 06, 2002
by
Juraj Hercek
Committed by
Alexandre Julliard
Nov 06, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented SYSDEPS_CallOnStack for sparcs.
parent
04fd4a27
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
4 deletions
+15
-4
sysdeps.c
scheduler/sysdeps.c
+15
-4
No files found.
scheduler/sysdeps.c
View file @
1cae4793
...
...
@@ -235,7 +235,7 @@ int SYSDEPS_SpawnThread( TEB *teb )
*/
void
DECLSPEC_NORETURN
SYSDEPS_CallOnStack
(
void
(
*
func
)(
LPVOID
),
LPVOID
arg
);
#ifdef __i386__
#ifdef __GNUC__
#
ifdef __GNUC__
__ASM_GLOBAL_FUNC
(
SYSDEPS_CallOnStack
,
"movl 4(%esp),%ecx
\n\t
"
/* func */
"movl 8(%esp),%edx
\n\t
"
/* arg */
...
...
@@ -244,7 +244,7 @@ __ASM_GLOBAL_FUNC( SYSDEPS_CallOnStack,
"xorl %ebp,%ebp
\n\t
"
"call *%ecx
\n\t
"
"int $3"
/* we never return here */
);
#elif defined(_MSC_VER)
#
elif defined(_MSC_VER)
__declspec
(
naked
)
void
SYSDEPS_CallOnStack
(
void
(
*
func
)(
LPVOID
),
LPVOID
arg
)
{
__asm
mov
ecx
,
4
[
esp
];
...
...
@@ -255,13 +255,24 @@ __declspec(naked) void SYSDEPS_CallOnStack( void (*func)(LPVOID), LPVOID arg )
__asm
call
[
ecx
];
__asm
int
3
;
}
#endif
/* defined(__GNUC__) || defined(_MSC_VER) */
#else
/* !defined(__i386__) */
# endif
/* defined(__GNUC__) || defined(_MSC_VER) */
#elif __sparc__
# ifdef __GNUC__
__ASM_GLOBAL_FUNC
(
SYSDEPS_CallOnStack
,
"mov %o0, %l0
\n\t
"
/* store first argument */
"call "
__ASM_NAME
(
"NtCurrentTeb"
)
", 0
\n\t
"
"mov %o1, %l1
\n\t
"
/* delay slot: store second argument */
"ld [%o0+4], %sp
\n\t
"
/* teb->stack_top */
"call %l0, 0
\n\t
"
/* call func */
"mov %l1, %o0
\n\t
"
/* delay slot: arg for func */
"ta 0x01
\n\t
"
);
/* breakpoint - we never get here */
# else
/* !defined(__GNUC__) */
void
SYSDEPS_CallOnStack
(
void
(
*
func
)(
LPVOID
),
LPVOID
arg
)
{
func
(
arg
);
while
(
1
);
/* avoid warning */
}
# endif
/* !defined(__GNUC__) */
#endif
/* !defined(__i386__) */
...
...
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