aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-05-23 00:27:48 -0300
committergdkchan <gab.dark.100@gmail.com>2018-05-23 00:27:48 -0300
commite78737089c7270458228aaa08a591cc9dd42936c (patch)
tree04906a504140622cfd5d7a9855e490ccb133dcd5 /ChocolArm64
parent79e007036383b11cd53c2563fbb7f139a02c90ec (diff)
Remove some calls generated on the CPU for inexistent intrinsic methods
Diffstat (limited to 'ChocolArm64')
-rw-r--r--ChocolArm64/Instruction/AInstEmitSimdCmp.cs13
1 files changed, 3 insertions, 10 deletions
diff --git a/ChocolArm64/Instruction/AInstEmitSimdCmp.cs b/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
index 583ad702..8a8376b2 100644
--- a/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
+++ b/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
@@ -14,7 +14,7 @@ namespace ChocolArm64.Instruction
{
public static void Cmeq_V(AILEmitterCtx Context)
{
- if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
+ if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg Op && Op.Size < 3)
{
EmitSse2Call(Context, nameof(Sse2.CompareEqual));
}
@@ -26,19 +26,12 @@ namespace ChocolArm64.Instruction
public static void Cmge_V(AILEmitterCtx Context)
{
- if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
- {
- EmitSse2Call(Context, nameof(Sse2.CompareGreaterThanOrEqual));
- }
- else
- {
- EmitVectorCmp(Context, OpCodes.Bge_S);
- }
+ EmitVectorCmp(Context, OpCodes.Bge_S);
}
public static void Cmgt_V(AILEmitterCtx Context)
{
- if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
+ if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg Op && Op.Size < 3)
{
EmitSse2Call(Context, nameof(Sse2.CompareGreaterThan));
}