123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using System;
-
- namespace Unity.Burst.Intrinsics
- {
- /// <summary>
- /// Static methods and properties for X86 instruction intrinsics.
- /// </summary>
- public unsafe static partial class X86
- {
- private static v128 GenericCSharpLoad(void* ptr)
- {
- return *(v128*)ptr;
- }
-
- private static void GenericCSharpStore(void* ptr, v128 val)
- {
- *(v128*)ptr = val;
- }
-
- private static sbyte Saturate_To_Int8(int val)
- {
- if (val > sbyte.MaxValue)
- return sbyte.MaxValue;
- else if (val < sbyte.MinValue)
- return sbyte.MinValue;
- return (sbyte)val;
- }
-
- private static byte Saturate_To_UnsignedInt8(int val)
- {
- if (val > byte.MaxValue)
- return byte.MaxValue;
- else if (val < byte.MinValue)
- return byte.MinValue;
- return (byte)val;
- }
-
- private static short Saturate_To_Int16(int val)
- {
- if (val > short.MaxValue)
- return short.MaxValue;
- else if (val < short.MinValue)
- return short.MinValue;
- return (short)val;
- }
-
- private static ushort Saturate_To_UnsignedInt16(int val)
- {
- if (val > ushort.MaxValue)
- return ushort.MaxValue;
- else if (val < ushort.MinValue)
- return ushort.MinValue;
- return (ushort)val;
- }
-
- private static bool IsNaN(uint v)
- {
- return (v & 0x7fffffffu) > 0x7f800000;
- }
-
- private static bool IsNaN(ulong v)
- {
- return (v & 0x7ffffffffffffffful) > 0x7ff0000000000000ul;
- }
- }
- }
|