mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-27 00:30:33 +02:00
+ added Z80 helper functions is_regpair and split_regpair
git-svn-id: trunk@45149 -
This commit is contained in:
parent
fa052f76ee
commit
a5d36e1bc6
@ -277,6 +277,8 @@ unit cpubase;
|
||||
function findreg_by_number(r:Tregister):tregisterindex;
|
||||
function std_regnum_search(const s:string):Tregister;
|
||||
function std_regname(r:Tregister):string;
|
||||
function is_regpair(r:Tregister):boolean;
|
||||
procedure split_regpair(regpair:Tregister;out reglo,reghi:Tregister);
|
||||
|
||||
function inverse_cond(const c: TAsmCond): TAsmCond; {$ifdef USEINLINE}inline;{$endif USEINLINE}
|
||||
function conditions_equal(const c1, c2: TAsmCond): boolean; {$ifdef USEINLINE}inline;{$endif USEINLINE}
|
||||
@ -397,6 +399,41 @@ unit cpubase;
|
||||
end;
|
||||
|
||||
|
||||
function is_regpair(r: Tregister): boolean;
|
||||
begin
|
||||
result:=(r=NR_AF) or (r=NR_BC) or (r=NR_DE) or (r=NR_HL);
|
||||
end;
|
||||
|
||||
|
||||
procedure split_regpair(regpair: Tregister; out reglo, reghi: Tregister);
|
||||
begin
|
||||
case regpair of
|
||||
NR_AF:
|
||||
begin
|
||||
reglo:=NR_F;
|
||||
reghi:=NR_A;
|
||||
end;
|
||||
NR_BC:
|
||||
begin
|
||||
reglo:=NR_C;
|
||||
reghi:=NR_B;
|
||||
end;
|
||||
NR_DE:
|
||||
begin
|
||||
reglo:=NR_E;
|
||||
reghi:=NR_D;
|
||||
end;
|
||||
NR_HL:
|
||||
begin
|
||||
reglo:=NR_L;
|
||||
reghi:=NR_H;
|
||||
end;
|
||||
else
|
||||
internalerror(2020042801);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function inverse_cond(const c: TAsmCond): TAsmCond; {$ifdef USEINLINE}inline;{$endif USEINLINE}
|
||||
const
|
||||
inverse: array[TAsmCond] of TAsmCond=(C_None,
|
||||
|
Loading…
Reference in New Issue
Block a user