Implement Thumb (32-bit) memory (ordered), multiply, extension and bitfield instructions (#3687)

* Implement Thumb (32-bit) memory (ordered), multiply and bitfield instructions

* Remove public from interface

* Fix T32 BL immediate and implement signed and unsigned extend instructions
This commit is contained in:
gdkchan 2022-09-10 22:51:00 -03:00 committed by GitHub
parent c5f1d1749a
commit f468db7602
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 221 additions and 50 deletions

View file

@ -0,0 +1,22 @@
namespace ARMeilleure.Decoders
{
class OpCodeT32AluBf : OpCodeT32, IOpCode32AluBf
{
public int Rd { get; }
public int Rn { get; }
public int Msb { get; }
public int Lsb { get; }
public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeT32AluBf(inst, address, opCode);
public OpCodeT32AluBf(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
{
Rd = (opCode >> 8) & 0xf;
Rn = (opCode >> 16) & 0xf;
Msb = (opCode >> 0) & 0x1f;
Lsb = ((opCode >> 6) & 0x3) | ((opCode >> 10) & 0x1c);
}
}
}