Browse Source

* fixed a bug in fpc_SetJmp on i8086, that caused an incorrect value of sp to
be written in Jmp_buf.sp

git-svn-id: trunk@25793 -

nickysn 11 years ago
parent
commit
9b2b5a9565
1 changed files with 2 additions and 1 deletions
  1. 2 1
      rtl/i8086/setjump.inc

+ 2 - 1
rtl/i8086/setjump.inc

@@ -22,13 +22,14 @@ asm
 
   mov bx, ss:[bp + 4 + extra_param_offset]  // S
   mov word [bx + Jmp_buf.bp], ax
-  mov word [bx + Jmp_buf.sp], di
   mov cx, word ss:[di]
   mov word [bx + Jmp_buf.ip], cx
 {$ifdef FPC_X86_CODE_FAR}
   mov cx, word ss:[di + 2]
   mov word [bx + Jmp_buf.cs], cx
 {$endif FPC_X86_CODE_FAR}
+  add di, 4 + extra_param_offset
+  mov word [bx + Jmp_buf.sp], di
 
   xor ax, ax
   pop bp