+ added tregisterlist - dynarray of tregister, and methods get/uncpuregisters for allocating/freeing

a dynamic list of registers

git-svn-id: branches/z80@44891 -
This commit is contained in:
nickysn 2020-04-20 20:42:16 +00:00
parent 882522259e
commit fc991af9d1

View File

@ -35,6 +35,7 @@ unit cgcpu;
cpubase,cpuinfo,node,cg64f32,rgcpu;
type
tregisterlist = array of tregister;
{ tcgz80 }
@ -44,6 +45,9 @@ unit cgcpu;
procedure init_register_allocators;override;
procedure done_register_allocators;override;
procedure getcpuregisters(list:TAsmList;regs:tregisterlist);
procedure ungetcpuregisters(list:TAsmList;regs:tregisterlist);
function getaddressregister(list:TAsmList):TRegister;override;
function GetOffsetReg(const r: TRegister;ofs : shortint): TRegister;override;
@ -161,6 +165,23 @@ unit cgcpu;
end;
procedure tcgz80.getcpuregisters(list: TAsmList; regs: tregisterlist);
var
r: tregister;
begin
for r in regs do
getcpuregister(list,r);
end;
procedure tcgz80.ungetcpuregisters(list: TAsmList; regs: tregisterlist);
var
r: tregister;
begin
for r in regs do
ungetcpuregister(list,r);
end;
function tcgz80.getaddressregister(list: TAsmList): TRegister;
begin
Result:=getintregister(list,OS_ADDR);