diff --git a/src/dynarmic/frontend/A32/translate/impl/thumb32_store_single_data_item.cpp b/src/dynarmic/frontend/A32/translate/impl/thumb32_store_single_data_item.cpp index 93c383757..23ec89ab0 100644 --- a/src/dynarmic/frontend/A32/translate/impl/thumb32_store_single_data_item.cpp +++ b/src/dynarmic/frontend/A32/translate/impl/thumb32_store_single_data_item.cpp @@ -171,7 +171,8 @@ bool TranslatorVisitor::thumb32_STR_imm_1(Reg n, Reg t, bool P, bool U, Imm<8> i if (n == Reg::PC) { return UndefinedInstruction(); } - if (t == Reg::PC || n == t) { + // VITA3K: n == t preindex writeback is defined in vita cpu + if (t == Reg::PC || (!P && n == t)) { return UnpredictableInstruction(); } return StoreImmediate(*this, n, t, P, U, true, Imm<12>{imm8.ZeroExtend()}, StoreImmWordFn);