projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1996-01-10 12:38:57 by partain]
[ghc-hetmet.git]
/
ghc
/
includes
/
COptWraps.lh
diff --git
a/ghc/includes/COptWraps.lh
b/ghc/includes/COptWraps.lh
index
c444df7
..
7aa8286
100644
(file)
--- a/
ghc/includes/COptWraps.lh
+++ b/
ghc/includes/COptWraps.lh
@@
-405,11
+405,12
@@
gets whatever it's after.
REAL_NAME(f) "_wrapper:\n" \
"\tmovl %%esp,80(%%ebx)\n" \
"\tmovl 100(%%ebx),%%esp\n" \
REAL_NAME(f) "_wrapper:\n" \
"\tmovl %%esp,80(%%ebx)\n" \
"\tmovl 100(%%ebx),%%esp\n" \
- "\tmovl %%eax,%0" : "=r" (args)); \
- __asm__ volatile ( \
- "movl %%esp,%0\n" \
+ "\tmovl %%eax,%0\n" \
+ "\tincl _SP_stack_ptr\n" \
+ "\tmovl _SP_stack_ptr,%%eax\n" \
+ "\tmovl %%esp,_SP_stack(,%%eax,4)\n" \
"\tsubl $64,%%esp" \
"\tsubl $64,%%esp" \
- : "=r" (SP_stack[++SP_stack_ptr])); \
+ : "=r" (args)); \
SaveAllStgContext();
#define WRAPPER_RETURN(x) \
SaveAllStgContext();
#define WRAPPER_RETURN(x) \