* thlcgobj.g_unreachable() dummy implementation + llvm override

git-svn-id: trunk@40382 -
This commit is contained in:
Jonas Maebe 2018-11-28 19:23:22 +00:00
parent d315e30d5b
commit 413a3599c1
3 changed files with 28 additions and 0 deletions

View File

@ -429,6 +429,11 @@ unit hlcgobj;
}
procedure g_exception_reason_discard(list : TAsmList; size: tdef; href: treference); virtual;
{#
Call when the current location should never be reached
}
procedure g_unreachable(list: TAsmList); virtual;
procedure g_maybe_testself(list : TAsmList; selftype: tdef; reg:tregister);
// procedure g_maybe_testvmt(list : TAsmList;reg:tregister;objdef:tobjectdef);
{# This should emit the opcode to copy len bytes from the source
@ -3159,6 +3164,12 @@ implementation
end;
procedure thlcgobj.g_unreachable(list: TAsmList);
begin
{ nothing }
end;
procedure thlcgobj.g_maybe_testself(list: TAsmList; selftype: tdef; reg: tregister);
var
OKLabel : tasmlabel;

View File

@ -39,6 +39,9 @@ interface
constructor create_llvm(op: tllvmop);
{ e.g. unreachable }
constructor op_none(op : tllvmop);
{ e.g. ret void }
constructor op_size(op : tllvmop; size: tdef);
@ -680,6 +683,13 @@ uses
end;
constructor taillvm.op_none(op: tllvmop);
begin
create_llvm(op);
ops:=0;
end;
constructor taillvm.op_size(op : tllvmop; size: tdef);
begin
create_llvm(op);

View File

@ -87,6 +87,8 @@ uses
procedure a_jmp_always(list : TAsmList;l: tasmlabel); override;
procedure g_unreachable(list: TAsmList); override;
procedure g_concatcopy(list : TAsmList;size: tdef; const source,dest : treference);override;
procedure a_loadfpu_ref_reg(list: TAsmList; fromsize, tosize: tdef; const ref: treference; reg: tregister); override;
@ -1095,6 +1097,11 @@ implementation
cg.a_jmp_always(list,l);
end;
procedure thlcgllvm.g_unreachable(list: TAsmList);
begin
list.Concat(taillvm.op_none(la_unreachable));
end;
procedure thlcgllvm.g_concatcopy(list: TAsmList; size: tdef; const source, dest: treference);
var