* give an internalerror when calling cg.makeregsize() for a high level

target (explanation why in comments)

git-svn-id: branches/hlcgllvm@28388 -
This commit is contained in:
Jonas Maebe 2014-08-12 18:59:16 +00:00
parent e8026ad8d3
commit 831cc96f48
2 changed files with 13 additions and 1 deletions

View File

@ -38,6 +38,7 @@ uses
type
thlbasecgcpu = class(tcg)
public
function makeregsize(list: TAsmList; reg: Tregister; size: Tcgsize): Tregister; override;
procedure g_save_registers(list:TAsmList);override;
procedure g_restore_registers(list:TAsmList);override;
procedure g_stackpointer_alloc(list: TAsmList; size: longint); override;
@ -208,6 +209,17 @@ implementation
internalerror(2012042822);
end;
function thlbasecgcpu.makeregsize(list: TAsmList; reg: Tregister; size: Tcgsize): Tregister;
begin
{ you can't just change the size of a (virtual) register on high level
targets, you have to allocate a new register of the right size and
move the data there }
internalerror(2014081201);
{ suppress warning }
result:=NR_NO;
end;
procedure thlbasecgcpu.g_save_registers(list: TAsmList);
begin
{ do nothing }

View File

@ -106,7 +106,7 @@ unit cgobj;
procedure do_register_allocation(list:TAsmList;headertai:tai);virtual;
procedure translate_register(var reg : tregister);
function makeregsize(list:TAsmList;reg:Tregister;size:Tcgsize):Tregister;
function makeregsize(list:TAsmList;reg:Tregister;size:Tcgsize):Tregister; virtual;
{# Emit a label to the instruction stream. }
procedure a_label(list : TAsmList;l : tasmlabel);virtual;