* constructor to create extractvalue/extractelement instructions

git-svn-id: branches/debug_eh@40409 -
This commit is contained in:
Jonas Maebe 2018-11-29 21:31:11 +00:00
parent e6c89bbf0a
commit 366bf4294b

View File

@ -120,6 +120,9 @@ interface
{ e.g. dst = invoke retsize reg (paras) to label <normal label> unwind label <exception label> }
constructor invoke_size_reg_paras_retlab_exceptlab(callpd: tdef; dst: tregister; retsize: tdef; reg: tregister; paras: tfplist; retlab, exceptlab:TAsmLabel);
{ e.g. dst := extractvalue srcsize src, 0 (note: no type for the index) }
constructor extract(op: tllvmop; dst: tregister; srcsize: tdef; src: tregister; idx: longint);
{ inline function-level assembler code and parameters }
constructor asm_paras(asmlist: tasmlist; paras: tfplist);
@ -1144,6 +1147,17 @@ uses
end;
constructor taillvm.extract(op: tllvmop; dst: tregister; srcsize: tdef; src: tregister; idx: longint);
begin
create_llvm(op);
ops:=4;
loadreg(0,dst);
loaddef(1,srcsize);
loadreg(2,src);
loadconst(3,idx)
end;
constructor taillvm.asm_paras(asmlist: tasmlist; paras: tfplist);
begin
create_llvm(la_asmblock);