Fix for some SIMD issues

This commit is contained in:
gdkchan 2018-02-18 01:57:33 -03:00
parent f469b968a8
commit 1c44d9f66d
13 changed files with 124 additions and 36 deletions

View file

@ -26,7 +26,7 @@ namespace ChocolArm64.Translation
{
if (ILEmitter is AILOpCodeLoad Ld && AILEmitter.IsRegIndex(Ld.Index))
{
switch (Ld.IoType & AIoType.Mask)
switch (Ld.IoType)
{
case AIoType.Flag: IntInputs |= ((1L << Ld.Index) << 32) & ~IntOutputs; break;
case AIoType.Int: IntInputs |= (1L << Ld.Index) & ~IntOutputs; break;
@ -37,7 +37,7 @@ namespace ChocolArm64.Translation
{
if (AILEmitter.IsRegIndex(St.Index))
{
switch (St.IoType & AIoType.Mask)
switch (St.IoType)
{
case AIoType.Flag: IntOutputs |= (1L << St.Index) << 32; break;
case AIoType.Int: IntOutputs |= 1L << St.Index; break;

View file

@ -22,7 +22,7 @@ namespace ChocolArm64.Translation
public void Emit(AILEmitter Context)
{
switch (IoType & AIoType.Mask)
switch (IoType)
{
case AIoType.Arg: Context.Generator.EmitLdarg(Index); break;

View file

@ -22,7 +22,7 @@ namespace ChocolArm64.Translation
public void Emit(AILEmitter Context)
{
switch (IoType & AIoType.Mask)
switch (IoType)
{
case AIoType.Arg: Context.Generator.EmitStarg(Index); break;

View file

@ -10,9 +10,6 @@ namespace ChocolArm64.Translation
Flag,
Int,
Float,
Vector,
Mask = 0xff,
VectorI = Vector | 1 << 8,
VectorF = Vector | 1 << 9
Vector
}
}