asimd: VEXT was being shadowed
This commit is contained in:
parent
bf093395d8
commit
33a81dae68
2 changed files with 10 additions and 3 deletions
|
@ -53,7 +53,6 @@ INST(asimd_VRECPS, "VRECPS", "111100100D0znnnndddd111
|
||||||
INST(asimd_VRSQRTS, "VRSQRTS", "111100100D1znnnndddd1111NQM1mmmm") // ASIMD
|
INST(asimd_VRSQRTS, "VRSQRTS", "111100100D1znnnndddd1111NQM1mmmm") // ASIMD
|
||||||
|
|
||||||
// Two registers and a scalar
|
// Two registers and a scalar
|
||||||
INST(arm_UDF, "UNALLOCATED", "1111001-1-11-------------1-0----") // ASIMD
|
|
||||||
INST(asimd_VMLA_scalar, "VMLA (scalar)", "1111001Q1Dzznnnndddd0o0FN1M0mmmm") // ASIMD
|
INST(asimd_VMLA_scalar, "VMLA (scalar)", "1111001Q1Dzznnnndddd0o0FN1M0mmmm") // ASIMD
|
||||||
INST(asimd_VMLAL_scalar, "VMLAL (scalar)", "1111001U1dzznnnndddd0o10N1M0mmmm") // ASIMD
|
INST(asimd_VMLAL_scalar, "VMLAL (scalar)", "1111001U1dzznnnndddd0o10N1M0mmmm") // ASIMD
|
||||||
//INST(asimd_VQDMLAL, "VQDMLAL/VQDMLSL", "111100101-BB--------0x11-1-0----") // ASIMD
|
//INST(asimd_VQDMLAL, "VQDMLAL/VQDMLSL", "111100101-BB--------0x11-1-0----") // ASIMD
|
||||||
|
|
|
@ -26,7 +26,11 @@ enum class MultiplyBehavior {
|
||||||
|
|
||||||
bool ScalarMultiply(ArmTranslatorVisitor& v, bool Q, bool D, size_t sz, size_t Vn, size_t Vd, bool F, bool N, bool M, size_t Vm,
|
bool ScalarMultiply(ArmTranslatorVisitor& v, bool Q, bool D, size_t sz, size_t Vn, size_t Vd, bool F, bool N, bool M, size_t Vm,
|
||||||
MultiplyBehavior multiply) {
|
MultiplyBehavior multiply) {
|
||||||
ASSERT_MSG(sz != 0b11, "Decode error");
|
if (sz == 0b11) {
|
||||||
|
// TODO: This should be a decode error.
|
||||||
|
return v.UndefinedInstruction();
|
||||||
|
}
|
||||||
|
|
||||||
if (sz == 0b00 || (F && sz == 0b01)) {
|
if (sz == 0b00 || (F && sz == 0b01)) {
|
||||||
return v.UndefinedInstruction();
|
return v.UndefinedInstruction();
|
||||||
}
|
}
|
||||||
|
@ -65,7 +69,11 @@ bool ScalarMultiply(ArmTranslatorVisitor& v, bool Q, bool D, size_t sz, size_t V
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ScalarMultiplyLong(ArmTranslatorVisitor& v, bool U, bool D, size_t sz, size_t Vn, size_t Vd, bool N, bool M, size_t Vm, MultiplyBehavior multiply) {
|
bool ScalarMultiplyLong(ArmTranslatorVisitor& v, bool U, bool D, size_t sz, size_t Vn, size_t Vd, bool N, bool M, size_t Vm, MultiplyBehavior multiply) {
|
||||||
ASSERT_MSG(sz != 0b11, "Decode error");
|
if (sz == 0b11) {
|
||||||
|
// TODO: This should be a decode error.
|
||||||
|
return v.UndefinedInstruction();
|
||||||
|
}
|
||||||
|
|
||||||
if (sz == 0b00 || Common::Bit<0>(Vd)) {
|
if (sz == 0b00 || Common::Bit<0>(Vd)) {
|
||||||
return v.UndefinedInstruction();
|
return v.UndefinedInstruction();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue