aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Decoders/Decoder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ARMeilleure/Decoders/Decoder.cs')
-rw-r--r--ARMeilleure/Decoders/Decoder.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/ARMeilleure/Decoders/Decoder.cs b/ARMeilleure/Decoders/Decoder.cs
index 4dd8742c..426465aa 100644
--- a/ARMeilleure/Decoders/Decoder.cs
+++ b/ARMeilleure/Decoders/Decoder.cs
@@ -251,6 +251,13 @@ namespace ARMeilleure.Decoders
return false;
}
+ // Compare and branch instructions are always conditional.
+ if (opCode.Instruction.Name == InstName.Cbz ||
+ opCode.Instruction.Name == InstName.Cbnz)
+ {
+ return false;
+ }
+
// Note: On ARM32, most instructions have conditional execution,
// so there's no "Always" (unconditional) branch like on ARM64.
// We need to check if the condition is "Always" instead.