ROTRV R4, R5, R6 // a6901b00
CLO R4, R5 // 85100000
CLZ R4, R5 // 85140000
+ CPUCFG R4, R5 // 856c0000
ADDF F4, F5 // a5900001
ADDF F4, R5, F6 // a6900001
CMPEQF F4, R5 // a010120c
case ACLO:
opset(ACLZ, r0)
+ opset(ACPUCFG, r0)
case ATEQ:
opset(ATNE, r0)
o1 = OP_12IRR(c.opirr(-p.As), uint32(v), uint32(r), uint32(p.To.Reg))
case 9: // sll r1,[r2],r3
- if p.As != ACLO && p.As != ACLZ {
+ switch p.As {
+ case ACLO, ACLZ, ACPUCFG:
+ o1 = OP_RR(c.oprr(p.As), uint32(p.From.Reg), uint32(p.To.Reg))
+ default:
r := int(p.Reg)
if r == 0 {
r = int(p.To.Reg)
}
o1 = OP_RRR(c.oprrr(p.As), uint32(p.From.Reg), uint32(r), uint32(p.To.Reg))
- } else { // clo r1,r2
- o1 = OP_RR(c.oprr(p.As), uint32(p.From.Reg), uint32(p.To.Reg))
}
case 10: // add $con,[r1],r2 ==> mov $con, t; add t,[r1],r2
return 0x4 << 10
case ACLZ:
return 0x5 << 10
+ case ACPUCFG:
+ return 0x1b << 10
case ARDTIMELW:
return 0x18 << 10
case ARDTIMEHW: