diff --git a/compiler/rautils.pas b/compiler/rautils.pas index 185efcfc9d..b69340a5ee 100644 --- a/compiler/rautils.pas +++ b/compiler/rautils.pas @@ -922,6 +922,27 @@ Begin SetupVar:=TRUE; Exit; end; +{$ifdef i8086} + labelsym : + begin + case opr.typ of + OPR_REFERENCE: + begin + opr.ref.symbol:=current_asmdata.RefAsmSymbol(tlabelsym(sym).mangledname); + if opr.ref.segment=NR_NO then + opr.ref.segment:=NR_CS; + end; + else + begin + Message(asmr_e_unsupported_symbol_type); + exit; + end; + end; + hasvar:=true; + SetupVar:=TRUE; + Exit; + end +{$endif i8086} else begin Message(asmr_e_unsupported_symbol_type); diff --git a/compiler/x86/rax86int.pas b/compiler/x86/rax86int.pas index 495739faf0..e28a9326fc 100644 --- a/compiler/x86/rax86int.pas +++ b/compiler/x86/rax86int.pas @@ -1263,6 +1263,10 @@ Unit Rax86int; end else oper.opr.ref.relsymbol:=hl; +{$ifdef i8086} + if oper.opr.ref.segment=NR_NO then + oper.opr.ref.segment:=NR_CS; +{$endif i8086} end else if oper.SetupVar(tempstr,GotOffset) then