|
|
@@ -135,7 +135,7 @@ namespace ARMeilleure.CodeGen.X86
|
|
|
|
|
|
private static void HandleConstantRegCopy(IntrusiveList<Node> nodes, Node node, Operation operation)
|
|
|
{
|
|
|
- if (operation.SourcesCount == 0 || IsIntrinsic(operation.Instruction))
|
|
|
+ if (operation.SourcesCount == 0 || IsXmmIntrinsic(operation))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
@@ -1400,5 +1400,18 @@ namespace ARMeilleure.CodeGen.X86
|
|
|
{
|
|
|
return inst == Instruction.Extended;
|
|
|
}
|
|
|
+
|
|
|
+ private static bool IsXmmIntrinsic(Operation operation)
|
|
|
+ {
|
|
|
+ if (operation.Instruction != Instruction.Extended)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ IntrinsicOperation intrinOp = (IntrinsicOperation)operation;
|
|
|
+ IntrinsicInfo info = IntrinsicTable.GetInfo(intrinOp.Intrinsic);
|
|
|
+
|
|
|
+ return info.Type != IntrinsicType.Crc32;
|
|
|
+ }
|
|
|
}
|
|
|
}
|