Remove legacy 64-bit intrinsic APIs
[platform/upstream/coreclr.git] / src / System.Private.CoreLib / shared / System / Runtime / Intrinsics / X86 / Lzcnt.PlatformNotSupported.cs
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 using System;
6
7 namespace System.Runtime.Intrinsics.X86
8 {
9     /// <summary>
10     /// This class provides access to Intel LZCNT hardware instructions via intrinsics
11     /// </summary>
12     [CLSCompliant(false)]
13     public abstract class Lzcnt
14     {
15         internal Lzcnt() { }
16
17         public static bool IsSupported { get { return false; } }
18
19         public abstract class X64
20         {
21             internal X64() { }
22
23             public static bool IsSupported { get { return false; } }
24
25             /// <summary>
26             /// unsigned __int64 _lzcnt_u64 (unsigned __int64 a)
27             ///   LZCNT reg, reg/m64
28             /// This intrinisc is only available on 64-bit processes
29             /// </summary>
30             public static ulong LeadingZeroCount(ulong value) { throw new PlatformNotSupportedException(); }
31         }
32
33         /// <summary>
34         /// unsigned int _lzcnt_u32 (unsigned int a)
35         ///   LZCNT reg, reg/m32
36         /// </summary>
37         public static uint LeadingZeroCount(uint value) { throw new PlatformNotSupportedException(); }
38     }
39 }