34 lines
810 B
C#
34 lines
810 B
C#
|
using ChocolArm64.Instructions;
|
||
|
|
||
|
namespace ChocolArm64.Decoders
|
||
|
{
|
||
|
class OpCodeSimdRegElemF64 : OpCodeSimdReg64
|
||
|
{
|
||
|
public int Index { get; private set; }
|
||
|
|
||
|
public OpCodeSimdRegElemF64(Inst inst, long position, int opCode) : base(inst, position, opCode)
|
||
|
{
|
||
|
switch ((opCode >> 21) & 3) // sz:L
|
||
|
{
|
||
|
case 0: // H:0
|
||
|
Index = (opCode >> 10) & 2; // 0, 2
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 1: // H:1
|
||
|
Index = (opCode >> 10) & 2;
|
||
|
Index++; // 1, 3
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 2: // H
|
||
|
Index = (opCode >> 11) & 1; // 0, 1
|
||
|
|
||
|
break;
|
||
|
|
||
|
default: Emitter = InstEmit.Und; return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|