From 2279e51a953453ca4be544d20b870f4f799e63a2 Mon Sep 17 00:00:00 2001 From: nickysn <nickysn@gmail.com> Date: Sun, 9 Jun 2013 10:24:06 +0000 Subject: [PATCH] + added trefaddr.addr_far for emitting far calls git-svn-id: trunk@24826 - --- compiler/cgbase.pas | 1 + compiler/x86/agx86nsm.pas | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/cgbase.pas b/compiler/cgbase.pas index dcaf96c12e..9ec3c5ee57 100644 --- a/compiler/cgbase.pas +++ b/compiler/cgbase.pas @@ -99,6 +99,7 @@ interface {$ENDIF} {$IFDEF i8086} ,addr_dgroup // the data segment group + ,addr_far // used for emitting 'call far' or 'jmp far' instructions {$ENDIF} ); diff --git a/compiler/x86/agx86nsm.pas b/compiler/x86/agx86nsm.pas index f5feff4016..8034e9a1a7 100644 --- a/compiler/x86/agx86nsm.pas +++ b/compiler/x86/agx86nsm.pas @@ -382,7 +382,10 @@ interface asmwrite('dword '); {$endif i386} {$ifdef i8086} - asmwrite('word '); + if o.ref^.refaddr=addr_far then + asmwrite('far ') + else + asmwrite('word '); {$endif i8086} if assigned(o.ref^.symbol) then begin