Mail Archives: djgpp-workers/2003/04/30/05:41:50
According to Gisle Vanem:
> On Tue, 29 Apr 2003, Charles Sandmann wrote:
>
> > @@ -30,4 +49,38 @@
> > uclock_t rv;
> >
> > + _farsetsel(_dos_ds);
>
> This modifies FS, right? And libc code uses GS?
It depends on what you include, IIRC. libc/farptrgs.h should be used
in the library (and not sys/farptr.h).
> I just stumbled across a RMCB bug that only occurs under Win-XP;
> a packet-driver that uses the FS/GS registers (and assumes the
> callback saves them). But AFAICS, the gormcb.c code doesn't save
> and restore those registers. So the int 1B handler may also cause
> havoc.
This can be bug.
> Another thing, the stack value set in wrapper_common[] sets
> ESP to 'malloced_stack + stack_length'. According to my doc's an
> i386 decrement ESP *after* a push (opposed to an 286). So the
Nope. Decrement first and put pushed value where (e)sp points. (e)sp
points to the last value pushed.
It's possible you think of the value pushed by "push sp" where the
_value_ pushed differs bewteen <=286 and >=386.
Right,
MartinS
- Raw text -