From eba682b767a60db51ff624ae48a3ca0124634705 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Thu, 25 Aug 2022 06:59:34 -0300 Subject: Implement some 32-bit Thumb instructions (#3614) * Implement some 32-bit Thumb instructions * Optimize OpCode32MemMult using PopCount --- ARMeilleure/Decoders/OpCode32MemMult.cs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'ARMeilleure/Decoders/OpCode32MemMult.cs') diff --git a/ARMeilleure/Decoders/OpCode32MemMult.cs b/ARMeilleure/Decoders/OpCode32MemMult.cs index cc726196..522b96bb 100644 --- a/ARMeilleure/Decoders/OpCode32MemMult.cs +++ b/ARMeilleure/Decoders/OpCode32MemMult.cs @@ -1,3 +1,5 @@ +using System.Numerics; + namespace ARMeilleure.Decoders { class OpCode32MemMult : OpCode32, IOpCode32MemMult @@ -23,14 +25,7 @@ namespace ARMeilleure.Decoders RegisterMask = opCode & 0xffff; - int regsSize = 0; - - for (int index = 0; index < 16; index++) - { - regsSize += (RegisterMask >> index) & 1; - } - - regsSize *= 4; + int regsSize = BitOperations.PopCount((uint)RegisterMask) * 4; if (!u) { -- cgit v1.2.3