diff --git a/compiler/riscv32/cpupara.pas b/compiler/riscv32/cpupara.pas index e10802668c..e52caa0bcd 100644 --- a/compiler/riscv32/cpupara.pas +++ b/compiler/riscv32/cpupara.pas @@ -93,7 +93,7 @@ unit cpupara; if nr=0 then internalerror(200309271); loc:=LOC_REGISTER; - register:=newreg(R_INTREGISTER,RS_X10+nr,R_SUBWHOLE); + register:=newreg(R_INTREGISTER,RS_X10+nr-1,R_SUBWHOLE); end else begin @@ -419,16 +419,6 @@ unit cpupara; paraloc^.size:=paracgsize; paraloc^.def:=locdef; 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); inc(nextintreg); dec(paralen,tcgsize2size[paraloc^.size]);