OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #ifndef SkPreConfig_DEFINED | 10 #ifndef SkPreConfig_DEFINED |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 * SK_CPU_SSE_LEVEL | 116 * SK_CPU_SSE_LEVEL |
117 * | 117 * |
118 * If defined, SK_CPU_SSE_LEVEL should be set to the highest supported level. | 118 * If defined, SK_CPU_SSE_LEVEL should be set to the highest supported level. |
119 * On non-intel CPU this should be undefined. | 119 * On non-intel CPU this should be undefined. |
120 */ | 120 */ |
121 | 121 |
122 #define SK_CPU_SSE_LEVEL_SSE1 10 | 122 #define SK_CPU_SSE_LEVEL_SSE1 10 |
123 #define SK_CPU_SSE_LEVEL_SSE2 20 | 123 #define SK_CPU_SSE_LEVEL_SSE2 20 |
124 #define SK_CPU_SSE_LEVEL_SSE3 30 | 124 #define SK_CPU_SSE_LEVEL_SSE3 30 |
125 #define SK_CPU_SSE_LEVEL_SSSE3 31 | 125 #define SK_CPU_SSE_LEVEL_SSSE3 31 |
| 126 #define SK_CPU_SSE_LEVEL_SSE41 41 |
| 127 #define SK_CPU_SSE_LEVEL_SSE42 42 |
126 | 128 |
127 // Are we in GCC? | 129 // Are we in GCC? |
128 #ifndef SK_CPU_SSE_LEVEL | 130 #ifndef SK_CPU_SSE_LEVEL |
129 // These checks must be done in descending order to ensure we set the highes
t | 131 // These checks must be done in descending order to ensure we set the highes
t |
130 // available SSE level. | 132 // available SSE level. |
131 #if defined(__SSSE3__) | 133 #if defined(__SSE4_2__) |
| 134 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE42 |
| 135 #elif defined(__SSE4_1__) |
| 136 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE41 |
| 137 #elif defined(__SSSE3__) |
132 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3 | 138 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3 |
133 #elif defined(__SSE3__) | 139 #elif defined(__SSE3__) |
134 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3 | 140 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3 |
135 #elif defined(__SSE2__) | 141 #elif defined(__SSE2__) |
136 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 | 142 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 |
137 #endif | 143 #endif |
138 #endif | 144 #endif |
139 | 145 |
140 // Are we in VisualStudio? | 146 // Are we in VisualStudio? |
141 #ifndef SK_CPU_SSE_LEVEL | 147 #ifndef SK_CPU_SSE_LEVEL |
142 // These checks must be done in descending order to ensure we set the highes
t | 148 // These checks must be done in descending order to ensure we set the highes
t |
143 // available SSE level. | 149 // available SSE level. 64-bit intel guarantees at least SSE2 support. |
144 #if defined (_M_IX86_FP) | 150 #if defined(_M_X64) || defined(_M_AMD64) |
| 151 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 |
| 152 #elif defined (_M_IX86_FP) |
145 #if _M_IX86_FP >= 2 | 153 #if _M_IX86_FP >= 2 |
146 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 | 154 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 |
147 #elif _M_IX86_FP == 1 | 155 #elif _M_IX86_FP == 1 |
148 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1 | 156 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1 |
149 #endif | 157 #endif |
150 #endif | 158 #endif |
151 #endif | 159 #endif |
152 | 160 |
153 ////////////////////////////////////////////////////////////////////// | 161 ////////////////////////////////////////////////////////////////////// |
154 // ARM defines | 162 // ARM defines |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 * | 255 * |
248 * NOTE: Clang/ARM (r161757) does not support the 'optimize' attribute. | 256 * NOTE: Clang/ARM (r161757) does not support the 'optimize' attribute. |
249 */ | 257 */ |
250 #if SK_HAS_ATTRIBUTE(optimize) | 258 #if SK_HAS_ATTRIBUTE(optimize) |
251 # define SK_ATTRIBUTE_OPTIMIZE_O1 __attribute__((optimize("O1"))) | 259 # define SK_ATTRIBUTE_OPTIMIZE_O1 __attribute__((optimize("O1"))) |
252 #else | 260 #else |
253 # define SK_ATTRIBUTE_OPTIMIZE_O1 /* nothing */ | 261 # define SK_ATTRIBUTE_OPTIMIZE_O1 /* nothing */ |
254 #endif | 262 #endif |
255 | 263 |
256 #endif | 264 #endif |
OLD | NEW |