diff --git a/ARMeilleure/Decoders/IOpCode32Alu.cs b/ARMeilleure/Decoders/IOpCode32Alu.cs index 9876f107b..69fee164c 100644 --- a/ARMeilleure/Decoders/IOpCode32Alu.cs +++ b/ARMeilleure/Decoders/IOpCode32Alu.cs @@ -1,10 +1,8 @@ namespace ARMeilleure.Decoders { - interface IOpCode32Alu : IOpCode32 + interface IOpCode32Alu : IOpCode32, IOpCode32HasSetFlags { int Rd { get; } int Rn { get; } - - bool? SetFlags { get; } } } \ No newline at end of file diff --git a/ARMeilleure/Decoders/IOpCode32HasSetFlags.cs b/ARMeilleure/Decoders/IOpCode32HasSetFlags.cs new file mode 100644 index 000000000..71ca6d19c --- /dev/null +++ b/ARMeilleure/Decoders/IOpCode32HasSetFlags.cs @@ -0,0 +1,7 @@ +namespace ARMeilleure.Decoders +{ + interface IOpCode32HasSetFlags + { + bool? SetFlags { get; } + } +} \ No newline at end of file diff --git a/ARMeilleure/Decoders/OpCode32AluUmull.cs b/ARMeilleure/Decoders/OpCode32AluUmull.cs index bbdaaeae3..1b31239be 100644 --- a/ARMeilleure/Decoders/OpCode32AluUmull.cs +++ b/ARMeilleure/Decoders/OpCode32AluUmull.cs @@ -1,6 +1,6 @@ namespace ARMeilleure.Decoders { - class OpCode32AluUmull : OpCode32 + class OpCode32AluUmull : OpCode32, IOpCode32HasSetFlags { public int RdLo { get; } public int RdHi { get; } diff --git a/ARMeilleure/Instructions/InstEmitAluHelper.cs b/ARMeilleure/Instructions/InstEmitAluHelper.cs index fe5557677..8bf53ed41 100644 --- a/ARMeilleure/Instructions/InstEmitAluHelper.cs +++ b/ARMeilleure/Instructions/InstEmitAluHelper.cs @@ -14,7 +14,7 @@ namespace ARMeilleure.Instructions { public static bool ShouldSetFlags(ArmEmitterContext context) { - IOpCode32Alu op = (IOpCode32Alu)context.CurrOp; + IOpCode32HasSetFlags op = (IOpCode32HasSetFlags)context.CurrOp; if (op.SetFlags == null) {