X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FCOptWraps.lh;fp=ghc%2Fincludes%2FCOptWraps.lh;h=7aa82867faf5df9c70f3e6d24da5a9c038273138;hb=7fa716e248a1f11fa686965f57aebbb83b74fa7b;hp=c444df76beb6f00f0e2cbc62bd17676f1edb0b70;hpb=a29ea442a7b893af60633b370bc7a0459cd3e072;p=ghc-hetmet.git diff --git a/ghc/includes/COptWraps.lh b/ghc/includes/COptWraps.lh index c444df7..7aa8286 100644 --- 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" \ - "\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" \ - : "=r" (SP_stack[++SP_stack_ptr])); \ + : "=r" (args)); \ SaveAllStgContext(); #define WRAPPER_RETURN(x) \