Browse Source

* RiscV32: corrected tcpuparamanager.getcgtempparaloc, resolves #37709
* cleanup

git-svn-id: trunk@46803 -

florian 4 years ago
parent
commit
c8f592d260
1 changed files with 1 additions and 11 deletions
  1. 1 11
      compiler/riscv32/cpupara.pas

+ 1 - 11
compiler/riscv32/cpupara.pas

@@ -93,7 +93,7 @@ unit cpupara;
                if nr=0 then
                if nr=0 then
                  internalerror(200309271);
                  internalerror(200309271);
                loc:=LOC_REGISTER;
                loc:=LOC_REGISTER;
-               register:=newreg(R_INTREGISTER,RS_X10+nr,R_SUBWHOLE);
+               register:=newreg(R_INTREGISTER,RS_X10+nr-1,R_SUBWHOLE);
              end
              end
            else
            else
              begin
              begin
@@ -419,16 +419,6 @@ unit cpupara;
                           paraloc^.size:=paracgsize;
                           paraloc^.size:=paracgsize;
                           paraloc^.def:=locdef;
                           paraloc^.def:=locdef;
                         end;
                         end;
-                      { aix requires that record data stored in parameter
-                        registers is left-aligned }
-                      if (target_info.system in systems_aix) and
-                         (paradef.typ = recorddef) and
-                         (paralen < sizeof(aint)) then
-                        begin
-                          paraloc^.shiftval := (sizeof(aint)-paralen)*(-8);
-                          paraloc^.size := OS_INT;
-                          paraloc^.def := u32inttype;
-                        end;
                       paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE);
                       paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE);
                       inc(nextintreg);
                       inc(nextintreg);
                       dec(paralen,tcgsize2size[paraloc^.size]);
                       dec(paralen,tcgsize2size[paraloc^.size]);