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/multiply.cpp
|
||||||
frontend/translate/translate_arm/parallel.cpp
|
frontend/translate/translate_arm/parallel.cpp
|
||||||
frontend/translate/translate_arm/reversal.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/synchronization.cpp
|
||||||
frontend/translate/translate_arm/vfp2.cpp
|
frontend/translate/translate_arm/vfp2.cpp
|
||||||
frontend/translate/translate_thumb.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);
|
bool arm_SWPB(Cond cond, Reg n, Reg d, Reg m);
|
||||||
|
|
||||||
// Status register access instructions
|
// Status register access instructions
|
||||||
bool arm_CPS() { return InterpretThisInstruction(); }
|
bool arm_CPS();
|
||||||
bool arm_MRS() { return InterpretThisInstruction(); }
|
bool arm_MRS();
|
||||||
bool arm_MSR() { return InterpretThisInstruction(); }
|
bool arm_MSR();
|
||||||
bool arm_RFE() { return InterpretThisInstruction(); }
|
bool arm_RFE();
|
||||||
bool arm_SETEND(bool E) { return InterpretThisInstruction(); }
|
bool arm_SETEND(bool E);
|
||||||
bool arm_SRS() { return InterpretThisInstruction(); }
|
bool arm_SRS();
|
||||||
|
|
||||||
// Floating-point three-register data processing instructions
|
// 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);
|
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