objective-ci 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/README.md +1 -3
- data/Rakefile +1 -1
- data/bin/oclint +4 -0
- data/bin/oclint-0.8 +1 -1
- data/bin/oclint-json-compilation-database +1 -1
- data/bin/oclint-xcodebuild +1 -1
- data/externals/oclint/LICENSE +69 -0
- data/externals/oclint/bin/oclint +0 -0
- data/externals/oclint/{oclint-0.8 → bin/oclint-0.8} +0 -0
- data/externals/oclint/{oclint-json-compilation-database → bin/oclint-json-compilation-database} +0 -0
- data/externals/oclint/{oclint-xcodebuild → bin/oclint-xcodebuild} +0 -0
- data/externals/oclint/lib/clang/3.4/asan_blacklist.txt +10 -0
- data/externals/oclint/lib/clang/3.4/include/Intrin.h +784 -0
- data/externals/oclint/lib/clang/3.4/include/__wmmintrin_aes.h +67 -0
- data/externals/oclint/lib/clang/3.4/include/__wmmintrin_pclmul.h +34 -0
- data/externals/oclint/lib/clang/3.4/include/altivec.h +11856 -0
- data/externals/oclint/lib/clang/3.4/include/ammintrin.h +68 -0
- data/externals/oclint/lib/clang/3.4/include/arm_neon.h +6802 -0
- data/externals/oclint/lib/clang/3.4/include/avx2intrin.h +1206 -0
- data/externals/oclint/lib/clang/3.4/include/avxintrin.h +1224 -0
- data/externals/oclint/lib/clang/3.4/include/bmi2intrin.h +94 -0
- data/externals/oclint/lib/clang/3.4/include/bmiintrin.h +115 -0
- data/externals/oclint/lib/clang/3.4/include/cpuid.h +156 -0
- data/externals/oclint/lib/clang/3.4/include/emmintrin.h +1451 -0
- data/externals/oclint/lib/clang/3.4/include/f16cintrin.h +58 -0
- data/externals/oclint/lib/clang/3.4/include/float.h +124 -0
- data/externals/oclint/lib/clang/3.4/include/fma4intrin.h +231 -0
- data/externals/oclint/lib/clang/3.4/include/fmaintrin.h +229 -0
- data/externals/oclint/lib/clang/3.4/include/immintrin.h +118 -0
- data/externals/oclint/lib/clang/3.4/include/iso646.h +43 -0
- data/externals/oclint/lib/clang/3.4/include/limits.h +119 -0
- data/externals/oclint/lib/clang/3.4/include/lzcntintrin.h +55 -0
- data/externals/oclint/lib/clang/3.4/include/mm3dnow.h +162 -0
- data/externals/oclint/lib/clang/3.4/include/mm_malloc.h +75 -0
- data/externals/oclint/lib/clang/3.4/include/mmintrin.h +503 -0
- data/externals/oclint/lib/clang/3.4/include/module.map +156 -0
- data/externals/oclint/lib/clang/3.4/include/nmmintrin.h +35 -0
- data/externals/oclint/lib/clang/3.4/include/pmmintrin.h +117 -0
- data/externals/oclint/lib/clang/3.4/include/popcntintrin.h +45 -0
- data/externals/oclint/lib/clang/3.4/include/prfchwintrin.h +39 -0
- data/externals/oclint/lib/clang/3.4/include/rdseedintrin.h +52 -0
- data/externals/oclint/lib/clang/3.4/include/rtmintrin.h +54 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/asan_interface.h +137 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/common_interface_defs.h +54 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/dfsan_interface.h +87 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/linux_syscall_hooks.h +3070 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/lsan_interface.h +52 -0
- data/externals/oclint/lib/clang/3.4/include/sanitizer/msan_interface.h +162 -0
- data/externals/oclint/lib/clang/3.4/include/shaintrin.h +74 -0
- data/externals/oclint/lib/clang/3.4/include/smmintrin.h +468 -0
- data/externals/oclint/lib/clang/3.4/include/stdalign.h +35 -0
- data/externals/oclint/lib/clang/3.4/include/stdarg.h +50 -0
- data/externals/oclint/lib/clang/3.4/include/stdbool.h +44 -0
- data/externals/oclint/lib/clang/3.4/include/stddef.h +102 -0
- data/externals/oclint/lib/clang/3.4/include/stdint.h +708 -0
- data/externals/oclint/lib/clang/3.4/include/stdnoreturn.h +30 -0
- data/externals/oclint/lib/clang/3.4/include/tbmintrin.h +158 -0
- data/externals/oclint/lib/clang/3.4/include/tgmath.h +1374 -0
- data/externals/oclint/lib/clang/3.4/include/tmmintrin.h +225 -0
- data/externals/oclint/lib/clang/3.4/include/unwind.h +280 -0
- data/externals/oclint/lib/clang/3.4/include/varargs.h +26 -0
- data/externals/oclint/lib/clang/3.4/include/wmmintrin.h +42 -0
- data/externals/oclint/lib/clang/3.4/include/x86intrin.h +79 -0
- data/externals/oclint/lib/clang/3.4/include/xmmintrin.h +1001 -0
- data/externals/oclint/lib/clang/3.4/include/xopintrin.h +804 -0
- data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
- data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.i386.a +0 -0
- data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.profile_osx.a +0 -0
- data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.ubsan_osx.a +0 -0
- data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.x86_64.a +0 -0
- data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
- data/lib/objective_ci/ci_tasks.rb +1 -1
- data/lib/objective_ci/version.rb +1 -1
- metadata +200 -84
@@ -0,0 +1,225 @@
|
|
1
|
+
/*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------===
|
2
|
+
*
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
* of this software and associated documentation files (the "Software"), to deal
|
5
|
+
* in the Software without restriction, including without limitation the rights
|
6
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
* copies of the Software, and to permit persons to whom the Software is
|
8
|
+
* furnished to do so, subject to the following conditions:
|
9
|
+
*
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
11
|
+
* all copies or substantial portions of the Software.
|
12
|
+
*
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
* THE SOFTWARE.
|
20
|
+
*
|
21
|
+
*===-----------------------------------------------------------------------===
|
22
|
+
*/
|
23
|
+
|
24
|
+
#ifndef __TMMINTRIN_H
|
25
|
+
#define __TMMINTRIN_H
|
26
|
+
|
27
|
+
#ifndef __SSSE3__
|
28
|
+
#error "SSSE3 instruction set not enabled"
|
29
|
+
#else
|
30
|
+
|
31
|
+
#include <pmmintrin.h>
|
32
|
+
|
33
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
34
|
+
_mm_abs_pi8(__m64 __a)
|
35
|
+
{
|
36
|
+
return (__m64)__builtin_ia32_pabsb((__v8qi)__a);
|
37
|
+
}
|
38
|
+
|
39
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
40
|
+
_mm_abs_epi8(__m128i __a)
|
41
|
+
{
|
42
|
+
return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a);
|
43
|
+
}
|
44
|
+
|
45
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
46
|
+
_mm_abs_pi16(__m64 __a)
|
47
|
+
{
|
48
|
+
return (__m64)__builtin_ia32_pabsw((__v4hi)__a);
|
49
|
+
}
|
50
|
+
|
51
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
52
|
+
_mm_abs_epi16(__m128i __a)
|
53
|
+
{
|
54
|
+
return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a);
|
55
|
+
}
|
56
|
+
|
57
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
58
|
+
_mm_abs_pi32(__m64 __a)
|
59
|
+
{
|
60
|
+
return (__m64)__builtin_ia32_pabsd((__v2si)__a);
|
61
|
+
}
|
62
|
+
|
63
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
64
|
+
_mm_abs_epi32(__m128i __a)
|
65
|
+
{
|
66
|
+
return (__m128i)__builtin_ia32_pabsd128((__v4si)__a);
|
67
|
+
}
|
68
|
+
|
69
|
+
#define _mm_alignr_epi8(a, b, n) __extension__ ({ \
|
70
|
+
__m128i __a = (a); \
|
71
|
+
__m128i __b = (b); \
|
72
|
+
(__m128i)__builtin_ia32_palignr128((__v16qi)__a, (__v16qi)__b, (n)); })
|
73
|
+
|
74
|
+
#define _mm_alignr_pi8(a, b, n) __extension__ ({ \
|
75
|
+
__m64 __a = (a); \
|
76
|
+
__m64 __b = (b); \
|
77
|
+
(__m64)__builtin_ia32_palignr((__v8qi)__a, (__v8qi)__b, (n)); })
|
78
|
+
|
79
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
80
|
+
_mm_hadd_epi16(__m128i __a, __m128i __b)
|
81
|
+
{
|
82
|
+
return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b);
|
83
|
+
}
|
84
|
+
|
85
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
86
|
+
_mm_hadd_epi32(__m128i __a, __m128i __b)
|
87
|
+
{
|
88
|
+
return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b);
|
89
|
+
}
|
90
|
+
|
91
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
92
|
+
_mm_hadd_pi16(__m64 __a, __m64 __b)
|
93
|
+
{
|
94
|
+
return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b);
|
95
|
+
}
|
96
|
+
|
97
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
98
|
+
_mm_hadd_pi32(__m64 __a, __m64 __b)
|
99
|
+
{
|
100
|
+
return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b);
|
101
|
+
}
|
102
|
+
|
103
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
104
|
+
_mm_hadds_epi16(__m128i __a, __m128i __b)
|
105
|
+
{
|
106
|
+
return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b);
|
107
|
+
}
|
108
|
+
|
109
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
110
|
+
_mm_hadds_pi16(__m64 __a, __m64 __b)
|
111
|
+
{
|
112
|
+
return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b);
|
113
|
+
}
|
114
|
+
|
115
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
116
|
+
_mm_hsub_epi16(__m128i __a, __m128i __b)
|
117
|
+
{
|
118
|
+
return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b);
|
119
|
+
}
|
120
|
+
|
121
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
122
|
+
_mm_hsub_epi32(__m128i __a, __m128i __b)
|
123
|
+
{
|
124
|
+
return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b);
|
125
|
+
}
|
126
|
+
|
127
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
128
|
+
_mm_hsub_pi16(__m64 __a, __m64 __b)
|
129
|
+
{
|
130
|
+
return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b);
|
131
|
+
}
|
132
|
+
|
133
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
134
|
+
_mm_hsub_pi32(__m64 __a, __m64 __b)
|
135
|
+
{
|
136
|
+
return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b);
|
137
|
+
}
|
138
|
+
|
139
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
140
|
+
_mm_hsubs_epi16(__m128i __a, __m128i __b)
|
141
|
+
{
|
142
|
+
return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b);
|
143
|
+
}
|
144
|
+
|
145
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
146
|
+
_mm_hsubs_pi16(__m64 __a, __m64 __b)
|
147
|
+
{
|
148
|
+
return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b);
|
149
|
+
}
|
150
|
+
|
151
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
152
|
+
_mm_maddubs_epi16(__m128i __a, __m128i __b)
|
153
|
+
{
|
154
|
+
return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b);
|
155
|
+
}
|
156
|
+
|
157
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
158
|
+
_mm_maddubs_pi16(__m64 __a, __m64 __b)
|
159
|
+
{
|
160
|
+
return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b);
|
161
|
+
}
|
162
|
+
|
163
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
164
|
+
_mm_mulhrs_epi16(__m128i __a, __m128i __b)
|
165
|
+
{
|
166
|
+
return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b);
|
167
|
+
}
|
168
|
+
|
169
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
170
|
+
_mm_mulhrs_pi16(__m64 __a, __m64 __b)
|
171
|
+
{
|
172
|
+
return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b);
|
173
|
+
}
|
174
|
+
|
175
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
176
|
+
_mm_shuffle_epi8(__m128i __a, __m128i __b)
|
177
|
+
{
|
178
|
+
return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b);
|
179
|
+
}
|
180
|
+
|
181
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
182
|
+
_mm_shuffle_pi8(__m64 __a, __m64 __b)
|
183
|
+
{
|
184
|
+
return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b);
|
185
|
+
}
|
186
|
+
|
187
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
188
|
+
_mm_sign_epi8(__m128i __a, __m128i __b)
|
189
|
+
{
|
190
|
+
return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b);
|
191
|
+
}
|
192
|
+
|
193
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
194
|
+
_mm_sign_epi16(__m128i __a, __m128i __b)
|
195
|
+
{
|
196
|
+
return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b);
|
197
|
+
}
|
198
|
+
|
199
|
+
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
|
200
|
+
_mm_sign_epi32(__m128i __a, __m128i __b)
|
201
|
+
{
|
202
|
+
return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b);
|
203
|
+
}
|
204
|
+
|
205
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
206
|
+
_mm_sign_pi8(__m64 __a, __m64 __b)
|
207
|
+
{
|
208
|
+
return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b);
|
209
|
+
}
|
210
|
+
|
211
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
212
|
+
_mm_sign_pi16(__m64 __a, __m64 __b)
|
213
|
+
{
|
214
|
+
return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b);
|
215
|
+
}
|
216
|
+
|
217
|
+
static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
218
|
+
_mm_sign_pi32(__m64 __a, __m64 __b)
|
219
|
+
{
|
220
|
+
return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b);
|
221
|
+
}
|
222
|
+
|
223
|
+
#endif /* __SSSE3__ */
|
224
|
+
|
225
|
+
#endif /* __TMMINTRIN_H */
|
@@ -0,0 +1,280 @@
|
|
1
|
+
/*===---- unwind.h - Stack unwinding ----------------------------------------===
|
2
|
+
*
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
* of this software and associated documentation files (the "Software"), to deal
|
5
|
+
* in the Software without restriction, including without limitation the rights
|
6
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
* copies of the Software, and to permit persons to whom the Software is
|
8
|
+
* furnished to do so, subject to the following conditions:
|
9
|
+
*
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
11
|
+
* all copies or substantial portions of the Software.
|
12
|
+
*
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
* THE SOFTWARE.
|
20
|
+
*
|
21
|
+
*===-----------------------------------------------------------------------===
|
22
|
+
*/
|
23
|
+
|
24
|
+
/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
|
25
|
+
|
26
|
+
#ifndef __CLANG_UNWIND_H
|
27
|
+
#define __CLANG_UNWIND_H
|
28
|
+
|
29
|
+
#if __has_include_next(<unwind.h>)
|
30
|
+
/* Darwin (from 11.x on) and libunwind provide an unwind.h. If that's available,
|
31
|
+
* use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
|
32
|
+
* so define that around the include.*/
|
33
|
+
# ifndef _GNU_SOURCE
|
34
|
+
# define _SHOULD_UNDEFINE_GNU_SOURCE
|
35
|
+
# define _GNU_SOURCE
|
36
|
+
# endif
|
37
|
+
// libunwind's unwind.h reflects the current visibility. However, Mozilla
|
38
|
+
// builds with -fvisibility=hidden and relies on gcc's unwind.h to reset the
|
39
|
+
// visibility to default and export its contents. gcc also allows users to
|
40
|
+
// override its override by #defining HIDE_EXPORTS (but note, this only obeys
|
41
|
+
// the user's -fvisibility setting; it doesn't hide any exports on its own). We
|
42
|
+
// imitate gcc's header here:
|
43
|
+
# ifdef HIDE_EXPORTS
|
44
|
+
# include_next <unwind.h>
|
45
|
+
# else
|
46
|
+
# pragma GCC visibility push(default)
|
47
|
+
# include_next <unwind.h>
|
48
|
+
# pragma GCC visibility pop
|
49
|
+
# endif
|
50
|
+
# ifdef _SHOULD_UNDEFINE_GNU_SOURCE
|
51
|
+
# undef _GNU_SOURCE
|
52
|
+
# undef _SHOULD_UNDEFINE_GNU_SOURCE
|
53
|
+
# endif
|
54
|
+
#else
|
55
|
+
|
56
|
+
#include <stdint.h>
|
57
|
+
|
58
|
+
#ifdef __cplusplus
|
59
|
+
extern "C" {
|
60
|
+
#endif
|
61
|
+
|
62
|
+
/* It is a bit strange for a header to play with the visibility of the
|
63
|
+
symbols it declares, but this matches gcc's behavior and some programs
|
64
|
+
depend on it */
|
65
|
+
#ifndef HIDE_EXPORTS
|
66
|
+
#pragma GCC visibility push(default)
|
67
|
+
#endif
|
68
|
+
|
69
|
+
typedef uintptr_t _Unwind_Word;
|
70
|
+
typedef intptr_t _Unwind_Sword;
|
71
|
+
typedef uintptr_t _Unwind_Ptr;
|
72
|
+
typedef uintptr_t _Unwind_Internal_Ptr;
|
73
|
+
typedef uint64_t _Unwind_Exception_Class;
|
74
|
+
|
75
|
+
typedef intptr_t _sleb128_t;
|
76
|
+
typedef uintptr_t _uleb128_t;
|
77
|
+
|
78
|
+
struct _Unwind_Context;
|
79
|
+
struct _Unwind_Exception;
|
80
|
+
typedef enum {
|
81
|
+
_URC_NO_REASON = 0,
|
82
|
+
_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
|
83
|
+
|
84
|
+
_URC_FATAL_PHASE2_ERROR = 2,
|
85
|
+
_URC_FATAL_PHASE1_ERROR = 3,
|
86
|
+
_URC_NORMAL_STOP = 4,
|
87
|
+
|
88
|
+
_URC_END_OF_STACK = 5,
|
89
|
+
_URC_HANDLER_FOUND = 6,
|
90
|
+
_URC_INSTALL_CONTEXT = 7,
|
91
|
+
_URC_CONTINUE_UNWIND = 8
|
92
|
+
} _Unwind_Reason_Code;
|
93
|
+
|
94
|
+
typedef enum {
|
95
|
+
_UA_SEARCH_PHASE = 1,
|
96
|
+
_UA_CLEANUP_PHASE = 2,
|
97
|
+
|
98
|
+
_UA_HANDLER_FRAME = 4,
|
99
|
+
_UA_FORCE_UNWIND = 8,
|
100
|
+
_UA_END_OF_STACK = 16 /* gcc extension to C++ ABI */
|
101
|
+
} _Unwind_Action;
|
102
|
+
|
103
|
+
typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code,
|
104
|
+
struct _Unwind_Exception *);
|
105
|
+
|
106
|
+
struct _Unwind_Exception {
|
107
|
+
_Unwind_Exception_Class exception_class;
|
108
|
+
_Unwind_Exception_Cleanup_Fn exception_cleanup;
|
109
|
+
_Unwind_Word private_1;
|
110
|
+
_Unwind_Word private_2;
|
111
|
+
/* The Itanium ABI requires that _Unwind_Exception objects are "double-word
|
112
|
+
* aligned". GCC has interpreted this to mean "use the maximum useful
|
113
|
+
* alignment for the target"; so do we. */
|
114
|
+
} __attribute__((__aligned__));
|
115
|
+
|
116
|
+
typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(int, _Unwind_Action,
|
117
|
+
_Unwind_Exception_Class,
|
118
|
+
struct _Unwind_Exception *,
|
119
|
+
struct _Unwind_Context *,
|
120
|
+
void *);
|
121
|
+
|
122
|
+
typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)(
|
123
|
+
int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
|
124
|
+
struct _Unwind_Context *);
|
125
|
+
typedef _Unwind_Personality_Fn __personality_routine;
|
126
|
+
|
127
|
+
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *,
|
128
|
+
void *);
|
129
|
+
|
130
|
+
#if defined(__arm__) && !defined(__APPLE__)
|
131
|
+
|
132
|
+
typedef enum {
|
133
|
+
_UVRSC_CORE = 0, /* integer register */
|
134
|
+
_UVRSC_VFP = 1, /* vfp */
|
135
|
+
_UVRSC_WMMXD = 3, /* Intel WMMX data register */
|
136
|
+
_UVRSC_WMMXC = 4 /* Intel WMMX control register */
|
137
|
+
} _Unwind_VRS_RegClass;
|
138
|
+
|
139
|
+
typedef enum {
|
140
|
+
_UVRSD_UINT32 = 0,
|
141
|
+
_UVRSD_VFPX = 1,
|
142
|
+
_UVRSD_UINT64 = 3,
|
143
|
+
_UVRSD_FLOAT = 4,
|
144
|
+
_UVRSD_DOUBLE = 5
|
145
|
+
} _Unwind_VRS_DataRepresentation;
|
146
|
+
|
147
|
+
typedef enum {
|
148
|
+
_UVRSR_OK = 0,
|
149
|
+
_UVRSR_NOT_IMPLEMENTED = 1,
|
150
|
+
_UVRSR_FAILED = 2
|
151
|
+
} _Unwind_VRS_Result;
|
152
|
+
|
153
|
+
_Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *__context,
|
154
|
+
_Unwind_VRS_RegClass __regclass,
|
155
|
+
uint32_t __regno,
|
156
|
+
_Unwind_VRS_DataRepresentation __representation,
|
157
|
+
void *__valuep);
|
158
|
+
|
159
|
+
_Unwind_VRS_Result _Unwind_VRS_Set(struct _Unwind_Context *__context,
|
160
|
+
_Unwind_VRS_RegClass __regclass,
|
161
|
+
uint32_t __regno,
|
162
|
+
_Unwind_VRS_DataRepresentation __representation,
|
163
|
+
void *__valuep);
|
164
|
+
|
165
|
+
static __inline__
|
166
|
+
_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *__context, int __index) {
|
167
|
+
_Unwind_Word __value;
|
168
|
+
_Unwind_VRS_Get(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value);
|
169
|
+
return __value;
|
170
|
+
}
|
171
|
+
|
172
|
+
static __inline__
|
173
|
+
void _Unwind_SetGR(struct _Unwind_Context *__context, int __index,
|
174
|
+
_Unwind_Word __value) {
|
175
|
+
_Unwind_VRS_Set(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value);
|
176
|
+
}
|
177
|
+
|
178
|
+
static __inline__
|
179
|
+
_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *__context) {
|
180
|
+
_Unwind_Word __ip = _Unwind_GetGR(__context, 15);
|
181
|
+
return __ip & ~(_Unwind_Word)(0x1); /* Remove thumb mode bit. */
|
182
|
+
}
|
183
|
+
|
184
|
+
static __inline__
|
185
|
+
void _Unwind_SetIP(struct _Unwind_Context *__context, _Unwind_Word __value) {
|
186
|
+
_Unwind_Word __thumb_mode_bit = _Unwind_GetGR(__context, 15) & 0x1;
|
187
|
+
_Unwind_SetGR(__context, 15, __value | __thumb_mode_bit);
|
188
|
+
}
|
189
|
+
#else
|
190
|
+
_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int);
|
191
|
+
void _Unwind_SetGR(struct _Unwind_Context *, int, _Unwind_Word);
|
192
|
+
|
193
|
+
_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *);
|
194
|
+
void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Word);
|
195
|
+
#endif
|
196
|
+
|
197
|
+
|
198
|
+
_Unwind_Word _Unwind_GetIPInfo(struct _Unwind_Context *, int *);
|
199
|
+
|
200
|
+
_Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *);
|
201
|
+
|
202
|
+
void *_Unwind_GetLanguageSpecificData(struct _Unwind_Context *);
|
203
|
+
|
204
|
+
_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
|
205
|
+
|
206
|
+
/* DWARF EH functions; currently not available on Darwin/ARM */
|
207
|
+
#if !defined(__APPLE__) || !defined(__arm__)
|
208
|
+
|
209
|
+
_Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *);
|
210
|
+
_Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *,
|
211
|
+
_Unwind_Stop_Fn, void *);
|
212
|
+
void _Unwind_DeleteException(struct _Unwind_Exception *);
|
213
|
+
void _Unwind_Resume(struct _Unwind_Exception *);
|
214
|
+
_Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *);
|
215
|
+
|
216
|
+
#endif
|
217
|
+
|
218
|
+
_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
|
219
|
+
|
220
|
+
/* setjmp(3)/longjmp(3) stuff */
|
221
|
+
typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t;
|
222
|
+
|
223
|
+
void _Unwind_SjLj_Register(_Unwind_FunctionContext_t);
|
224
|
+
void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t);
|
225
|
+
_Unwind_Reason_Code _Unwind_SjLj_RaiseException(struct _Unwind_Exception *);
|
226
|
+
_Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(struct _Unwind_Exception *,
|
227
|
+
_Unwind_Stop_Fn, void *);
|
228
|
+
void _Unwind_SjLj_Resume(struct _Unwind_Exception *);
|
229
|
+
_Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(struct _Unwind_Exception *);
|
230
|
+
|
231
|
+
void *_Unwind_FindEnclosingFunction(void *);
|
232
|
+
|
233
|
+
#ifdef __APPLE__
|
234
|
+
|
235
|
+
_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *)
|
236
|
+
__attribute__((unavailable));
|
237
|
+
_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *)
|
238
|
+
__attribute__((unavailable));
|
239
|
+
|
240
|
+
/* Darwin-specific functions */
|
241
|
+
void __register_frame(const void *);
|
242
|
+
void __deregister_frame(const void *);
|
243
|
+
|
244
|
+
struct dwarf_eh_bases {
|
245
|
+
uintptr_t tbase;
|
246
|
+
uintptr_t dbase;
|
247
|
+
uintptr_t func;
|
248
|
+
};
|
249
|
+
void *_Unwind_Find_FDE(const void *, struct dwarf_eh_bases *);
|
250
|
+
|
251
|
+
void __register_frame_info_bases(const void *, void *, void *, void *)
|
252
|
+
__attribute__((unavailable));
|
253
|
+
void __register_frame_info(const void *, void *) __attribute__((unavailable));
|
254
|
+
void __register_frame_info_table_bases(const void *, void*, void *, void *)
|
255
|
+
__attribute__((unavailable));
|
256
|
+
void __register_frame_info_table(const void *, void *)
|
257
|
+
__attribute__((unavailable));
|
258
|
+
void __register_frame_table(const void *) __attribute__((unavailable));
|
259
|
+
void __deregister_frame_info(const void *) __attribute__((unavailable));
|
260
|
+
void __deregister_frame_info_bases(const void *)__attribute__((unavailable));
|
261
|
+
|
262
|
+
#else
|
263
|
+
|
264
|
+
_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
|
265
|
+
_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
|
266
|
+
|
267
|
+
#endif
|
268
|
+
|
269
|
+
|
270
|
+
#ifndef HIDE_EXPORTS
|
271
|
+
#pragma GCC visibility pop
|
272
|
+
#endif
|
273
|
+
|
274
|
+
#ifdef __cplusplus
|
275
|
+
}
|
276
|
+
#endif
|
277
|
+
|
278
|
+
#endif
|
279
|
+
|
280
|
+
#endif /* __CLANG_UNWIND_H */
|