aboutsummaryrefslogtreecommitdiff
path: root/ext/ipp/sources/include/asmdefs.inc
blob: 0dac3d2279aa692923e4f304ca2f7fe242e56c74 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
;===============================================================================
; Copyright 2015-2018 Intel Corporation
; All Rights Reserved.
;
; If this  software was obtained  under the  Intel Simplified  Software License,
; the following terms apply:
;
; The source code,  information  and material  ("Material") contained  herein is
; owned by Intel Corporation or its  suppliers or licensors,  and  title to such
; Material remains with Intel  Corporation or its  suppliers or  licensors.  The
; Material  contains  proprietary  information  of  Intel or  its suppliers  and
; licensors.  The Material is protected by  worldwide copyright  laws and treaty
; provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
; modified, published,  uploaded, posted, transmitted,  distributed or disclosed
; in any way without Intel's prior express written permission.  No license under
; any patent,  copyright or other  intellectual property rights  in the Material
; is granted to  or  conferred  upon  you,  either   expressly,  by implication,
; inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
; property rights must be express and approved by Intel in writing.
;
; Unless otherwise agreed by Intel in writing,  you may not remove or alter this
; notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
; suppliers or licensors in any way.
;
;
; If this  software  was obtained  under the  Apache License,  Version  2.0 (the
; "License"), the following terms apply:
;
; You may  not use this  file except  in compliance  with  the License.  You may
; obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
;
;
; Unless  required  by   applicable  law  or  agreed  to  in  writing,  software
; distributed under the License  is distributed  on an  "AS IS"  BASIS,  WITHOUT
; WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;
; See the   License  for the   specific  language   governing   permissions  and
; limitations under the License.
;===============================================================================

IFNDEF __ASMDEFS_INC__
  __ASMDEFS_INC__=1

_IPP_PX=0    ; pure C-code ia32
_IPP_M5=1    ; Intel(R) Quark(TM) processor - ia32
_IPP_W7=8    ; Intel(R) Streaming SIMD Extensions 2 - ia32
_IPP_T7=16   ; Intel(R) Streaming SIMD Extensions 3 - ia32
_IPP_V8=32   ; Supplemental Streaming SIMD Extensions 3 (SSSE3)
_IPP_S8=33   ; SSSE3 + MOVBE instruction - ia32
_IPP_P8=64   ; Intel(R) Streaming SIMD Extensions 4.2 - ia32
_IPP_G9=128  ; Intel(R) Advanced Vector Extensions - ia32
_IPP_H9=256  ; Intel(R) Advanced Vector Extensions 2 - ia32
_IPP_I0=512  ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon Phi(TM) processor (formerly Knight Landing) - ia32
_IPP_S0=1024 ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon(R) processor (formerly Skylake) - ia32

_IPP32E_PX=_IPP_PX ; pure C-code x64
_IPP32E_M7=32   ; Intel(R) Streaming SIMD Extensions 3 - intel64
_IPP32E_U8=64   ; Supplemental Streaming SIMD Extensions 3 (SSSE3) - intel64
_IPP32E_N8=65   ; SSSE3 + MOVBE instruction - intel64
_IPP32E_Y8=128  ; Intel(R) Streaming SIMD Extensions 4.2 - intel64
_IPP32E_E9=256  ; Intel(R) Advanced Vector Extensions - intel64
_IPP32E_L9=512  ; Intel(R) Advanced Vector Extensions 2 - intel64
_IPP32E_N0=1024 ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon Phi(TM) processor (formerly Knight Landing) - intel64
_IPP32E_K0=2048 ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon(R) processor (formerly Skylake) - intel64

_IPP=_IPP_PX
_IPP32E=_IPP32E_PX


IFDEF _M5 ; Intel(R) Quark(TM) processor - ia32
    _IPP=_IPP_M5
ELSEIFDEF _W7 ; Intel(R) Streaming SIMD Extensions 2 - ia32
    _IPP=_IPP_W7
ELSEIFDEF _T7 ; Intel(R) Streaming SIMD Extensions 3 - ia32
    _IPP=_IPP_T7
ELSEIFDEF _V8 ; Supplemental Streaming SIMD Extensions 3 (SSSE3)
    _IPP=_IPP_V8
ELSEIFDEF _S8 ; SSSE3 + MOVBE instruction - ia32
    _IPP=_IPP_S8
ELSEIFDEF _P8 ; Intel(R) Streaming SIMD Extensions 4.2 - ia32
    _IPP=_IPP_P8
ELSEIFDEF _G9 ; Intel(R) Advanced Vector Extensions - ia32
     IPP_ALIGN_FACTOR EQU 32
    _IPP=_IPP_G9
ELSEIFDEF _H9 ; Intel(R) Advanced Vector Extensions 2 - ia32
     IPP_ALIGN_FACTOR EQU 32
    _IPP=_IPP_H9
ELSEIFDEF _S0 ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon(R) processor (formerly Skylake) - ia32
     IPP_ALIGN_FACTOR EQU 64
    _IPP=_IPP_S0
ELSEIFDEF _M7 ; Intel(R) Streaming SIMD Extensions 3 - intel64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_M7
ELSEIFDEF _U8 ; Supplemental Streaming SIMD Extensions 3 (SSSE3) - intel64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_U8
ELSEIFDEF _N8 ; SSSE3 + MOVBE instruction - intel64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_N8
ELSEIFDEF _Y8 ; Intel(R) Streaming SIMD Extensions 4.2 - intel64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_Y8
ELSEIFDEF _E9 ; Intel(R) Advanced Vector Extensions - intel64
     IPP_ALIGN_FACTOR EQU 32
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_E9
ELSEIFDEF _L9 ; Intel(R) Advanced Vector Extensions 2 - intel64
     IPP_ALIGN_FACTOR EQU 32
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_L9
ELSEIFDEF _N0 ; Intel(R) Advanced Vector Extensions 512 (formerly Knights Landing) - intel64
     IPP_ALIGN_FACTOR EQU 64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_N0
ELSEIFDEF _K0 ; Intel(R) Advanced Vector Extensions 512 - Intel(R) Xeon(R) processor (formerly Skylake) - intel64
     IPP_ALIGN_FACTOR EQU 64
    _IPP=_IPP_PX
    _IPP32E=_IPP32E_K0
ELSE
    _IPP=_IPP_PX ; pure C-code
ENDIF

IF (_IPP GT _IPP_H9)OR(_IPP32E GT _IPP32E_L9)
     IPP_ALIGN_FACTOR EQU 64
ELSEIF (_IPP GT _IPP_P8)OR(_IPP32E GT _IPP32E_Y8)
     IPP_ALIGN_FACTOR EQU 32
ELSE
     IPP_ALIGN_FACTOR EQU 16
ENDIF

IFDEF LINUX32
  IFNDEF OSX32
%ECHO .section .note.GNU-stack,"",%progbits
  ENDIF
ENDIF 

IFDEF LINUX32E
  IFNDEF OSXEM64T
    IFNDEF _ARCH_KNC
%ECHO .section .note.GNU-stack,"",%progbits
    ENDIF
  ENDIF
ENDIF 

ENDIF ; IFNDEF __ASMDEFS_INC__

;;;;;;;;;;;;;;;;;;;;;;;;;; End of file "asmdefs.inc" ;;;;;;;;;;;;;;;;;;;;;;;;;;