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.
Files changed (136) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +1 -3
  3. data/Rakefile +1 -1
  4. data/bin/oclint +4 -0
  5. data/bin/oclint-0.8 +1 -1
  6. data/bin/oclint-json-compilation-database +1 -1
  7. data/bin/oclint-xcodebuild +1 -1
  8. data/externals/oclint/LICENSE +69 -0
  9. data/externals/oclint/bin/oclint +0 -0
  10. data/externals/oclint/{oclint-0.8 → bin/oclint-0.8} +0 -0
  11. data/externals/oclint/{oclint-json-compilation-database → bin/oclint-json-compilation-database} +0 -0
  12. data/externals/oclint/{oclint-xcodebuild → bin/oclint-xcodebuild} +0 -0
  13. data/externals/oclint/lib/clang/3.4/asan_blacklist.txt +10 -0
  14. data/externals/oclint/lib/clang/3.4/include/Intrin.h +784 -0
  15. data/externals/oclint/lib/clang/3.4/include/__wmmintrin_aes.h +67 -0
  16. data/externals/oclint/lib/clang/3.4/include/__wmmintrin_pclmul.h +34 -0
  17. data/externals/oclint/lib/clang/3.4/include/altivec.h +11856 -0
  18. data/externals/oclint/lib/clang/3.4/include/ammintrin.h +68 -0
  19. data/externals/oclint/lib/clang/3.4/include/arm_neon.h +6802 -0
  20. data/externals/oclint/lib/clang/3.4/include/avx2intrin.h +1206 -0
  21. data/externals/oclint/lib/clang/3.4/include/avxintrin.h +1224 -0
  22. data/externals/oclint/lib/clang/3.4/include/bmi2intrin.h +94 -0
  23. data/externals/oclint/lib/clang/3.4/include/bmiintrin.h +115 -0
  24. data/externals/oclint/lib/clang/3.4/include/cpuid.h +156 -0
  25. data/externals/oclint/lib/clang/3.4/include/emmintrin.h +1451 -0
  26. data/externals/oclint/lib/clang/3.4/include/f16cintrin.h +58 -0
  27. data/externals/oclint/lib/clang/3.4/include/float.h +124 -0
  28. data/externals/oclint/lib/clang/3.4/include/fma4intrin.h +231 -0
  29. data/externals/oclint/lib/clang/3.4/include/fmaintrin.h +229 -0
  30. data/externals/oclint/lib/clang/3.4/include/immintrin.h +118 -0
  31. data/externals/oclint/lib/clang/3.4/include/iso646.h +43 -0
  32. data/externals/oclint/lib/clang/3.4/include/limits.h +119 -0
  33. data/externals/oclint/lib/clang/3.4/include/lzcntintrin.h +55 -0
  34. data/externals/oclint/lib/clang/3.4/include/mm3dnow.h +162 -0
  35. data/externals/oclint/lib/clang/3.4/include/mm_malloc.h +75 -0
  36. data/externals/oclint/lib/clang/3.4/include/mmintrin.h +503 -0
  37. data/externals/oclint/lib/clang/3.4/include/module.map +156 -0
  38. data/externals/oclint/lib/clang/3.4/include/nmmintrin.h +35 -0
  39. data/externals/oclint/lib/clang/3.4/include/pmmintrin.h +117 -0
  40. data/externals/oclint/lib/clang/3.4/include/popcntintrin.h +45 -0
  41. data/externals/oclint/lib/clang/3.4/include/prfchwintrin.h +39 -0
  42. data/externals/oclint/lib/clang/3.4/include/rdseedintrin.h +52 -0
  43. data/externals/oclint/lib/clang/3.4/include/rtmintrin.h +54 -0
  44. data/externals/oclint/lib/clang/3.4/include/sanitizer/asan_interface.h +137 -0
  45. data/externals/oclint/lib/clang/3.4/include/sanitizer/common_interface_defs.h +54 -0
  46. data/externals/oclint/lib/clang/3.4/include/sanitizer/dfsan_interface.h +87 -0
  47. data/externals/oclint/lib/clang/3.4/include/sanitizer/linux_syscall_hooks.h +3070 -0
  48. data/externals/oclint/lib/clang/3.4/include/sanitizer/lsan_interface.h +52 -0
  49. data/externals/oclint/lib/clang/3.4/include/sanitizer/msan_interface.h +162 -0
  50. data/externals/oclint/lib/clang/3.4/include/shaintrin.h +74 -0
  51. data/externals/oclint/lib/clang/3.4/include/smmintrin.h +468 -0
  52. data/externals/oclint/lib/clang/3.4/include/stdalign.h +35 -0
  53. data/externals/oclint/lib/clang/3.4/include/stdarg.h +50 -0
  54. data/externals/oclint/lib/clang/3.4/include/stdbool.h +44 -0
  55. data/externals/oclint/lib/clang/3.4/include/stddef.h +102 -0
  56. data/externals/oclint/lib/clang/3.4/include/stdint.h +708 -0
  57. data/externals/oclint/lib/clang/3.4/include/stdnoreturn.h +30 -0
  58. data/externals/oclint/lib/clang/3.4/include/tbmintrin.h +158 -0
  59. data/externals/oclint/lib/clang/3.4/include/tgmath.h +1374 -0
  60. data/externals/oclint/lib/clang/3.4/include/tmmintrin.h +225 -0
  61. data/externals/oclint/lib/clang/3.4/include/unwind.h +280 -0
  62. data/externals/oclint/lib/clang/3.4/include/varargs.h +26 -0
  63. data/externals/oclint/lib/clang/3.4/include/wmmintrin.h +42 -0
  64. data/externals/oclint/lib/clang/3.4/include/x86intrin.h +79 -0
  65. data/externals/oclint/lib/clang/3.4/include/xmmintrin.h +1001 -0
  66. data/externals/oclint/lib/clang/3.4/include/xopintrin.h +804 -0
  67. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  68. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.i386.a +0 -0
  69. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.profile_osx.a +0 -0
  70. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.ubsan_osx.a +0 -0
  71. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.x86_64.a +0 -0
  72. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  73. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  74. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  75. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  76. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  77. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  78. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  79. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  80. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  81. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  82. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  83. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  84. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  85. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  86. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  87. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  88. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  89. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  90. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  91. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  92. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  93. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  94. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  95. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  96. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  97. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  98. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  99. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  100. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  101. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  102. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  103. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  104. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  105. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  106. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  107. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  108. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  109. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  110. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  111. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  112. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  113. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  114. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  134. data/lib/objective_ci/ci_tasks.rb +1 -1
  135. data/lib/objective_ci/version.rb +1 -1
  136. 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 */