xref: /isa-l_crypto/include/intrinreg.h (revision 1de5344d2e55af6b245565bde0dec2868130cf14)
16df3ef80SGreg Tucker /**********************************************************************
26df3ef80SGreg Tucker   Copyright(c) 2011-2016 Intel Corporation All rights reserved.
36df3ef80SGreg Tucker 
46df3ef80SGreg Tucker   Redistribution and use in source and binary forms, with or without
56df3ef80SGreg Tucker   modification, are permitted provided that the following conditions
66df3ef80SGreg Tucker   are met:
76df3ef80SGreg Tucker     * Redistributions of source code must retain the above copyright
86df3ef80SGreg Tucker       notice, this list of conditions and the following disclaimer.
96df3ef80SGreg Tucker     * Redistributions in binary form must reproduce the above copyright
106df3ef80SGreg Tucker       notice, this list of conditions and the following disclaimer in
116df3ef80SGreg Tucker       the documentation and/or other materials provided with the
126df3ef80SGreg Tucker       distribution.
136df3ef80SGreg Tucker     * Neither the name of Intel Corporation nor the names of its
146df3ef80SGreg Tucker       contributors may be used to endorse or promote products derived
156df3ef80SGreg Tucker       from this software without specific prior written permission.
166df3ef80SGreg Tucker 
176df3ef80SGreg Tucker   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
186df3ef80SGreg Tucker   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
196df3ef80SGreg Tucker   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
206df3ef80SGreg Tucker   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
216df3ef80SGreg Tucker   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
226df3ef80SGreg Tucker   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
236df3ef80SGreg Tucker   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
246df3ef80SGreg Tucker   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
256df3ef80SGreg Tucker   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
266df3ef80SGreg Tucker   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
276df3ef80SGreg Tucker   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
286df3ef80SGreg Tucker **********************************************************************/
296df3ef80SGreg Tucker 
306df3ef80SGreg Tucker /**
316df3ef80SGreg Tucker  *  @file  intrinreg.h
326df3ef80SGreg Tucker  *  @brief Defines intrinsic types used by the new hashing API
336df3ef80SGreg Tucker  *
346df3ef80SGreg Tucker  */
356df3ef80SGreg Tucker 
366df3ef80SGreg Tucker #ifndef _IA64_REGS_H_
376df3ef80SGreg Tucker #define _IA64_REGS_H_
386df3ef80SGreg Tucker 
396df3ef80SGreg Tucker #ifdef __cplusplus
406df3ef80SGreg Tucker extern "C" {
416df3ef80SGreg Tucker #endif
426df3ef80SGreg Tucker 
436df3ef80SGreg Tucker #ifdef _MSC_VER
446df3ef80SGreg Tucker #define inline __inline
456df3ef80SGreg Tucker #endif
466df3ef80SGreg Tucker 
476df3ef80SGreg Tucker #include <stdint.h>
486df3ef80SGreg Tucker #include <immintrin.h>
496df3ef80SGreg Tucker 
506df3ef80SGreg Tucker // Define available register types uniformly.
516df3ef80SGreg Tucker /// @cond
52*1de5344dSMarcel Cornu typedef struct {
53*1de5344dSMarcel Cornu         uint8_t dummy;
54*1de5344dSMarcel Cornu } intrinreg1;
55*1de5344dSMarcel Cornu typedef struct {
56*1de5344dSMarcel Cornu         uint16_t dummy;
57*1de5344dSMarcel Cornu } intrinreg2;
58*1de5344dSMarcel Cornu typedef struct {
59*1de5344dSMarcel Cornu         uint32_t dummy;
60*1de5344dSMarcel Cornu } intrinreg4;
61*1de5344dSMarcel Cornu typedef struct {
62*1de5344dSMarcel Cornu         uint64_t dummy;
63*1de5344dSMarcel Cornu } intrinreg8;
646df3ef80SGreg Tucker typedef __m128 intrinreg16;
656df3ef80SGreg Tucker /// @endcond
666df3ef80SGreg Tucker 
676df3ef80SGreg Tucker #ifdef __cplusplus
686df3ef80SGreg Tucker }
696df3ef80SGreg Tucker #endif
706df3ef80SGreg Tucker 
716df3ef80SGreg Tucker #endif // _IA64_REGS_H_
72