Browse Source

+ introduced is_6502_general_purpose_register and is_6502_index_register helpers

Nikolay Nikolov 1 year ago
parent
commit
1e8c595618
1 changed files with 14 additions and 0 deletions
  1. 14 0
      compiler/mos6502/cpubase.pas

+ 14 - 0
compiler/mos6502/cpubase.pas

@@ -280,6 +280,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_6502_general_purpose_register(r:TRegister):boolean;
+    function is_6502_index_register(r:TRegister):boolean;
     function is_regpair(r:Tregister):boolean;
     procedure split_regpair(regpair:Tregister;out reglo,reghi:Tregister);
     { Checks if sreg is a subset of reg (e.g. NR_H is a subset of NR_HL }
@@ -394,6 +396,18 @@ unit cpubase;
       end;
 
 
+    function is_6502_general_purpose_register(r:TRegister):boolean;
+      begin
+        result:=(r=NR_A) or (r=NR_X) or (r=NR_Y);
+      end;
+
+
+    function is_6502_index_register(r:TRegister):boolean;
+      begin
+        result:=(r=NR_X) or (r=NR_Y);
+      end;
+
+
     function is_regpair(r: Tregister): boolean;
       begin
         internalerror(2024040601);