mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2025-12-28 02:05:00 +01:00
translate_arm/vfp2: Implement VSTM (A1, A2)
This commit is contained in:
parent
a96704eb0f
commit
78464a8f01
4 changed files with 86 additions and 5 deletions
|
|
@ -889,6 +889,20 @@ public:
|
|||
return Common::StringFromFormat("vstr%s %s, [%s, #%c%u]", CondToString(cond), FPRegStr(sz, Vd, D).c_str(), RegToString(n), U ? '+' : '-', imm32);
|
||||
}
|
||||
|
||||
std::string vfp2_VSTM_a1(Cond cond, bool p, bool u, bool D, bool w, Reg n, size_t Vd, Imm8 imm8) {
|
||||
const char* mode = "<invalid mode>";
|
||||
if (!p && u) mode = "ia";
|
||||
if (p && !u) mode = "db";
|
||||
return Common::StringFromFormat("vstm%s%s.f64 %s%s, %s(+%u)", mode, CondToString(cond), RegToString(n), w ? "!" : "", FPRegStr(true, Vd, D).c_str(), imm8);
|
||||
}
|
||||
|
||||
std::string vfp2_VSTM_a2(Cond cond, bool p, bool u, bool D, bool w, Reg n, size_t Vd, Imm8 imm8) {
|
||||
const char* mode = "<invalid mode>";
|
||||
if (!p && u) mode = "ia";
|
||||
if (p && !u) mode = "db";
|
||||
return Common::StringFromFormat("vstm%s%s.f32 %s%s, %s(+%u)", mode, CondToString(cond), RegToString(n), w ? "!" : "", FPRegStr(false, Vd, D).c_str(), imm8);
|
||||
}
|
||||
|
||||
std::string vfp2_VLDM_a1(Cond cond, bool p, bool u, bool D, bool w, Reg n, size_t Vd, Imm8 imm8) {
|
||||
const char* mode = "<invalid mode>";
|
||||
if (!p && u) mode = "ia";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue