Add FVCTZS (fixed point variant) and LD1 (single structure variant) instructions

This commit is contained in:
gdkchan 2018-02-09 00:26:20 -03:00
parent ebbccfcdbf
commit 6a3aa6cd88
9 changed files with 279 additions and 22 deletions

View file

@ -405,17 +405,17 @@ namespace ChocolArm64.Instruction
return Res;
}
public static AVec Fcvtzs_V64(AVec Vector, int Size)
public static AVec Fcvtzs_V64(AVec Vector, int FBits, int Size)
{
return Fcvtzs_V(Vector, Size, 2);
return Fcvtzs_V(Vector, FBits, Size, 2);
}
public static AVec Fcvtzs_V128(AVec Vector, int Size)
public static AVec Fcvtzs_V128(AVec Vector, int FBits, int Size)
{
return Fcvtzs_V(Vector, Size, 4);
return Fcvtzs_V(Vector, FBits, Size, 4);
}
private static AVec Fcvtzs_V(AVec Vector, int Size, int Bytes)
private static AVec Fcvtzs_V(AVec Vector, int FBits, int Size, int Bytes)
{
AVec Res = new AVec();
@ -427,7 +427,7 @@ namespace ChocolArm64.Instruction
{
float Value = Vector.ExtractSingle(Index);
Res = InsertSVec(Res, Index, Size + 2, SatSingleToInt32(Value));
Res = InsertSVec(Res, Index, Size + 2, SatSingleToInt32(Value, FBits));
}
}
else
@ -436,7 +436,7 @@ namespace ChocolArm64.Instruction
{
double Value = Vector.ExtractDouble(Index);
Res = InsertSVec(Res, Index, Size + 2, SatDoubleToInt64(Value));
Res = InsertSVec(Res, Index, Size + 2, SatDoubleToInt64(Value, FBits));
}
}