xcodebuild-helper 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +20 -0
  3. data/.gitignore +1 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +110 -0
  8. data/Guardfile +18 -0
  9. data/README.md +7 -0
  10. data/Rakefile +7 -0
  11. data/TODO.md +3 -0
  12. data/bin/oclint +5 -0
  13. data/bin/oclint-0.8 +5 -0
  14. data/bin/oclint-json-compilation-database +5 -0
  15. data/bin/oclint-xcodebuild +5 -0
  16. data/externals/oclint/LICENSE +69 -0
  17. data/externals/oclint/bin/oclint +0 -0
  18. data/externals/oclint/bin/oclint-0.10.2 +0 -0
  19. data/externals/oclint/bin/oclint-json-compilation-database +88 -0
  20. data/externals/oclint/bin/oclint-xcodebuild +218 -0
  21. data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +13 -0
  22. data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +958 -0
  23. data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +43 -0
  24. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +72 -0
  25. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +34 -0
  26. data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +88 -0
  27. data/externals/oclint/lib/clang/3.7.0/include/altivec.h +13528 -0
  28. data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +215 -0
  29. data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +304 -0
  30. data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +68419 -0
  31. data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +1256 -0
  32. data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +1250 -0
  33. data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +131 -0
  34. data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +242 -0
  35. data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +285 -0
  36. data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +2457 -0
  37. data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +1907 -0
  38. data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +353 -0
  39. data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +1982 -0
  40. data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +1308 -0
  41. data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +99 -0
  42. data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +153 -0
  43. data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +209 -0
  44. data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +110 -0
  45. data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +1480 -0
  46. data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +63 -0
  47. data/externals/oclint/lib/clang/3.7.0/include/float.h +124 -0
  48. data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +236 -0
  49. data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +234 -0
  50. data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +55 -0
  51. data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +226 -0
  52. data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +363 -0
  53. data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +101 -0
  54. data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +203 -0
  55. data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +102 -0
  56. data/externals/oclint/lib/clang/3.7.0/include/iso646.h +43 -0
  57. data/externals/oclint/lib/clang/3.7.0/include/limits.h +118 -0
  58. data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +72 -0
  59. data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +167 -0
  60. data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +75 -0
  61. data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +507 -0
  62. data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +196 -0
  63. data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +35 -0
  64. data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +122 -0
  65. data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +50 -0
  66. data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +39 -0
  67. data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +59 -0
  68. data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +59 -0
  69. data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +39 -0
  70. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +66 -0
  71. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +155 -0
  72. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +118 -0
  73. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +63 -0
  74. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +114 -0
  75. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +3070 -0
  76. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +84 -0
  77. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +107 -0
  78. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +222 -0
  79. data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +79 -0
  80. data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +487 -0
  81. data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +35 -0
  82. data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +52 -0
  83. data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +190 -0
  84. data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +44 -0
  85. data/externals/oclint/lib/clang/3.7.0/include/stddef.h +137 -0
  86. data/externals/oclint/lib/clang/3.7.0/include/stdint.h +707 -0
  87. data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +30 -0
  88. data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +154 -0
  89. data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +1374 -0
  90. data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +230 -0
  91. data/externals/oclint/lib/clang/3.7.0/include/unwind.h +282 -0
  92. data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +65 -0
  93. data/externals/oclint/lib/clang/3.7.0/include/varargs.h +26 -0
  94. data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +8946 -0
  95. data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +42 -0
  96. data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +81 -0
  97. data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +1008 -0
  98. data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +809 -0
  99. data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +41 -0
  100. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  101. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  102. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
  103. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
  104. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
  105. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
  106. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  107. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  108. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  109. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  110. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  111. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  112. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  113. data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
  114. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  134. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  135. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  136. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  137. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  138. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  139. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  140. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  141. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  142. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  143. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  144. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  145. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  146. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  147. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  148. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  149. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  150. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  151. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  152. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  153. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  154. data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
  155. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  156. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  157. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  158. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  159. data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
  160. data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
  161. data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
  162. data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
  163. data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
  164. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  165. data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
  166. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  167. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  168. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  169. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  170. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  171. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  172. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  173. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  174. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  175. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  176. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  177. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  178. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  179. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  180. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  181. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  182. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  183. data/lib/coverage_plan.rb +19 -0
  184. data/lib/device.rb +27 -0
  185. data/lib/execute.rb +7 -0
  186. data/lib/lint_plan.rb +41 -0
  187. data/lib/rules.rb +23 -0
  188. data/lib/test_plan.rb +11 -0
  189. data/lib/version.rb +3 -0
  190. data/lib/xcode.rb +128 -0
  191. data/lib/xcodebuild-helper.rb +110 -0
  192. data/spec/coverage_plan_spec.rb +18 -0
  193. data/spec/device_spec.rb +24 -0
  194. data/spec/lint_plan_spec.rb +35 -0
  195. data/spec/rule_spec.rb +37 -0
  196. data/spec/spec_helper.rb +17 -0
  197. data/spec/test_plan_spec.rb +11 -0
  198. data/spec/xcode_dsl_actions_spec.rb +136 -0
  199. data/spec/xcode_dsl_spec.rb +176 -0
  200. data/spec/xcode_spec.rb +79 -0
  201. data/xcodebuild-helper.gemspec +26 -0
  202. metadata +327 -0
@@ -0,0 +1,230 @@
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
+ /* Define the default attributes for the functions in this file. */
34
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
35
+
36
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
37
+ _mm_abs_pi8(__m64 __a)
38
+ {
39
+ return (__m64)__builtin_ia32_pabsb((__v8qi)__a);
40
+ }
41
+
42
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
43
+ _mm_abs_epi8(__m128i __a)
44
+ {
45
+ return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a);
46
+ }
47
+
48
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
49
+ _mm_abs_pi16(__m64 __a)
50
+ {
51
+ return (__m64)__builtin_ia32_pabsw((__v4hi)__a);
52
+ }
53
+
54
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
55
+ _mm_abs_epi16(__m128i __a)
56
+ {
57
+ return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a);
58
+ }
59
+
60
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
61
+ _mm_abs_pi32(__m64 __a)
62
+ {
63
+ return (__m64)__builtin_ia32_pabsd((__v2si)__a);
64
+ }
65
+
66
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
67
+ _mm_abs_epi32(__m128i __a)
68
+ {
69
+ return (__m128i)__builtin_ia32_pabsd128((__v4si)__a);
70
+ }
71
+
72
+ #define _mm_alignr_epi8(a, b, n) __extension__ ({ \
73
+ __m128i __a = (a); \
74
+ __m128i __b = (b); \
75
+ (__m128i)__builtin_ia32_palignr128((__v16qi)__a, (__v16qi)__b, (n)); })
76
+
77
+ #define _mm_alignr_pi8(a, b, n) __extension__ ({ \
78
+ __m64 __a = (a); \
79
+ __m64 __b = (b); \
80
+ (__m64)__builtin_ia32_palignr((__v8qi)__a, (__v8qi)__b, (n)); })
81
+
82
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
83
+ _mm_hadd_epi16(__m128i __a, __m128i __b)
84
+ {
85
+ return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b);
86
+ }
87
+
88
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
89
+ _mm_hadd_epi32(__m128i __a, __m128i __b)
90
+ {
91
+ return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b);
92
+ }
93
+
94
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
95
+ _mm_hadd_pi16(__m64 __a, __m64 __b)
96
+ {
97
+ return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b);
98
+ }
99
+
100
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
101
+ _mm_hadd_pi32(__m64 __a, __m64 __b)
102
+ {
103
+ return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b);
104
+ }
105
+
106
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
107
+ _mm_hadds_epi16(__m128i __a, __m128i __b)
108
+ {
109
+ return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b);
110
+ }
111
+
112
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
113
+ _mm_hadds_pi16(__m64 __a, __m64 __b)
114
+ {
115
+ return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b);
116
+ }
117
+
118
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
119
+ _mm_hsub_epi16(__m128i __a, __m128i __b)
120
+ {
121
+ return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b);
122
+ }
123
+
124
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
125
+ _mm_hsub_epi32(__m128i __a, __m128i __b)
126
+ {
127
+ return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b);
128
+ }
129
+
130
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
131
+ _mm_hsub_pi16(__m64 __a, __m64 __b)
132
+ {
133
+ return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b);
134
+ }
135
+
136
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
137
+ _mm_hsub_pi32(__m64 __a, __m64 __b)
138
+ {
139
+ return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b);
140
+ }
141
+
142
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
143
+ _mm_hsubs_epi16(__m128i __a, __m128i __b)
144
+ {
145
+ return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b);
146
+ }
147
+
148
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
149
+ _mm_hsubs_pi16(__m64 __a, __m64 __b)
150
+ {
151
+ return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b);
152
+ }
153
+
154
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
155
+ _mm_maddubs_epi16(__m128i __a, __m128i __b)
156
+ {
157
+ return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b);
158
+ }
159
+
160
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
161
+ _mm_maddubs_pi16(__m64 __a, __m64 __b)
162
+ {
163
+ return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b);
164
+ }
165
+
166
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
167
+ _mm_mulhrs_epi16(__m128i __a, __m128i __b)
168
+ {
169
+ return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b);
170
+ }
171
+
172
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
173
+ _mm_mulhrs_pi16(__m64 __a, __m64 __b)
174
+ {
175
+ return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b);
176
+ }
177
+
178
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
179
+ _mm_shuffle_epi8(__m128i __a, __m128i __b)
180
+ {
181
+ return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b);
182
+ }
183
+
184
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
185
+ _mm_shuffle_pi8(__m64 __a, __m64 __b)
186
+ {
187
+ return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b);
188
+ }
189
+
190
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
191
+ _mm_sign_epi8(__m128i __a, __m128i __b)
192
+ {
193
+ return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b);
194
+ }
195
+
196
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
197
+ _mm_sign_epi16(__m128i __a, __m128i __b)
198
+ {
199
+ return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b);
200
+ }
201
+
202
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
203
+ _mm_sign_epi32(__m128i __a, __m128i __b)
204
+ {
205
+ return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b);
206
+ }
207
+
208
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
209
+ _mm_sign_pi8(__m64 __a, __m64 __b)
210
+ {
211
+ return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b);
212
+ }
213
+
214
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
215
+ _mm_sign_pi16(__m64 __a, __m64 __b)
216
+ {
217
+ return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b);
218
+ }
219
+
220
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
221
+ _mm_sign_pi32(__m64 __a, __m64 __b)
222
+ {
223
+ return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b);
224
+ }
225
+
226
+ #undef __DEFAULT_FN_ATTRS
227
+
228
+ #endif /* __SSSE3__ */
229
+
230
+ #endif /* __TMMINTRIN_H */
@@ -0,0 +1,282 @@
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 defined(__APPLE__) && __has_include_next(<unwind.h>)
30
+ /* Darwin (from 11.x on) 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
+ _Unwind_Word _Unwind_GetBSP(struct _Unwind_Context *);
203
+
204
+ void *_Unwind_GetLanguageSpecificData(struct _Unwind_Context *);
205
+
206
+ _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
207
+
208
+ /* DWARF EH functions; currently not available on Darwin/ARM */
209
+ #if !defined(__APPLE__) || !defined(__arm__)
210
+
211
+ _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *);
212
+ _Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *,
213
+ _Unwind_Stop_Fn, void *);
214
+ void _Unwind_DeleteException(struct _Unwind_Exception *);
215
+ void _Unwind_Resume(struct _Unwind_Exception *);
216
+ _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *);
217
+
218
+ #endif
219
+
220
+ _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
221
+
222
+ /* setjmp(3)/longjmp(3) stuff */
223
+ typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t;
224
+
225
+ void _Unwind_SjLj_Register(_Unwind_FunctionContext_t);
226
+ void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t);
227
+ _Unwind_Reason_Code _Unwind_SjLj_RaiseException(struct _Unwind_Exception *);
228
+ _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(struct _Unwind_Exception *,
229
+ _Unwind_Stop_Fn, void *);
230
+ void _Unwind_SjLj_Resume(struct _Unwind_Exception *);
231
+ _Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(struct _Unwind_Exception *);
232
+
233
+ void *_Unwind_FindEnclosingFunction(void *);
234
+
235
+ #ifdef __APPLE__
236
+
237
+ _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *)
238
+ __attribute__((__unavailable__));
239
+ _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *)
240
+ __attribute__((__unavailable__));
241
+
242
+ /* Darwin-specific functions */
243
+ void __register_frame(const void *);
244
+ void __deregister_frame(const void *);
245
+
246
+ struct dwarf_eh_bases {
247
+ uintptr_t tbase;
248
+ uintptr_t dbase;
249
+ uintptr_t func;
250
+ };
251
+ void *_Unwind_Find_FDE(const void *, struct dwarf_eh_bases *);
252
+
253
+ void __register_frame_info_bases(const void *, void *, void *, void *)
254
+ __attribute__((__unavailable__));
255
+ void __register_frame_info(const void *, void *) __attribute__((__unavailable__));
256
+ void __register_frame_info_table_bases(const void *, void*, void *, void *)
257
+ __attribute__((__unavailable__));
258
+ void __register_frame_info_table(const void *, void *)
259
+ __attribute__((__unavailable__));
260
+ void __register_frame_table(const void *) __attribute__((__unavailable__));
261
+ void __deregister_frame_info(const void *) __attribute__((__unavailable__));
262
+ void __deregister_frame_info_bases(const void *)__attribute__((__unavailable__));
263
+
264
+ #else
265
+
266
+ _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
267
+ _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
268
+
269
+ #endif
270
+
271
+
272
+ #ifndef HIDE_EXPORTS
273
+ #pragma GCC visibility pop
274
+ #endif
275
+
276
+ #ifdef __cplusplus
277
+ }
278
+ #endif
279
+
280
+ #endif
281
+
282
+ #endif /* __CLANG_UNWIND_H */