- removed "mov reg,reg" optimization (those instructions are removed by

the register allocator, and may be necessary to indicate a register
    may not be released before some point)
This commit is contained in:
Jonas Maebe 2004-02-03 19:46:48 +00:00
parent edb91b0d18
commit 4ba9c9ec67

View File

@ -637,20 +637,12 @@ unit cgx86;
var var
op: tasmop; op: tasmop;
s: topsize; s: topsize;
eq:boolean;
instr:Taicpu; instr:Taicpu;
begin begin
check_register_size(fromsize,reg1); check_register_size(fromsize,reg1);
check_register_size(tosize,reg2); check_register_size(tosize,reg2);
sizes2load(fromsize,tosize,op,s); sizes2load(fromsize,tosize,op,s);
eq:=getsupreg(reg1)=getsupreg(reg2);
if eq then
begin
{ "mov reg1, reg1" doesn't make sense }
if op = A_MOV then
exit;
end;
instr:=taicpu.op_reg_reg(op,s,reg1,reg2); instr:=taicpu.op_reg_reg(op,s,reg1,reg2);
{Notify the register allocator that we have written a move instruction so {Notify the register allocator that we have written a move instruction so
it can try to eliminate it.} it can try to eliminate it.}
@ -1896,7 +1888,12 @@ unit cgx86;
end. end.
{ {
$Log$ $Log$
Revision 1.103 2004-01-15 23:16:33 daniel Revision 1.104 2004-02-03 19:46:48 jonas
- removed "mov reg,reg" optimization (those instructions are removed by
the register allocator, and may be necessary to indicate a register
may not be released before some point)
Revision 1.103 2004/01/15 23:16:33 daniel
+ Cleanup of stabstring generation code. Cleaner, faster, and compiler + Cleanup of stabstring generation code. Cleaner, faster, and compiler
executable reduced by 50 kb, executable reduced by 50 kb,