mirror of
https://github.com/azahar-emu/dynarmic
synced 2025-11-12 18:09:58 +01:00
34 lines
879 B
C++
34 lines
879 B
C++
/* This file is part of the dynarmic project.
|
|
* Copyright (c) 2020 MerryMage
|
|
* SPDX-License-Identifier: 0BSD
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "common/common_types.h"
|
|
|
|
namespace Dynarmic::IR {
|
|
enum class Cond;
|
|
} // namespace Dynarmic::IR
|
|
|
|
namespace Dynarmic::A32 {
|
|
|
|
class IREmitter;
|
|
struct TranslatorVisitor;
|
|
|
|
enum class ConditionalState {
|
|
/// We haven't met any conditional instructions yet.
|
|
None,
|
|
/// Current instruction is a conditional. This marks the end of this basic block.
|
|
Break,
|
|
/// This basic block is made up solely of conditional instructions.
|
|
Translating,
|
|
/// This basic block is made up of conditional instructions followed by unconditional instructions.
|
|
Trailing,
|
|
};
|
|
|
|
bool CondCanContinue(ConditionalState cond_state, const A32::IREmitter& ir);
|
|
bool IsConditionPassed(TranslatorVisitor& v, IR::Cond cond);
|
|
|
|
} // namespace Dynarmic::A32
|