1 /* This file is part of the dynarmic project. 2 * Copyright (c) 2019 MerryMage 3 * SPDX-License-Identifier: 0BSD 4 */ 5 6 #include "frontend/A32/translate/impl/translate_arm.h" 7 8 namespace Dynarmic::A32 { 9 arm_DMB(Imm<4> option)10bool ArmTranslatorVisitor::arm_DMB([[maybe_unused]] Imm<4> option) { 11 ir.DataMemoryBarrier(); 12 return true; 13 } 14 arm_DSB(Imm<4> option)15bool ArmTranslatorVisitor::arm_DSB([[maybe_unused]] Imm<4> option) { 16 ir.DataSynchronizationBarrier(); 17 return true; 18 } 19 arm_ISB(Imm<4> option)20bool ArmTranslatorVisitor::arm_ISB([[maybe_unused]] Imm<4> option) { 21 ir.InstructionSynchronizationBarrier(); 22 ir.BranchWritePC(ir.Imm32(ir.current_location.PC() + 4)); 23 ir.SetTerm(IR::Term::ReturnToDispatch{}); 24 return false; 25 } 26 27 } // namespace Dynarmic::A32 28