diff options
| author | LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> | 2019-07-08 16:55:37 +0200 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2019-07-08 11:55:37 -0300 |
| commit | e5b88de22a6f228d83e741cf9bcff144b3eff25a (patch) | |
| tree | d2bf5e065ceab3209237fecfd09f1adf7600f349 /ChocolArm64/Instructions/InstEmitSimdHelper.cs | |
| parent | 708620252e837f2111213c6e36d5f8cc8cfd03e8 (diff) | |
Add Saddlv_V Inst. Improve Cnt_V, Dup_Gp & Ins_Gp Tests. Tuneup Cls_V & Clz_V Tests. (#720)
* Update PackageReferences.
* Improve Cnt_V Test. Tuneup Cls_V & Clz_V Tests.
Nit.
* Nit.
* Improve Dup_Gp & Ins_Gp Tests.
* Update for Saddlv_V Inst.
* Update for Saddlv_V Inst.
* Update for Saddlv_V Inst.
Diffstat (limited to 'ChocolArm64/Instructions/InstEmitSimdHelper.cs')
| -rw-r--r-- | ChocolArm64/Instructions/InstEmitSimdHelper.cs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/ChocolArm64/Instructions/InstEmitSimdHelper.cs b/ChocolArm64/Instructions/InstEmitSimdHelper.cs index 573b8040..c8c8df74 100644 --- a/ChocolArm64/Instructions/InstEmitSimdHelper.cs +++ b/ChocolArm64/Instructions/InstEmitSimdHelper.cs @@ -823,15 +823,29 @@ namespace ChocolArm64.Instructions public static void EmitVectorAcrossVectorOpSx(ILEmitterCtx context, Action emit) { - EmitVectorAcrossVectorOp(context, emit, true); + EmitVectorAcrossVectorOp(context, emit, signed: true, isLong: false); } public static void EmitVectorAcrossVectorOpZx(ILEmitterCtx context, Action emit) { - EmitVectorAcrossVectorOp(context, emit, false); + EmitVectorAcrossVectorOp(context, emit, signed: false, isLong: false); } - public static void EmitVectorAcrossVectorOp(ILEmitterCtx context, Action emit, bool signed) + public static void EmitVectorLongAcrossVectorOpSx(ILEmitterCtx context, Action emit) + { + EmitVectorAcrossVectorOp(context, emit, signed: true, isLong: true); + } + + public static void EmitVectorLongAcrossVectorOpZx(ILEmitterCtx context, Action emit) + { + EmitVectorAcrossVectorOp(context, emit, signed: false, isLong: true); + } + + public static void EmitVectorAcrossVectorOp( + ILEmitterCtx context, + Action emit, + bool signed, + bool isLong) { OpCodeSimd64 op = (OpCodeSimd64)context.CurrOp; @@ -847,7 +861,7 @@ namespace ChocolArm64.Instructions emit(); } - EmitScalarSet(context, op.Rd, op.Size); + EmitScalarSet(context, op.Rd, isLong ? op.Size + 1 : op.Size); } public static void EmitVectorPairwiseOpF(ILEmitterCtx context, Action emit) |
