فهرست منبع

+ introduced a TZ80AddNode.second_cmp16_32_64bit method, not implemented for now

git-svn-id: branches/z80@44728 -
nickysn 5 سال پیش
والد
کامیت
f9e4f7b19b
1فایلهای تغییر یافته به همراه15 افزوده شده و 2 حذف شده
  1. 15 2
      compiler/z80/nz80add.pas

+ 15 - 2
compiler/z80/nz80add.pas

@@ -29,6 +29,9 @@ interface
        node,ncgadd, symtype,cpubase;
 
     type
+
+       { TZ80AddNode }
+
        TZ80AddNode = class(tcgaddnode)
        private
          function  GetResFlags(unsigned:Boolean):TResFlags;
@@ -37,6 +40,7 @@ interface
          procedure second_cmpordinal;override;
          procedure second_cmpsmallset;override;
          procedure second_cmp64bit;override;
+         procedure second_cmp16_32_64bit;
          procedure second_cmp;
        end;
 
@@ -303,7 +307,13 @@ interface
 
     procedure TZ80AddNode.second_cmp64bit;
       begin
-        second_cmp;
+        second_cmp16_32_64bit;
+      end;
+
+
+    procedure TZ80AddNode.second_cmp16_32_64bit;
+      begin
+        internalerror(2020041601);
       end;
 
 
@@ -336,7 +346,10 @@ interface
 
     procedure TZ80AddNode.second_cmpordinal;
       begin
-        second_cmp;
+        if is_32bit(left.resultdef) or is_16bit(left.resultdef) then
+          second_cmp16_32_64bit
+        else
+          second_cmp;
       end;
 
 begin