Quellcode durchsuchen

* also raise internal errors in trgcpu.do_all_register_allocation for unexpected subregister types

git-svn-id: branches/wasm@47718 -
nickysn vor 4 Jahren
Ursprung
Commit
2b8ab731c8
1 geänderte Dateien mit 16 neuen und 8 gelöschten Zeilen
  1. 16 8
      compiler/wasm32/rgcpu.pas

+ 16 - 8
compiler/wasm32/rgcpu.pas

@@ -404,17 +404,25 @@ implementation
                     wbt := registertobastype(ra.reg);
                     case getregtype(ra.reg) of
                       R_INTREGISTER:
-                        if getsubreg(ra.reg)=R_SUBD then
-                          size:=4
-                        else
-                          size:=8;
+                        case getsubreg(ra.reg) of
+                          R_SUBD:
+                            size:=4;
+                          R_SUBQ:
+                            size:=8;
+                          else
+                            internalerror(2020120803);
+                        end;
                       R_ADDRESSREGISTER:
                         size:=4;
                       R_FPUREGISTER:
-                        if getsubreg(ra.reg)=R_SUBFS then
-                          size:=4
-                        else
-                          size:=8;
+                        case getsubreg(ra.reg) of
+                          R_SUBFS:
+                            size:=4;
+                          R_SUBFD:
+                            size:=8;
+                          else
+                            internalerror(2020120804);
+                        end;
                       else
                         internalerror(2010122912);
                     end;