Big Bummer for running Shrinkered files!
autophile at starband.net
Mon Dec 17 16:42:53 CST 2001
> What you probably want to do is rewrite EXC_CallHandler in assembler,
> making sure you use the right instructions. This would also address
> the issue with %ebp where we currently depend on the way gcc compiles
> the code, which is not ideal.
Something like this should work:
mov ebp, esp
mov ecx, handler
// create a new frame on the stack
push ??? // stack low
push ??? // stack top
push fs: // previous frame pointer
// set the new frame
mov fs:, esp
// call the handler
push dispatcherpush context
call ecx // exact instruction required by Shrinker
// eax now contains the return code.
// restore the stack
mov esp, fs: // exact instruction required by Shrinker
// pop off the previous frame to be current.
mov esp, ebp
What I'm not certain about is what to put in as the top of the stack and the minimum stack. I also don't know what the purpose of nested_handler is in the arguments, and how it works.
More information about the wine-devel