+ top_asmlist operand type for LLVM inline assembly "call" instructions

git-svn-id: trunk@34889 -
This commit is contained in:
Jonas Maebe 2016-11-13 16:06:23 +00:00
parent 1c23218375
commit d2873e433e
2 changed files with 17 additions and 0 deletions

View File

@ -259,6 +259,7 @@ interface
,top_fpcond
,top_cond
,top_para
,top_asmlist
{$endif llvm}
);
@ -449,6 +450,7 @@ interface
top_cond : (cond: topcmp);
top_fpcond : (fpcond: tllvmfpcmp);
top_para : (paras: tfplist);
top_asmlist : (asmlist: tasmlist);
{$endif llvm}
end;
poper=^toper;

View File

@ -124,6 +124,7 @@ interface
procedure loadcond(opidx: longint; _cond: topcmp);
procedure loadfpcond(opidx: longint; _fpcond: tllvmfpcmp);
procedure loadparas(opidx: longint; _paras: tfplist);
procedure loadasmlist(opidx: longint; _asmlist: tasmlist);
{ register spilling code }
function spilling_get_operation_type(opnr: longint): topertype;override;
@ -320,6 +321,8 @@ uses
end;
top_tai:
oper[opidx]^.ai.free;
top_asmlist:
oper[opidx]^.asmlist.free;
end;
inherited;
end;
@ -446,6 +449,18 @@ uses
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;
begin
case llvmopcode of