mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 18:49:16 +02:00
+ top_asmlist operand type for LLVM inline assembly "call" instructions
git-svn-id: trunk@34889 -
This commit is contained in:
parent
1c23218375
commit
d2873e433e
@ -259,6 +259,7 @@ interface
|
|||||||
,top_fpcond
|
,top_fpcond
|
||||||
,top_cond
|
,top_cond
|
||||||
,top_para
|
,top_para
|
||||||
|
,top_asmlist
|
||||||
{$endif llvm}
|
{$endif llvm}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -449,6 +450,7 @@ interface
|
|||||||
top_cond : (cond: topcmp);
|
top_cond : (cond: topcmp);
|
||||||
top_fpcond : (fpcond: tllvmfpcmp);
|
top_fpcond : (fpcond: tllvmfpcmp);
|
||||||
top_para : (paras: tfplist);
|
top_para : (paras: tfplist);
|
||||||
|
top_asmlist : (asmlist: tasmlist);
|
||||||
{$endif llvm}
|
{$endif llvm}
|
||||||
end;
|
end;
|
||||||
poper=^toper;
|
poper=^toper;
|
||||||
|
@ -124,6 +124,7 @@ interface
|
|||||||
procedure loadcond(opidx: longint; _cond: topcmp);
|
procedure loadcond(opidx: longint; _cond: topcmp);
|
||||||
procedure loadfpcond(opidx: longint; _fpcond: tllvmfpcmp);
|
procedure loadfpcond(opidx: longint; _fpcond: tllvmfpcmp);
|
||||||
procedure loadparas(opidx: longint; _paras: tfplist);
|
procedure loadparas(opidx: longint; _paras: tfplist);
|
||||||
|
procedure loadasmlist(opidx: longint; _asmlist: tasmlist);
|
||||||
|
|
||||||
{ register spilling code }
|
{ register spilling code }
|
||||||
function spilling_get_operation_type(opnr: longint): topertype;override;
|
function spilling_get_operation_type(opnr: longint): topertype;override;
|
||||||
@ -320,6 +321,8 @@ uses
|
|||||||
end;
|
end;
|
||||||
top_tai:
|
top_tai:
|
||||||
oper[opidx]^.ai.free;
|
oper[opidx]^.ai.free;
|
||||||
|
top_asmlist:
|
||||||
|
oper[opidx]^.asmlist.free;
|
||||||
end;
|
end;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
@ -446,6 +449,18 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure taillvm.loadasmlist(opidx: longint; _asmlist: tasmlist);
|
||||||
|
begin
|
||||||
|
allocate_oper(opidx+1);
|
||||||
|
with oper[opidx]^ do
|
||||||
|
begin
|
||||||
|
clearop(opidx);
|
||||||
|
asmlist:=_asmlist;
|
||||||
|
typ:=top_asmlist;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function taillvm.spilling_get_operation_type(opnr: longint): topertype;
|
function taillvm.spilling_get_operation_type(opnr: longint): topertype;
|
||||||
begin
|
begin
|
||||||
case llvmopcode of
|
case llvmopcode of
|
||||||
|
Loading…
Reference in New Issue
Block a user