diff options
Diffstat (limited to 'ChocolArm64/Decoders/OpCodeSimdRegElem64.cs')
| -rw-r--r-- | ChocolArm64/Decoders/OpCodeSimdRegElem64.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/ChocolArm64/Decoders/OpCodeSimdRegElem64.cs b/ChocolArm64/Decoders/OpCodeSimdRegElem64.cs new file mode 100644 index 00000000..04e95861 --- /dev/null +++ b/ChocolArm64/Decoders/OpCodeSimdRegElem64.cs @@ -0,0 +1,31 @@ +using ChocolArm64.Instructions; + +namespace ChocolArm64.Decoders +{ + class OpCodeSimdRegElem64 : OpCodeSimdReg64 + { + public int Index { get; private set; } + + public OpCodeSimdRegElem64(Inst inst, long position, int opCode) : base(inst, position, opCode) + { + switch (Size) + { + case 1: + Index = (opCode >> 20) & 3 | + (opCode >> 9) & 4; + + Rm &= 0xf; + + break; + + case 2: + Index = (opCode >> 21) & 1 | + (opCode >> 10) & 2; + + break; + + default: Emitter = InstEmit.Und; return; + } + } + } +}
\ No newline at end of file |
