aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Instructions/InstEmitSimdHelper.cs
diff options
context:
space:
mode:
authorFICTURE7 <FICTURE7@gmail.com>2021-05-20 16:09:17 +0400
committerGitHub <noreply@github.com>2021-05-20 09:09:17 -0300
commit0181068016bc9ca98ee71f1d7b6ab6010c4302f0 (patch)
tree89f7e20bc6db8c5cd1e0fdfbde1093ccbd5f2f47 /ARMeilleure/Instructions/InstEmitSimdHelper.cs
parent49745cfa37b247c3e49bfae126bafbe41e166bc6 (diff)
Add `BIC/ORR Vd.T, #imm` fast path (#2279)
* Add fast path for BIC Vd.T, #imm * Add fast path for ORR Vd.T, #imm * Set PTC version * Fixup Exception to InvalidOperationException
Diffstat (limited to 'ARMeilleure/Instructions/InstEmitSimdHelper.cs')
-rw-r--r--ARMeilleure/Instructions/InstEmitSimdHelper.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/ARMeilleure/Instructions/InstEmitSimdHelper.cs b/ARMeilleure/Instructions/InstEmitSimdHelper.cs
index 576f4229..36602f25 100644
--- a/ARMeilleure/Instructions/InstEmitSimdHelper.cs
+++ b/ARMeilleure/Instructions/InstEmitSimdHelper.cs
@@ -190,6 +190,15 @@ namespace ARMeilleure.Instructions
return X86GetAllElements(context, BitConverter.DoubleToInt64Bits(value));
}
+ public static Operand X86GetAllElements(ArmEmitterContext context, short value)
+ {
+ ulong value1 = (ushort)value;
+ ulong value2 = value1 << 16 | value1;
+ ulong value4 = value2 << 32 | value2;
+
+ return X86GetAllElements(context, (long)value4);
+ }
+
public static Operand X86GetAllElements(ArmEmitterContext context, int value)
{
Operand vector = context.VectorCreateScalar(Const(value));