Add ADD (zx imm12), NOP, MOV (rs), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions (#3683)
* Add ADD (zx imm12), NOP, MOV (register shifted), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions, fix LDRD, STRD, CBZ, CBNZ and BLX (reg)
* Bump PPTC version
2022-09-10 01:09:11 +00:00
|
|
|
namespace ARMeilleure.Decoders
|
|
|
|
{
|
2022-09-11 01:51:00 +00:00
|
|
|
class OpCodeT32MovImm16 : OpCodeT32Alu, IOpCode32AluImm16
|
Add ADD (zx imm12), NOP, MOV (rs), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions (#3683)
* Add ADD (zx imm12), NOP, MOV (register shifted), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions, fix LDRD, STRD, CBZ, CBNZ and BLX (reg)
* Bump PPTC version
2022-09-10 01:09:11 +00:00
|
|
|
{
|
|
|
|
public int Immediate { get; }
|
|
|
|
|
|
|
|
public bool IsRotated => false;
|
|
|
|
|
|
|
|
public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeT32MovImm16(inst, address, opCode);
|
|
|
|
|
|
|
|
public OpCodeT32MovImm16(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
|
|
|
|
{
|
|
|
|
Immediate = (opCode & 0xff) | ((opCode >> 4) & 0x700) | ((opCode >> 15) & 0x800) | ((opCode >> 4) & 0xf000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|