A32: Implement the ARM-mode variant of SEVL

This commit is contained in:
Lioncash 2019-05-03 10:57:26 -04:00 committed by MerryMage
parent e89ca42048
commit 9a097e307f
6 changed files with 12 additions and 1 deletions

View file

@ -97,6 +97,7 @@ INST(arm_UXTAH, "UXTAH", "cccc01101111nnnnddddrr000111mmmm
INST(arm_PLD_imm, "PLD (imm)", "11110101uz01nnnn1111iiiiiiiiiiii") // v5E for PLD; v7 for PLDW
INST(arm_PLD_reg, "PLD (reg)", "11110111uz01nnnn1111iiiiitt0mmmm") // v5E for PLD; v7 for PLDW
INST(arm_SEV, "SEV", "----0011001000001111000000000100") // v6K
INST(arm_SEVL, "SEVL", "----0011001000001111000000000101") // v8
INST(arm_WFE, "WFE", "----0011001000001111000000000010") // v6K
INST(arm_WFI, "WFI", "----0011001000001111000000000011") // v6K
INST(arm_YIELD, "YIELD", "----0011001000001111000000000001") // v6K

View file

@ -451,6 +451,9 @@ public:
std::string arm_SEV() {
return "sev";
}
std::string arm_SEVL() {
return "sevl";
}
std::string arm_WFE() {
return "wfe";
}

View file

@ -33,6 +33,10 @@ bool ArmTranslatorVisitor::arm_SEV() {
return RaiseException(Exception::SendEvent);
}
bool ArmTranslatorVisitor::arm_SEVL() {
return RaiseException(Exception::SendEventLocal);
}
bool ArmTranslatorVisitor::arm_WFE() {
return RaiseException(Exception::WaitForEvent);
}

View file

@ -167,6 +167,7 @@ struct ArmTranslatorVisitor final {
bool arm_PLD_imm(bool add, bool R, Reg n, Imm<12> imm12);
bool arm_PLD_reg(bool add, bool R, Reg n, Imm<5> imm5, ShiftType shift, Reg m);
bool arm_SEV();
bool arm_SEVL();
bool arm_WFE();
bool arm_WFI();
bool arm_YIELD();