mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 17:48:46 +02:00
* treat interrupt procedures as 'near' in the i8086 inline assembler for TP7
compatibility git-svn-id: trunk@32194 -
This commit is contained in:
parent
dd9e5ea6f6
commit
9e110e8e7e
@ -908,7 +908,8 @@ Begin
|
||||
begin
|
||||
opr.ref.symbol:=current_asmdata.RefAsmSymbol(tprocdef(tprocsym(sym).ProcdefList[0]).mangledname);
|
||||
{$ifdef i8086}
|
||||
opr.ref_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]));
|
||||
opr.ref_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]))
|
||||
and not (po_interrupt in tprocdef(tprocsym(sym).ProcdefList[0]).procoptions);
|
||||
{$endif i8086}
|
||||
end;
|
||||
OPR_NONE:
|
||||
@ -916,7 +917,8 @@ Begin
|
||||
opr.typ:=OPR_SYMBOL;
|
||||
opr.symbol:=current_asmdata.RefAsmSymbol(tprocdef(tprocsym(sym).ProcdefList[0]).mangledname);
|
||||
{$ifdef i8086}
|
||||
opr.sym_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]));
|
||||
opr.sym_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]))
|
||||
and not (po_interrupt in tprocdef(tprocsym(sym).ProcdefList[0]).procoptions);
|
||||
{$endif i8086}
|
||||
opr.symofs:=0;
|
||||
end;
|
||||
|
@ -1025,7 +1025,8 @@ Unit Rax86int;
|
||||
Message(asmr_w_calling_overload_func);
|
||||
hs:=tprocdef(tprocsym(sym).ProcdefList[0]).mangledname;
|
||||
{$ifdef i8086}
|
||||
is_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]));
|
||||
is_farproc_entry:=is_proc_far(tprocdef(tprocsym(sym).ProcdefList[0]))
|
||||
and not (po_interrupt in tprocdef(tprocsym(sym).ProcdefList[0]).procoptions);
|
||||
{$endif i8086}
|
||||
hssymtyp:=AT_FUNCTION;
|
||||
end;
|
||||
@ -2109,7 +2110,8 @@ Unit Rax86int;
|
||||
current procedure (BP7 compatible) }
|
||||
else if (instr.opcode=A_RET) then
|
||||
begin
|
||||
if is_proc_far(current_procinfo.procdef) then
|
||||
if is_proc_far(current_procinfo.procdef) and
|
||||
not (po_interrupt in current_procinfo.procdef.procoptions) then
|
||||
instr.opcode:=A_RETF
|
||||
else
|
||||
instr.opcode:=A_RETN;
|
||||
|
Loading…
Reference in New Issue
Block a user