-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathSimdInt64x2Operation.h
executable file
·26 lines (22 loc) · 1.31 KB
/
SimdInt64x2Operation.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#pragma once
namespace Js {
struct SIMDInt64x2Operation
{
static SIMDValue OpSplat(int64 x);
static SIMDValue OpAdd(const SIMDValue& a, const SIMDValue& b);
static SIMDValue OpSub(const SIMDValue& a, const SIMDValue& b);
static SIMDValue OpNeg(const SIMDValue& a);
//pointer-based arguments are used to ensure that calling conventions are consistent across x86/x64
//and match call sequences JIT generates.
//TODO: nikolayk back to "const SIMDValue& a"
template<typename T> static void OpTrunc(SIMDValue* dst, SIMDValue* src);
static void OpShiftLeftByScalar(SIMDValue* dst, SIMDValue* src, int count);
static void OpShiftRightByScalar(SIMDValue* dst, SIMDValue* src, int count);
static void OpShiftRightByScalarU(SIMDValue* dst, SIMDValue* src, int count);
static void OpReplaceLane(SIMDValue* dst, SIMDValue* src, int64 val, uint index);
};
} // namespace Js