mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-27 11:10:23 +02:00
+ 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:
parent
882522259e
commit
fc991af9d1
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user