A32: Add hook_hint_instructions option

This commit is contained in:
MerryMage
2019-07-25 12:08:06 +01:00
parent 2f2a859615
commit 396116ee61
5 changed files with 60 additions and 8 deletions

View File

@@ -13,6 +13,10 @@ bool ArmTranslatorVisitor::arm_PLD_imm([[maybe_unused]] bool add,
bool R,
[[maybe_unused]] Reg n,
[[maybe_unused]] Imm<12> imm12) {
if (!options.hook_hint_instructions) {
return true;
}
const auto exception = R ? Exception::PreloadData
: Exception::PreloadDataWithIntentToWrite;
return RaiseException(exception);
@@ -24,28 +28,52 @@ bool ArmTranslatorVisitor::arm_PLD_reg([[maybe_unused]] bool add,
[[maybe_unused]] Imm<5> imm5,
[[maybe_unused]] ShiftType shift,
[[maybe_unused]] Reg m) {
if (!options.hook_hint_instructions) {
return true;
}
const auto exception = R ? Exception::PreloadData
: Exception::PreloadDataWithIntentToWrite;
return RaiseException(exception);
}
bool ArmTranslatorVisitor::arm_SEV() {
if (!options.hook_hint_instructions) {
return true;
}
return RaiseException(Exception::SendEvent);
}
bool ArmTranslatorVisitor::arm_SEVL() {
if (!options.hook_hint_instructions) {
return true;
}
return RaiseException(Exception::SendEventLocal);
}
bool ArmTranslatorVisitor::arm_WFE() {
if (!options.hook_hint_instructions) {
return true;
}
return RaiseException(Exception::WaitForEvent);
}
bool ArmTranslatorVisitor::arm_WFI() {
if (!options.hook_hint_instructions) {
return true;
}
return RaiseException(Exception::WaitForInterrupt);
}
bool ArmTranslatorVisitor::arm_YIELD() {
if (!options.hook_hint_instructions) {
return true;
}
return RaiseException(Exception::Yield);
}