소스 검색

* 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 19 년 전
부모
커밋
8bcf2285c8
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  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