8c, 6c: LEA x, R; MOV (R), R -> MOV x, R
This commit is contained in:
parent
345714dd56
commit
4cffc04364
2 changed files with 37 additions and 0 deletions
|
@ -170,6 +170,24 @@ loop1:
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ALEAQ:
|
||||||
|
if(regtyp(&p->to)) {
|
||||||
|
r1 = rnops(uniqs(r));
|
||||||
|
if(r1 != R){
|
||||||
|
p1 = r1->prog;
|
||||||
|
if((p1->as == AMOVL || p1->as == AMOVQ)
|
||||||
|
&& p1->to.type == p->to.type
|
||||||
|
&& p1->from.type-D_INDIR == p->to.type
|
||||||
|
&& p1->from.index == D_NONE
|
||||||
|
&& p1->from.offset == 0){
|
||||||
|
p->as = p1->as;
|
||||||
|
excise(r1);
|
||||||
|
t++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case AADDL:
|
case AADDL:
|
||||||
case AADDQ:
|
case AADDQ:
|
||||||
case AADDW:
|
case AADDW:
|
||||||
|
|
|
@ -99,6 +99,25 @@ loop1:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ALEAL:
|
||||||
|
if(regtyp(&p->to)) {
|
||||||
|
r1 = uniqs(r);
|
||||||
|
if(r1 != R){
|
||||||
|
p1 = r1->prog;
|
||||||
|
if(p1->as == AMOVL
|
||||||
|
&& p1->to.type == p->to.type
|
||||||
|
&& p1->from.type-D_INDIR == p->to.type
|
||||||
|
&& p1->from.index == D_NONE
|
||||||
|
&& p1->from.offset == 0){
|
||||||
|
p->as = p1->as;
|
||||||
|
excise(r1);
|
||||||
|
t++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case AADDL:
|
case AADDL:
|
||||||
case AADDW:
|
case AADDW:
|
||||||
if(p->from.type != D_CONST || needc(p->link))
|
if(p->from.type != D_CONST || needc(p->link))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue