瀏覽代碼

+ handle all registers properly in reg_cgsize

git-svn-id: branches/z80@44804 -
nickysn 5 年之前
父節點
當前提交
ce598813fa
共有 1 個文件被更改,包括 11 次插入4 次删除
  1. 11 4
      compiler/z80/cpubase.pas

+ 11 - 4
compiler/z80/cpubase.pas

@@ -347,10 +347,17 @@ unit cpubase;
     function reg_cgsize(const reg: tregister): tcgsize;
     function reg_cgsize(const reg: tregister): tcgsize;
       begin
       begin
         case getregtype(reg) of
         case getregtype(reg) of
-          R_INTREGISTER :
-            reg_cgsize:=OS_8;
-          R_ADDRESSREGISTER :
-            reg_cgsize:=OS_16;
+          R_INTREGISTER,
+          R_SPECIALREGISTER:
+            case getsubreg(reg) of
+              R_SUBL,
+              R_SUBH:
+                reg_cgsize:=OS_8;
+              R_SUBW:
+                reg_cgsize:=OS_16;
+              else
+                internalerror(2020041901);
+            end;
           else
           else
             internalerror(2011021905);
             internalerror(2011021905);
           end;
           end;