* AVR: patch by Christo Crause: fixes tcgavr.g_concatcopy for data with size>255, resolves #36066

git-svn-id: trunk@42977 -
This commit is contained in:
florian 2019-09-12 20:29:12 +00:00
parent 01bc1ed80e
commit 4e93a9a6c7

View File

@ -2404,7 +2404,14 @@ unit cgcpu;
list.concat(taicpu.op_reg_ref(GetLoad(srcref),NR_R0,srcref));
list.concat(taicpu.op_ref_reg(GetStore(dstref),dstref,NR_R0));
cg.ungetcpuregister(list,NR_R0);
list.concat(taicpu.op_reg(A_DEC,countreg));
if tcgsize2size[countregsize] = 1 then
list.concat(taicpu.op_reg(A_DEC,countreg))
else
begin
list.concat(taicpu.op_reg_const(A_SUBI,countreg,1));
list.concat(taicpu.op_reg_reg(A_SBC,GetNextReg(countreg),NR_R1));
end;
a_jmp_flags(list,F_NE,l);
cg.ungetcpuregister(list,NR_R26);
cg.ungetcpuregister(list,NR_R27);