| 12345678910111213141516171819202122232425262728 |
- namespace ARMeilleure.Decoders
- {
- class OpCodeSimdMemImm : OpCodeMemImm, IOpCodeSimd
- {
- public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeSimdMemImm(inst, address, opCode);
- public OpCodeSimdMemImm(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
- {
- Size |= (opCode >> 21) & 4;
- if (Size > 4)
- {
- Instruction = InstDescriptor.Undefined;
- return;
- }
- // Base class already shifts the immediate, we only
- // need to shift it if size (scale) is 4, since this value is only set here.
- if (!WBack && !Unscaled && Size == 4)
- {
- Immediate <<= 4;
- }
- Extend64 = false;
- }
- }
- }
|