A32: Implement Thumb-1 variant of SEVL
While we're at it, also add the Thumb-2 encoding to the encoding table to make sure it isn't forgotten about in the future.
This commit is contained in:
parent
9a097e307f
commit
9935f3aa28
4 changed files with 11 additions and 0 deletions
|
@ -90,6 +90,7 @@ std::optional<std::reference_wrapper<const Thumb16Matcher<V>>> DecodeThumb16(u16
|
||||||
// Hint instructions
|
// Hint instructions
|
||||||
INST(&V::thumb16_NOP, "NOP", "1011111100000000"), // v6T2
|
INST(&V::thumb16_NOP, "NOP", "1011111100000000"), // v6T2
|
||||||
INST(&V::thumb16_SEV, "SEV", "1011111101000000"), // v7
|
INST(&V::thumb16_SEV, "SEV", "1011111101000000"), // v7
|
||||||
|
INST(&V::thumb16_SEVL, "SEVL", "1011111101010000"), // v8
|
||||||
INST(&V::thumb16_WFE, "WFE", "1011111100100000"), // v7
|
INST(&V::thumb16_WFE, "WFE", "1011111100100000"), // v7
|
||||||
INST(&V::thumb16_WFI, "WFI", "1011111100110000"), // v7
|
INST(&V::thumb16_WFI, "WFI", "1011111100110000"), // v7
|
||||||
INST(&V::thumb16_YIELD, "YIELD", "1011111100010000"), // v7
|
INST(&V::thumb16_YIELD, "YIELD", "1011111100010000"), // v7
|
||||||
|
|
|
@ -127,6 +127,7 @@ std::optional<std::reference_wrapper<const Thumb32Matcher<V>>> DecodeThumb32(u32
|
||||||
//INST(&V::thumb32_WFE, "WFE", "111100111010----10-0-00000000010"),
|
//INST(&V::thumb32_WFE, "WFE", "111100111010----10-0-00000000010"),
|
||||||
//INST(&V::thumb32_WFI, "WFI", "111100111010----10-0-00000000011"),
|
//INST(&V::thumb32_WFI, "WFI", "111100111010----10-0-00000000011"),
|
||||||
//INST(&V::thumb32_SEV, "SEV", "111100111010----10-0-00000000100"),
|
//INST(&V::thumb32_SEV, "SEV", "111100111010----10-0-00000000100"),
|
||||||
|
//INST(&V::thumb32_SEVL, "SEVL", "111100111010----10-0-00000000101"),
|
||||||
//INST(&V::thumb32_DBG, "DBG", "111100111010----10-0-0001111----"),
|
//INST(&V::thumb32_DBG, "DBG", "111100111010----10-0-0001111----"),
|
||||||
//INST(&V::thumb32_CPS, "CPS", "111100111010----10-0------------"),
|
//INST(&V::thumb32_CPS, "CPS", "111100111010----10-0------------"),
|
||||||
|
|
||||||
|
|
|
@ -254,6 +254,10 @@ public:
|
||||||
return "sev";
|
return "sev";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string thumb16_SEVL() {
|
||||||
|
return "sevl";
|
||||||
|
}
|
||||||
|
|
||||||
std::string thumb16_WFE() {
|
std::string thumb16_WFE() {
|
||||||
return "wfe";
|
return "wfe";
|
||||||
}
|
}
|
||||||
|
|
|
@ -684,6 +684,11 @@ struct ThumbTranslatorVisitor final {
|
||||||
return RaiseException(Exception::SendEvent);
|
return RaiseException(Exception::SendEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SEVL<c>
|
||||||
|
bool thumb16_SEVL() {
|
||||||
|
return RaiseException(Exception::SendEventLocal);
|
||||||
|
}
|
||||||
|
|
||||||
// WFE<c>
|
// WFE<c>
|
||||||
bool thumb16_WFE() {
|
bool thumb16_WFE() {
|
||||||
return RaiseException(Exception::WaitForEvent);
|
return RaiseException(Exception::WaitForEvent);
|
||||||
|
|
Loading…
Reference in a new issue