Merge pull request #578 from lioncash/hint
thumb32: Implement hint instructions
This commit is contained in:
commit
e753b223e2
3 changed files with 36 additions and 6 deletions
|
@ -95,12 +95,12 @@ INST(thumb32_MOVT, "MOVT", "11110i101100iiii0iiidd
|
||||||
//INST(thumb32_MSR_reg_3, "MSR (reg)", "111100111000----10-0--1---0-----")
|
//INST(thumb32_MSR_reg_3, "MSR (reg)", "111100111000----10-0--1---0-----")
|
||||||
//INST(thumb32_MSR_reg_4, "MSR (reg)", "111100111000----10-0--00--0-----")
|
//INST(thumb32_MSR_reg_4, "MSR (reg)", "111100111000----10-0--00--0-----")
|
||||||
|
|
||||||
//INST(thumb32_NOP, "NOP", "111100111010----10-0-00000000000")
|
INST(thumb32_NOP, "NOP", "11110011101011111000000000000000")
|
||||||
//INST(thumb32_YIELD, "YIELD", "111100111010----10-0-00000000001")
|
INST(thumb32_YIELD, "YIELD", "11110011101011111000000000000001")
|
||||||
//INST(thumb32_WFE, "WFE", "111100111010----10-0-00000000010")
|
INST(thumb32_WFE, "WFE", "11110011101011111000000000000010")
|
||||||
//INST(thumb32_WFI, "WFI", "111100111010----10-0-00000000011")
|
INST(thumb32_WFI, "WFI", "11110011101011111000000000000011")
|
||||||
//INST(thumb32_SEV, "SEV", "111100111010----10-0-00000000100")
|
INST(thumb32_SEV, "SEV", "11110011101011111000000000000100")
|
||||||
//INST(thumb32_SEVL, "SEVL", "111100111010----10-0-00000000101")
|
INST(thumb32_SEVL, "SEVL", "11110011101011111000000000000101")
|
||||||
//INST(thumb32_DBG, "DBG", "111100111010----10-0-0001111----")
|
//INST(thumb32_DBG, "DBG", "111100111010----10-0-0001111----")
|
||||||
//INST(thumb32_CPS, "CPS", "111100111010----10-0------------")
|
//INST(thumb32_CPS, "CPS", "111100111010----10-0------------")
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,32 @@ bool ThumbTranslatorVisitor::thumb32_ISB([[maybe_unused]] Imm<4> option) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_NOP() {
|
||||||
|
return thumb16_NOP();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_SEV() {
|
||||||
|
return thumb16_SEV();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_SEVL() {
|
||||||
|
return thumb16_SEVL();
|
||||||
|
}
|
||||||
|
|
||||||
bool ThumbTranslatorVisitor::thumb32_UDF() {
|
bool ThumbTranslatorVisitor::thumb32_UDF() {
|
||||||
return thumb16_UDF();
|
return thumb16_UDF();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_WFE() {
|
||||||
|
return thumb16_WFE();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_WFI() {
|
||||||
|
return thumb16_WFI();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ThumbTranslatorVisitor::thumb32_YIELD() {
|
||||||
|
return thumb16_YIELD();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Dynarmic::A32
|
} // namespace Dynarmic::A32
|
||||||
|
|
|
@ -168,7 +168,13 @@ struct ThumbTranslatorVisitor final {
|
||||||
bool thumb32_DMB(Imm<4> option);
|
bool thumb32_DMB(Imm<4> option);
|
||||||
bool thumb32_DSB(Imm<4> option);
|
bool thumb32_DSB(Imm<4> option);
|
||||||
bool thumb32_ISB(Imm<4> option);
|
bool thumb32_ISB(Imm<4> option);
|
||||||
|
bool thumb32_NOP();
|
||||||
|
bool thumb32_SEV();
|
||||||
|
bool thumb32_SEVL();
|
||||||
bool thumb32_UDF();
|
bool thumb32_UDF();
|
||||||
|
bool thumb32_WFE();
|
||||||
|
bool thumb32_WFI();
|
||||||
|
bool thumb32_YIELD();
|
||||||
|
|
||||||
// thumb32 branch instructions
|
// thumb32 branch instructions
|
||||||
bool thumb32_BL_imm(Imm<1> S, Imm<10> hi, Imm<1> j1, Imm<1> j2, Imm<11> lo);
|
bool thumb32_BL_imm(Imm<1> S, Imm<10> hi, Imm<1> j1, Imm<1> j2, Imm<11> lo);
|
||||||
|
|
Loading…
Reference in a new issue