diff --git a/compiler/powerpc/nppcmat.pas b/compiler/powerpc/nppcmat.pas index 0286b2e0f7..d804571af2 100644 --- a/compiler/powerpc/nppcmat.pas +++ b/compiler/powerpc/nppcmat.pas @@ -576,6 +576,8 @@ end; end else begin + if left.location.loc in [LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF] then + location_force_reg(current_asmdata.CurrAsmList,left.location,left.location.size,true); location_copy(location,left.location); location.loc:=LOC_REGISTER; case left.location.loc of diff --git a/compiler/powerpc64/nppcmat.pas b/compiler/powerpc64/nppcmat.pas index 3807cf8434..b1a008188c 100644 --- a/compiler/powerpc64/nppcmat.pas +++ b/compiler/powerpc64/nppcmat.pas @@ -316,6 +316,8 @@ var begin secondpass(left); begin + if left.location.loc in [LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF] then + location_force_reg(current_asmdata.CurrAsmList,left.location,left.location.size,true); location_copy(location, left.location); location.loc := LOC_REGISTER; case left.location.loc of