浏览代码

* 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 12 年之前
父节点
当前提交
9b2b5a9565
共有 1 个文件被更改,包括 2 次插入1 次删除
  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