|
@@ -266,7 +266,15 @@ ASM
|
|
|
POP %FS; { Restore FS register }
|
|
|
POP %DS; { Restore DS register }
|
|
|
POP %ES; { Restore ES register }
|
|
|
- movzwl %si,%eax
|
|
|
+ movw %ds,%ax;
|
|
|
+ lsl %eax,%eax;
|
|
|
+ cmpl %eax,%esi;
|
|
|
+ ja .Lsimplecopy;
|
|
|
+ movzwl %si,%eax;
|
|
|
+ jmp .Lcopyend;
|
|
|
+.Lsimplecopy:
|
|
|
+ movl %esi,%eax;
|
|
|
+.Lcopyend:
|
|
|
MOVL %ds:(%Eax), %EAX;
|
|
|
MOVL %EAX, %ES:42(%EDI); { Set as return addr }
|
|
|
ADDW $4, %ES:46(%EDI); { adjust stack }
|
|
@@ -747,7 +755,10 @@ Begin
|
|
|
end.
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.3 2001-12-26 21:03:56 peter
|
|
|
+ Revision 1.4 2001-12-26 21:20:47 peter
|
|
|
+ * more xp fixes
|
|
|
+
|
|
|
+ Revision 1.3 2001/12/26 21:03:56 peter
|
|
|
* merged fixes from 1.0.x
|
|
|
|
|
|
Revision 1.2 2001/09/22 00:01:42 michael
|