From 9dbbffba61212d18bc1ab1ad8a242657f44b7d5c Mon Sep 17 00:00:00 2001 From: nickysn <nickysn@gmail.com> Date: Mon, 10 Jun 2013 01:16:37 +0000 Subject: [PATCH] + added trefaddr.addr_seg for referencing the segment of a symbol git-svn-id: trunk@24859 - --- compiler/cgbase.pas | 1 + compiler/x86/agx86nsm.pas | 2 ++ 2 files changed, 3 insertions(+) diff --git a/compiler/cgbase.pas b/compiler/cgbase.pas index b26f4249bc..31ea09564c 100644 --- a/compiler/cgbase.pas +++ b/compiler/cgbase.pas @@ -101,6 +101,7 @@ interface ,addr_dgroup // the data segment group ,addr_far // used for emitting 'call/jmp far label' instructions ,addr_far_ref // used for emitting 'call far [reference]' instructions + ,addr_seg // used for getting the segment of an object, e.g. 'mov ax, SEG symbol' {$ENDIF} ); diff --git a/compiler/x86/agx86nsm.pas b/compiler/x86/agx86nsm.pas index fa8412120e..ca32a30e7e 100644 --- a/compiler/x86/agx86nsm.pas +++ b/compiler/x86/agx86nsm.pas @@ -398,6 +398,8 @@ interface {$ifdef i8086} if o.ref^.refaddr=addr_far then asmwrite('far ') + else if o.ref^.refaddr=addr_seg then + asmwrite('SEG ') else asmwrite('word '); {$endif i8086}