mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 00:29:33 +02:00
* on i8086 convert the 'ret' inline asm instruction to either 'retn' or 'retf',
depending on the call model of the current function (which is BP7 compatible behaviour) git-svn-id: trunk@32157 -
This commit is contained in:
parent
05ecee1895
commit
c068c96302
@ -85,7 +85,7 @@ Unit Rax86int;
|
||||
{ aasm }
|
||||
aasmtai,aasmdata,aasmcpu,
|
||||
{ symtable }
|
||||
symconst,symbase,symtype,symsym,symdef,symtable,
|
||||
symconst,symbase,symtype,symsym,symdef,symtable,symcpu,
|
||||
{ parser }
|
||||
scanner,pbase,
|
||||
{ register allocator }
|
||||
@ -2072,6 +2072,17 @@ Unit Rax86int;
|
||||
else if (instr.opcode=A_POPA) then
|
||||
instr.opcode:=A_POPAW
|
||||
{$endif x86_64}
|
||||
{$ifdef i8086}
|
||||
{ ret is converted to retn or retf, depending on the call model of the
|
||||
current procedure (BP7 compatible) }
|
||||
else if (instr.opcode=A_RET) then
|
||||
begin
|
||||
if is_proc_far(current_procinfo.procdef) then
|
||||
instr.opcode:=A_RETF
|
||||
else
|
||||
instr.opcode:=A_RETN;
|
||||
end
|
||||
{$endif i8086}
|
||||
;
|
||||
{ We are reading operands, so opcode will be an AS_ID }
|
||||
{ process operands backwards to get them in AT&T order }
|
||||
|
Loading…
Reference in New Issue
Block a user