Browse Source

* 6502: use 16-bit register pairs for 32-bit function return values

Nikolay Nikolov 1 month ago
parent
commit
2b1425ca49
1 changed files with 8 additions and 8 deletions
  1. 8 8
      compiler/mos6502/cpupara.pas

+ 8 - 8
compiler/mos6502/cpupara.pas

@@ -424,25 +424,25 @@ unit cpupara;
                   OS_F32:
                   OS_F32:
                     begin
                     begin
                       paraloc^.loc:=LOC_REGISTER;
                       paraloc^.loc:=LOC_REGISTER;
-                      paraloc^.register:=NR_RZB0;
+                      paraloc^.register:=NR_RZW2L;
                       paraloc^.size:=OS_8;
                       paraloc^.size:=OS_8;
                       paraloc^.def:=u8inttype;
                       paraloc^.def:=u8inttype;
 
 
                       paraloc:=result.add_location;
                       paraloc:=result.add_location;
                       paraloc^.loc:=LOC_REGISTER;
                       paraloc^.loc:=LOC_REGISTER;
-                      paraloc^.register:=NR_RZB1;
+                      paraloc^.register:=NR_RZW2H;
                       paraloc^.size:=OS_8;
                       paraloc^.size:=OS_8;
                       paraloc^.def:=u8inttype;
                       paraloc^.def:=u8inttype;
 
 
                       paraloc:=result.add_location;
                       paraloc:=result.add_location;
                       paraloc^.loc:=LOC_REGISTER;
                       paraloc^.loc:=LOC_REGISTER;
-                      paraloc^.register:=NR_RZB2;
+                      paraloc^.register:=NR_RZW3L;
                       paraloc^.size:=OS_8;
                       paraloc^.size:=OS_8;
                       paraloc^.def:=u8inttype;
                       paraloc^.def:=u8inttype;
 
 
                       paraloc:=result.add_location;
                       paraloc:=result.add_location;
                       paraloc^.loc:=LOC_REGISTER;
                       paraloc^.loc:=LOC_REGISTER;
-                      paraloc^.register:=NR_RZB3;
+                      paraloc^.register:=NR_RZW3H;
                       paraloc^.size:=OS_8;
                       paraloc^.size:=OS_8;
                       paraloc^.def:=u8inttype;
                       paraloc^.def:=u8inttype;
                     end;
                     end;
@@ -465,25 +465,25 @@ unit cpupara;
               OS_32,OS_S32:
               OS_32,OS_S32:
                 begin
                 begin
                   paraloc^.loc:=LOC_REGISTER;
                   paraloc^.loc:=LOC_REGISTER;
-                  paraloc^.register:=NR_RZB0;
+                  paraloc^.register:=NR_RZW2L;
                   paraloc^.size:=OS_8;
                   paraloc^.size:=OS_8;
                   paraloc^.def:=u8inttype;
                   paraloc^.def:=u8inttype;
 
 
                   paraloc:=result.add_location;
                   paraloc:=result.add_location;
                   paraloc^.loc:=LOC_REGISTER;
                   paraloc^.loc:=LOC_REGISTER;
-                  paraloc^.register:=NR_RZB1;
+                  paraloc^.register:=NR_RZW2H;
                   paraloc^.size:=OS_8;
                   paraloc^.size:=OS_8;
                   paraloc^.def:=u8inttype;
                   paraloc^.def:=u8inttype;
 
 
                   paraloc:=result.add_location;
                   paraloc:=result.add_location;
                   paraloc^.loc:=LOC_REGISTER;
                   paraloc^.loc:=LOC_REGISTER;
-                  paraloc^.register:=NR_RZB2;
+                  paraloc^.register:=NR_RZW3L;
                   paraloc^.size:=OS_8;
                   paraloc^.size:=OS_8;
                   paraloc^.def:=u8inttype;
                   paraloc^.def:=u8inttype;
 
 
                   paraloc:=result.add_location;
                   paraloc:=result.add_location;
                   paraloc^.loc:=LOC_REGISTER;
                   paraloc^.loc:=LOC_REGISTER;
-                  paraloc^.register:=NR_RZB3;
+                  paraloc^.register:=NR_RZW3H;
                   paraloc^.size:=OS_8;
                   paraloc^.size:=OS_8;
                   paraloc^.def:=u8inttype;
                   paraloc^.def:=u8inttype;
                 end;
                 end;