2
0
Эх сурвалжийг харах

+ implemented tz80reader.is_register

git-svn-id: branches/z80@44780 -
nickysn 5 жил өмнө
parent
commit
f78fef23a2
1 өөрчлөгдсөн 11 нэмэгдсэн , 43 устгасан
  1. 11 43
      compiler/z80/raz80asm.pas

+ 11 - 43
compiler/z80/raz80asm.pas

@@ -61,7 +61,7 @@ Unit raz80asm;
       tz80reader = class(tasmreader)
         actasmtoken    : tasmtoken;
         //function is_asmopcode(const s: string):boolean;override;
-        //function is_register(const s:string):boolean;override;
+        function is_register(const s:string):boolean;
         //procedure handleopcode;override;
         //procedure BuildReference(oper : tz80operand);
         //procedure BuildOperand(oper : tz80operand);
@@ -91,48 +91,16 @@ Unit raz80asm;
       ;
 
 
-    //function tz80attreader.is_register(const s:string):boolean;
-    //  type
-    //    treg2str = record
-    //      name : string[2];
-    //      reg : tregister;
-    //    end;
-    //
-    //  const
-    //    extraregs : array[0..8] of treg2str = (
-    //      (name: 'X'; reg : NR_R26),
-    //      (name: 'XL'; reg : NR_R26),
-    //      (name: 'XH'; reg : NR_R27),
-    //      (name: 'Y'; reg : NR_R28),
-    //      (name: 'YL'; reg : NR_R28),
-    //      (name: 'YH'; reg : NR_R29),
-    //      (name: 'Z'; reg : NR_R30),
-    //      (name: 'ZL'; reg : NR_R30),
-    //      (name: 'ZH'; reg : NR_R31)
-    //    );
-    //
-    //  var
-    //    i : longint;
-    //
-    //  begin
-    //    result:=inherited is_register(s);
-    //    { reg found?
-    //      possible aliases are always 2 char
-    //    }
-    //    if result or (not (length(s) in [1,2])) then
-    //      exit;
-    //
-    //    for i:=low(extraregs) to high(extraregs) do
-    //      begin
-    //        if s=extraregs[i].name then
-    //          begin
-    //            actasmregister:=extraregs[i].reg;
-    //            result:=true;
-    //            actasmtoken:=AS_REGISTER;
-    //            exit;
-    //          end;
-    //      end;
-    //  end;
+    function tz80reader.is_register(const s:string):boolean;
+      begin
+        is_register:=false;
+        actasmregister:=std_regnum_search(lower(s));
+        if actasmregister<>NR_NO then
+          begin
+            is_register:=true;
+            actasmtoken:=AS_REGISTER;
+          end;
+      end;
 
 
     //procedure tz80reader.ReadSym(oper : tz80operand);