// All must be registers.
p.getRegister(prog, op, &a[0])
r1 := p.getRegister(prog, op, &a[1])
- p.getRegister(prog, op, &a[2])
- r3 := p.getRegister(prog, op, &a[3])
+ r2 := p.getRegister(prog, op, &a[2])
+ p.getRegister(prog, op, &a[3])
prog.From = a[0]
- prog.To = a[2]
+ prog.To = a[3]
prog.To.Type = obj.TYPE_REGREG2
- prog.To.Offset = int64(r3)
+ prog.To.Offset = int64(r2)
prog.Reg = r1
break
}
MULAWT R1, R2, R3, R4 // c23124e1
MULAWB R1, R2, R3, R4 // 823124e1
MULS R1, R2, R3, R4 // 923164e0
+ MULA R1, R2, R3, R4 // 923124e0
+ MULA.S R1, R2, R3, R4 // 923134e0
MMULA R1, R2, R3, R4 // 123154e7
MMULS R1, R2, R3, R4 // d23154e7
MULABB R1, R2, R3, R4 // 823104e1
{ADIVHW, C_REG, C_REG, C_REG, 105, 4, 0, 0, 0},
{ADIVHW, C_REG, C_NONE, C_REG, 105, 4, 0, 0, 0},
{AMULL, C_REG, C_REG, C_REGREG, 17, 4, 0, 0, 0},
- {AMULA, C_REG, C_REG, C_REGREG2, 17, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
{AMOVW, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
{AMOVB, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
case AMULAWT:
opset(AMULAWB, r0)
opset(AMULABB, r0)
+ opset(AMULA, r0)
opset(AMULS, r0)
opset(AMMULA, r0)
opset(AMMULS, r0)
opset(AREVSH, r0)
opset(ARBIT, r0)
- case AMULA,
- ALDREX,
+ case ALDREX,
ASTREX,
ALDREXD,
ASTREXD,
- ATST,
APLD,
obj.AUNDEF,
obj.AFUNCDATA,
case 99: /* MULAW{T,B} Rs, Rm, Rn, Rd */
o1 = c.oprrr(p, p.As, int(p.Scond))
- o1 |= (uint32(p.To.Reg) & 15) << 12
+ o1 |= (uint32(p.To.Reg) & 15) << 16
o1 |= (uint32(p.From.Reg) & 15) << 8
o1 |= (uint32(p.Reg) & 15) << 0
- o1 |= uint32((p.To.Offset & 15) << 16)
+ o1 |= uint32((p.To.Offset & 15) << 12)
// DATABUNDLE: BKPT $0x5be0, signify the start of NaCl data bundle;
// DATABUNDLEEND: zero width alignment marker