one bug fixed,
probably more will be revealed
R=r
CC=golang-dev
https://golang.org/cl/
4126044
case ABL:
return 0;
+ case AMULLU:
+ case AMULA:
+
case ACMN:
case AADD:
case ASUB:
case AORR:
case AAND:
case AEOR:
+ case AMVN:
case AMUL:
+ case AMULU:
case ADIV:
case ADIVU:
+ case AMOD:
+ case AMODU:
case AADDD:
case AADDF:
return 1;
return 0;
+ case AMULLU: /* read, read, write, write */
+ case AMULA:
+ return 2;
+
case AADD: /* read, read, write */
+ case AADC:
case ASUB:
case ASBC:
case ARSB:
case AORR:
case AAND:
case AEOR:
+ case AMVN:
case AMUL:
+ case AMULU:
case ADIV:
case ADIVU:
+ case AMOD:
+ case AMODU:
case AADDF:
case AADDD:
case ASUBF:
case ACMP:
case ACMN:
+ case AMULLU:
+ case AMULA:
+
case AADD:
case ASUB:
case ARSB:
case AORR:
case AAND:
case AEOR:
+ case AMVN:
case AMUL:
+ case AMULU:
case ADIV:
case ADIVU:
+ case AMOD:
+ case AMODU:
return D_REG;
case ACMPF:
modifiescpsr(Prog *p)
{
switch(p->as) {
+ case AMULLU:
+ case AMULA:
+ case AMULU:
+ case ADIVU:
+
case ATEQ:
case ACMN:
case ATST:
case ACMP:
- case AMULU:
- case ADIVU:
case AMUL:
case ADIV:
case AMOD:
first++;
if(debug['K']) {
- if(first != 1)
+ if(first != 13)
return;
// debug['R'] = 2;
// debug['P'] = 2;
* peep-hole on basic block
*/
if(!debug['R'] || debug['P']) {
-// peep();
+ peep();
}
/*