| 123456789101112131415161718192021222324252627 |
- namespace ARMeilleure.Decoders
- {
- class OpCode32BImm : OpCode32, IOpCode32BImm
- {
- public long Immediate { get; private set; }
- public OpCode32BImm(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
- {
- uint pc = GetPc();
- // When the condition is never, the instruction is BLX to Thumb mode.
- if (Cond != Condition.Nv)
- {
- pc &= ~3u;
- }
- Immediate = pc + DecoderHelper.DecodeImm24_2(opCode);
- if (Cond == Condition.Nv)
- {
- long H = (opCode >> 23) & 2;
- Immediate |= H;
- }
- }
- }
- }
|