diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-08-25 06:59:34 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-25 09:59:34 +0000 |
commit | eba682b767a60db51ff624ae48a3ca0124634705 (patch) | |
tree | 7b78dff774d67a41bb51bd42f661b7556a5d6b40 /ARMeilleure/Instructions | |
parent | b994dafe7aa8c49fe8de69b7b81401aaeeed8c59 (diff) |
Implement some 32-bit Thumb instructions (#3614)1.1.229
* Implement some 32-bit Thumb instructions
* Optimize OpCode32MemMult using PopCount
Diffstat (limited to 'ARMeilleure/Instructions')
-rw-r--r-- | ARMeilleure/Instructions/InstEmitFlow32.cs | 2 | ||||
-rw-r--r-- | ARMeilleure/Instructions/InstEmitMemoryHelper.cs | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/ARMeilleure/Instructions/InstEmitFlow32.cs b/ARMeilleure/Instructions/InstEmitFlow32.cs index 064aeb36..030713fb 100644 --- a/ARMeilleure/Instructions/InstEmitFlow32.cs +++ b/ARMeilleure/Instructions/InstEmitFlow32.cs @@ -88,7 +88,7 @@ namespace ARMeilleure.Instructions { OpCodeT16BImmCmp op = (OpCodeT16BImmCmp)context.CurrOp; - Operand value = GetIntOrZR(context, op.Rn); + Operand value = GetIntA32(context, op.Rn); Operand lblTarget = context.GetLabel((ulong)op.Immediate); if (onNotZero) diff --git a/ARMeilleure/Instructions/InstEmitMemoryHelper.cs b/ARMeilleure/Instructions/InstEmitMemoryHelper.cs index ecb644a2..2877d53e 100644 --- a/ARMeilleure/Instructions/InstEmitMemoryHelper.cs +++ b/ARMeilleure/Instructions/InstEmitMemoryHelper.cs @@ -547,7 +547,7 @@ namespace ARMeilleure.Instructions { switch (context.CurrOp) { - case OpCode32MemRsImm op: return GetMShiftedByImmediate(context, op, setCarry); + case IOpCode32MemRsImm op: return GetMShiftedByImmediate(context, op, setCarry); case IOpCode32MemReg op: return GetIntA32(context, op.Rm); @@ -564,7 +564,7 @@ namespace ARMeilleure.Instructions return new InvalidOperationException($"Invalid OpCode type \"{opCode?.GetType().Name ?? "null"}\"."); } - public static Operand GetMShiftedByImmediate(ArmEmitterContext context, OpCode32MemRsImm op, bool setCarry) + public static Operand GetMShiftedByImmediate(ArmEmitterContext context, IOpCode32MemRsImm op, bool setCarry) { Operand m = GetIntA32(context, op.Rm); |