aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Instruction/AInstEmitSimdShift.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-03-09 23:28:38 -0300
committergdkchan <gab.dark.100@gmail.com>2018-03-09 23:28:38 -0300
commitaa2d2b3149536792bf49a9d5695778efea64c53a (patch)
treefa9347f999eca864aca8243f4f6b94dc3b8b2f12 /ChocolArm64/Instruction/AInstEmitSimdShift.cs
parent5912bd2beb42e1853fdcf11e4bb87e063a0ef35b (diff)
Add SHLL instruction
Diffstat (limited to 'ChocolArm64/Instruction/AInstEmitSimdShift.cs')
-rw-r--r--ChocolArm64/Instruction/AInstEmitSimdShift.cs15
1 files changed, 12 insertions, 3 deletions
diff --git a/ChocolArm64/Instruction/AInstEmitSimdShift.cs b/ChocolArm64/Instruction/AInstEmitSimdShift.cs
index 8740ba4d..01ed3a28 100644
--- a/ChocolArm64/Instruction/AInstEmitSimdShift.cs
+++ b/ChocolArm64/Instruction/AInstEmitSimdShift.cs
@@ -32,6 +32,15 @@ namespace ChocolArm64.Instruction
EmitVectorShImmBinaryZx(Context, () => Context.Emit(OpCodes.Shl), Shift);
}
+ public static void Shll_V(AILEmitterCtx Context)
+ {
+ AOpCodeSimd Op = (AOpCodeSimd)Context.CurrOp;
+
+ int Shift = 8 << Op.Size;
+
+ EmitVectorShImmWidenBinaryZx(Context, () => Context.Emit(OpCodes.Shl), Shift);
+ }
+
public static void Shrn_V(AILEmitterCtx Context)
{
AOpCodeSimdShImm Op = (AOpCodeSimdShImm)Context.CurrOp;
@@ -205,7 +214,7 @@ namespace ChocolArm64.Instruction
private static void EmitVectorShImmBinaryOp(AILEmitterCtx Context, Action Emit, int Imm, bool Signed)
{
- AOpCodeSimdShImm Op = (AOpCodeSimdShImm)Context.CurrOp;
+ AOpCodeSimd Op = (AOpCodeSimd)Context.CurrOp;
int Bytes = Context.CurrOp.GetBitsCount() >> 3;
@@ -238,7 +247,7 @@ namespace ChocolArm64.Instruction
private static void EmitVectorShImmNarrowBinaryOp(AILEmitterCtx Context, Action Emit, int Imm, bool Signed)
{
- AOpCodeSimdShImm Op = (AOpCodeSimdShImm)Context.CurrOp;
+ AOpCodeSimd Op = (AOpCodeSimd)Context.CurrOp;
int Elems = 8 >> Op.Size;
@@ -273,7 +282,7 @@ namespace ChocolArm64.Instruction
private static void EmitVectorShImmWidenBinaryOp(AILEmitterCtx Context, Action Emit, int Imm, bool Signed)
{
- AOpCodeSimdShImm Op = (AOpCodeSimdShImm)Context.CurrOp;
+ AOpCodeSimd Op = (AOpCodeSimd)Context.CurrOp;
int Elems = 8 >> Op.Size;