Browse Source

* in dpmi_longjmp, fix wrong parameter retrieving,
old code was based on assumption that parameters
are on stack. New code works in both cases.


git-svn-id: trunk@5671 -

pierre 18 years ago
parent
commit
8bcf2285c8
1 changed files with 5 additions and 3 deletions
  1. 5 3
      rtl/go32v2/dpmiexcp.pp

+ 5 - 3
rtl/go32v2/dpmiexcp.pp

@@ -591,11 +591,13 @@ begin
   if (exception_level>0) then
     dec(exception_level);
   asm
+        { copy from longjmp.S }
+        { Adapted to avoid being sensitive to
+          argument being on stack or in registers 2006-12-21 PM }
+        movl    rec,%edi    { get dpmi_jmp_buf }
+        movl    return_value,%eax    { store retval in j->eax }
         { restore compiler shit }
         popl    %ebp
-        { copy from longjmp.S }
-        movl    4(%esp),%edi    { get dpmi_jmp_buf }
-        movl    8(%esp),%eax    { store retval in j->eax }
         movl    %eax,0(%edi)
 
         movw    46(%edi),%fs