mirror of
https://github.com/golang/go
synced 2024-11-25 16:07:56 -07:00
enable arm peep.
one bug fixed, probably more will be revealed R=r CC=golang-dev https://golang.org/cl/4126044
This commit is contained in:
parent
0f0f34ee05
commit
1f55105f66
@ -333,6 +333,9 @@ subprop(Reg *r0)
|
|||||||
case ABL:
|
case ABL:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
case AMULLU:
|
||||||
|
case AMULA:
|
||||||
|
|
||||||
case ACMN:
|
case ACMN:
|
||||||
case AADD:
|
case AADD:
|
||||||
case ASUB:
|
case ASUB:
|
||||||
@ -344,9 +347,13 @@ subprop(Reg *r0)
|
|||||||
case AORR:
|
case AORR:
|
||||||
case AAND:
|
case AAND:
|
||||||
case AEOR:
|
case AEOR:
|
||||||
|
case AMVN:
|
||||||
case AMUL:
|
case AMUL:
|
||||||
|
case AMULU:
|
||||||
case ADIV:
|
case ADIV:
|
||||||
case ADIVU:
|
case ADIVU:
|
||||||
|
case AMOD:
|
||||||
|
case AMODU:
|
||||||
|
|
||||||
case AADDD:
|
case AADDD:
|
||||||
case AADDF:
|
case AADDF:
|
||||||
@ -1005,7 +1012,12 @@ copyu(Prog *p, Adr *v, Adr *s)
|
|||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
case AMULLU: /* read, read, write, write */
|
||||||
|
case AMULA:
|
||||||
|
return 2;
|
||||||
|
|
||||||
case AADD: /* read, read, write */
|
case AADD: /* read, read, write */
|
||||||
|
case AADC:
|
||||||
case ASUB:
|
case ASUB:
|
||||||
case ASBC:
|
case ASBC:
|
||||||
case ARSB:
|
case ARSB:
|
||||||
@ -1015,9 +1027,13 @@ copyu(Prog *p, Adr *v, Adr *s)
|
|||||||
case AORR:
|
case AORR:
|
||||||
case AAND:
|
case AAND:
|
||||||
case AEOR:
|
case AEOR:
|
||||||
|
case AMVN:
|
||||||
case AMUL:
|
case AMUL:
|
||||||
|
case AMULU:
|
||||||
case ADIV:
|
case ADIV:
|
||||||
case ADIVU:
|
case ADIVU:
|
||||||
|
case AMOD:
|
||||||
|
case AMODU:
|
||||||
case AADDF:
|
case AADDF:
|
||||||
case AADDD:
|
case AADDD:
|
||||||
case ASUBF:
|
case ASUBF:
|
||||||
@ -1144,6 +1160,9 @@ a2type(Prog *p)
|
|||||||
case ACMP:
|
case ACMP:
|
||||||
case ACMN:
|
case ACMN:
|
||||||
|
|
||||||
|
case AMULLU:
|
||||||
|
case AMULA:
|
||||||
|
|
||||||
case AADD:
|
case AADD:
|
||||||
case ASUB:
|
case ASUB:
|
||||||
case ARSB:
|
case ARSB:
|
||||||
@ -1153,9 +1172,13 @@ a2type(Prog *p)
|
|||||||
case AORR:
|
case AORR:
|
||||||
case AAND:
|
case AAND:
|
||||||
case AEOR:
|
case AEOR:
|
||||||
|
case AMVN:
|
||||||
case AMUL:
|
case AMUL:
|
||||||
|
case AMULU:
|
||||||
case ADIV:
|
case ADIV:
|
||||||
case ADIVU:
|
case ADIVU:
|
||||||
|
case AMOD:
|
||||||
|
case AMODU:
|
||||||
return D_REG;
|
return D_REG;
|
||||||
|
|
||||||
case ACMPF:
|
case ACMPF:
|
||||||
@ -1372,12 +1395,15 @@ int
|
|||||||
modifiescpsr(Prog *p)
|
modifiescpsr(Prog *p)
|
||||||
{
|
{
|
||||||
switch(p->as) {
|
switch(p->as) {
|
||||||
|
case AMULLU:
|
||||||
|
case AMULA:
|
||||||
|
case AMULU:
|
||||||
|
case ADIVU:
|
||||||
|
|
||||||
case ATEQ:
|
case ATEQ:
|
||||||
case ACMN:
|
case ACMN:
|
||||||
case ATST:
|
case ATST:
|
||||||
case ACMP:
|
case ACMP:
|
||||||
case AMULU:
|
|
||||||
case ADIVU:
|
|
||||||
case AMUL:
|
case AMUL:
|
||||||
case ADIV:
|
case ADIV:
|
||||||
case AMOD:
|
case AMOD:
|
||||||
|
@ -143,7 +143,7 @@ regopt(Prog *firstp)
|
|||||||
first++;
|
first++;
|
||||||
|
|
||||||
if(debug['K']) {
|
if(debug['K']) {
|
||||||
if(first != 1)
|
if(first != 13)
|
||||||
return;
|
return;
|
||||||
// debug['R'] = 2;
|
// debug['R'] = 2;
|
||||||
// debug['P'] = 2;
|
// debug['P'] = 2;
|
||||||
@ -491,7 +491,7 @@ brk:
|
|||||||
* peep-hole on basic block
|
* peep-hole on basic block
|
||||||
*/
|
*/
|
||||||
if(!debug['R'] || debug['P']) {
|
if(!debug['R'] || debug['P']) {
|
||||||
// peep();
|
peep();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user