* load_reg_reg fixed

This commit is contained in:
florian 2005-01-04 20:15:05 +00:00
parent 655e947521
commit 468eca38bd

View File

@ -684,11 +684,12 @@ unit cgcpu;
so : tshifterop;
begin
shifterop_reset(so);
if (reg1<>reg2) or
(tcgsize2size[tosize] < tcgsize2size[fromsize]) or
((tcgsize2size[tosize] = tcgsize2size[fromsize]) and
if (tcgsize2size[tosize] < tcgsize2size[fromsize]) or
(
(tcgsize2size[tosize] = tcgsize2size[fromsize]) and
(tosize <> fromsize) and
not(fromsize in [OS_32,OS_S32])) then
not(fromsize in [OS_32,OS_S32])
) then
begin
case tosize of
OS_8:
@ -729,6 +730,18 @@ unit cgcpu;
end;
else internalerror(2002090901);
end;
end
else
begin
if reg1<>reg2 then
begin
{ same size, only a register mov required }
instr:=taicpu.op_reg_reg(A_MOV,reg2,reg1);
list.Concat(instr);
{ Notify the register allocator that we have written a move instruction so
it can try to eliminate it. }
add_move_instruction(instr);
end;
end;
end;
@ -1295,7 +1308,10 @@ begin
end.
{
$Log$
Revision 1.64 2005-01-04 15:36:32 florian
Revision 1.65 2005-01-04 20:15:05 florian
* load_reg_reg fixed
Revision 1.64 2005/01/04 15:36:32 florian
* implemented nostackframe calling convention directive
Revision 1.63 2004/11/06 15:18:57 florian