Implement Thumb instructions: ADD (SP plus imm, T1), ADD (SP plus imm, T2), SUB (SP minus imm)

This commit is contained in:
MerryMage
2016-07-18 11:16:12 +01:00
parent c18a3eeab4
commit 9109b226af
4 changed files with 46 additions and 4 deletions

View File

@@ -249,6 +249,21 @@ public:
return Common::StringFromFormat("adr %s, +#%u", RegStr(d), imm32);
}
std::string thumb16_ADD_sp_t1(Reg d, Imm8 imm8) {
u32 imm32 = imm8 << 2;
return Common::StringFromFormat("add %s, sp, #%u", RegStr(d), imm32);
}
std::string thumb16_ADD_sp_t2(Imm7 imm7) {
u32 imm32 = imm7 << 2;
return Common::StringFromFormat("add sp, sp, #%u", imm32);
}
std::string thumb16_SUB_sp(Imm7 imm7) {
u32 imm32 = imm7 << 2;
return Common::StringFromFormat("sub sp, sp, #%u", imm32);
}
std::string thumb16_SXTH(Reg m, Reg d) {
return Common::StringFromFormat("sxth %s, %s", RegStr(d), RegStr(m));
}