TranslateArm: Implement SETEND
This commit is contained in:
parent
8964b38cf9
commit
0e5593ba62
3 changed files with 47 additions and 6 deletions
|
@ -27,6 +27,7 @@ set(SRCS
|
|||
frontend/translate/translate_arm/multiply.cpp
|
||||
frontend/translate/translate_arm/parallel.cpp
|
||||
frontend/translate/translate_arm/reversal.cpp
|
||||
frontend/translate/translate_arm/status_register_access.cpp
|
||||
frontend/translate/translate_arm/synchronization.cpp
|
||||
frontend/translate/translate_arm/vfp2.cpp
|
||||
frontend/translate/translate_thumb.cpp
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/* This file is part of the dynarmic project.
|
||||
* Copyright (c) 2016 MerryMage
|
||||
* This software may be used and distributed according to the terms of the GNU
|
||||
* General Public License version 2 or any later version.
|
||||
*/
|
||||
|
||||
#include "translate_arm.h"
|
||||
|
||||
namespace Dynarmic {
|
||||
namespace Arm {
|
||||
|
||||
bool ArmTranslatorVisitor::arm_CPS() {
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
bool ArmTranslatorVisitor::arm_MRS() {
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
bool ArmTranslatorVisitor::arm_MSR() {
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
bool ArmTranslatorVisitor::arm_RFE() {
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
bool ArmTranslatorVisitor::arm_SETEND(bool E) {
|
||||
// SETEND {BE,LE}
|
||||
ir.SetTerm(ir.current_location.AdvancePC(4).SetEFlag(E));
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ArmTranslatorVisitor::arm_SRS() {
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
|
||||
} // namespace Arm
|
||||
} // namespace Dynarmic
|
|
@ -317,12 +317,12 @@ struct ArmTranslatorVisitor final {
|
|||
bool arm_SWPB(Cond cond, Reg n, Reg d, Reg m);
|
||||
|
||||
// Status register access instructions
|
||||
bool arm_CPS() { return InterpretThisInstruction(); }
|
||||
bool arm_MRS() { return InterpretThisInstruction(); }
|
||||
bool arm_MSR() { return InterpretThisInstruction(); }
|
||||
bool arm_RFE() { return InterpretThisInstruction(); }
|
||||
bool arm_SETEND(bool E) { return InterpretThisInstruction(); }
|
||||
bool arm_SRS() { return InterpretThisInstruction(); }
|
||||
bool arm_CPS();
|
||||
bool arm_MRS();
|
||||
bool arm_MSR();
|
||||
bool arm_RFE();
|
||||
bool arm_SETEND(bool E);
|
||||
bool arm_SRS();
|
||||
|
||||
// Floating-point three-register data processing instructions
|
||||
bool vfp2_VADD(Cond cond, bool D, size_t Vn, size_t Vd, bool sz, bool N, bool M, size_t Vm);
|
||||
|
|
Loading…
Reference in a new issue