xcodebuild-helper 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. metadata +4 -220
  3. data/.codeclimate.yml +0 -20
  4. data/.gitignore +0 -1
  5. data/.rspec +0 -2
  6. data/.travis.yml +0 -7
  7. data/Gemfile +0 -6
  8. data/Gemfile.lock +0 -114
  9. data/Guardfile +0 -18
  10. data/README.md +0 -7
  11. data/Rakefile +0 -7
  12. data/assets/style.css +0 -110
  13. data/bin/oclint +0 -5
  14. data/bin/oclint-0.8 +0 -5
  15. data/bin/oclint-json-compilation-database +0 -5
  16. data/bin/oclint-xcodebuild +0 -5
  17. data/externals/oclint/LICENSE +0 -69
  18. data/externals/oclint/bin/oclint +0 -0
  19. data/externals/oclint/bin/oclint-0.10.2 +0 -0
  20. data/externals/oclint/bin/oclint-json-compilation-database +0 -88
  21. data/externals/oclint/bin/oclint-xcodebuild +0 -218
  22. data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +0 -13
  23. data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +0 -958
  24. data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +0 -43
  25. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +0 -72
  26. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +0 -34
  27. data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +0 -88
  28. data/externals/oclint/lib/clang/3.7.0/include/altivec.h +0 -13528
  29. data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +0 -215
  30. data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +0 -304
  31. data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +0 -68419
  32. data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +0 -1256
  33. data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +0 -1250
  34. data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +0 -131
  35. data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +0 -242
  36. data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +0 -285
  37. data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +0 -2457
  38. data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +0 -1907
  39. data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +0 -353
  40. data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +0 -1982
  41. data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +0 -1308
  42. data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +0 -99
  43. data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +0 -153
  44. data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +0 -209
  45. data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +0 -110
  46. data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +0 -1480
  47. data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +0 -63
  48. data/externals/oclint/lib/clang/3.7.0/include/float.h +0 -124
  49. data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +0 -236
  50. data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +0 -234
  51. data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +0 -55
  52. data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +0 -226
  53. data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +0 -363
  54. data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +0 -101
  55. data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +0 -203
  56. data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +0 -102
  57. data/externals/oclint/lib/clang/3.7.0/include/iso646.h +0 -43
  58. data/externals/oclint/lib/clang/3.7.0/include/limits.h +0 -118
  59. data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +0 -72
  60. data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +0 -167
  61. data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +0 -75
  62. data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +0 -507
  63. data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +0 -196
  64. data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +0 -35
  65. data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +0 -122
  66. data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +0 -50
  67. data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +0 -39
  68. data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +0 -59
  69. data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +0 -59
  70. data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +0 -39
  71. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +0 -66
  72. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +0 -155
  73. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +0 -118
  74. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +0 -63
  75. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +0 -114
  76. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +0 -3070
  77. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +0 -84
  78. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +0 -107
  79. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +0 -222
  80. data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +0 -79
  81. data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +0 -487
  82. data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +0 -35
  83. data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +0 -52
  84. data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +0 -190
  85. data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +0 -44
  86. data/externals/oclint/lib/clang/3.7.0/include/stddef.h +0 -137
  87. data/externals/oclint/lib/clang/3.7.0/include/stdint.h +0 -707
  88. data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +0 -30
  89. data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +0 -154
  90. data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +0 -1374
  91. data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +0 -230
  92. data/externals/oclint/lib/clang/3.7.0/include/unwind.h +0 -282
  93. data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +0 -65
  94. data/externals/oclint/lib/clang/3.7.0/include/varargs.h +0 -26
  95. data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +0 -8946
  96. data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +0 -42
  97. data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +0 -81
  98. data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +0 -1008
  99. data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +0 -809
  100. data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +0 -41
  101. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  102. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  103. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
  104. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
  105. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
  106. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
  107. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  108. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  109. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  110. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  111. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  112. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  113. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  114. data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  134. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  135. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  136. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  137. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  138. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  139. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  140. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  141. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  142. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  143. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  144. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  145. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  146. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  147. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  148. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  149. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  150. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  151. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  152. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  153. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  154. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  155. data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
  156. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  157. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  158. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  159. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  160. data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
  161. data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
  162. data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
  163. data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
  164. data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
  165. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  166. data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
  167. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  168. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  169. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  170. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  171. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  172. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  173. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  174. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  175. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  176. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  177. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  178. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  179. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  180. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  181. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  182. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  183. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  184. data/lib/coverage_html_converter.rb +0 -141
  185. data/lib/coverage_plan.rb +0 -27
  186. data/lib/device.rb +0 -27
  187. data/lib/execute.rb +0 -7
  188. data/lib/lint_plan.rb +0 -41
  189. data/lib/rules.rb +0 -23
  190. data/lib/test_plan.rb +0 -11
  191. data/lib/version.rb +0 -3
  192. data/lib/xcode.rb +0 -128
  193. data/lib/xcodebuild-helper.rb +0 -135
  194. data/spec/coverage_html_coverter_spec.rb +0 -55
  195. data/spec/coverage_plan_spec.rb +0 -23
  196. data/spec/device_spec.rb +0 -24
  197. data/spec/lint_plan_spec.rb +0 -35
  198. data/spec/rule_spec.rb +0 -37
  199. data/spec/spec_helper.rb +0 -17
  200. data/spec/test_plan_spec.rb +0 -11
  201. data/spec/xcode_dsl_actions_spec.rb +0 -227
  202. data/spec/xcode_dsl_spec.rb +0 -176
  203. data/spec/xcode_spec.rb +0 -85
  204. data/xcodebuild-helper.gemspec +0 -27
@@ -1,226 +0,0 @@
1
- /*===---- htmintrin.h - Standard header for PowerPC HTM ---------------===*\
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
- #ifndef __HTMINTRIN_H
24
- #define __HTMINTRIN_H
25
-
26
- #ifndef __HTM__
27
- #error "HTM instruction set not enabled"
28
- #endif
29
-
30
- #ifdef __powerpc__
31
-
32
- #include <stdint.h>
33
-
34
- typedef uint64_t texasr_t;
35
- typedef uint32_t texasru_t;
36
- typedef uint32_t texasrl_t;
37
- typedef uintptr_t tfiar_t;
38
- typedef uintptr_t tfhar_t;
39
-
40
- #define _HTM_STATE(CR0) ((CR0 >> 1) & 0x3)
41
- #define _HTM_NONTRANSACTIONAL 0x0
42
- #define _HTM_SUSPENDED 0x1
43
- #define _HTM_TRANSACTIONAL 0x2
44
-
45
- #define _TEXASR_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \
46
- (((TEXASR) >> (63-(BITNUM))) & ((1<<(SIZE))-1))
47
- #define _TEXASRU_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \
48
- (((TEXASR) >> (31-(BITNUM))) & ((1<<(SIZE))-1))
49
-
50
- #define _TEXASR_FAILURE_CODE(TEXASR) \
51
- _TEXASR_EXTRACT_BITS(TEXASR, 7, 8)
52
- #define _TEXASRU_FAILURE_CODE(TEXASRU) \
53
- _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 8)
54
-
55
- #define _TEXASR_FAILURE_PERSISTENT(TEXASR) \
56
- _TEXASR_EXTRACT_BITS(TEXASR, 7, 1)
57
- #define _TEXASRU_FAILURE_PERSISTENT(TEXASRU) \
58
- _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 1)
59
-
60
- #define _TEXASR_DISALLOWED(TEXASR) \
61
- _TEXASR_EXTRACT_BITS(TEXASR, 8, 1)
62
- #define _TEXASRU_DISALLOWED(TEXASRU) \
63
- _TEXASRU_EXTRACT_BITS(TEXASRU, 8, 1)
64
-
65
- #define _TEXASR_NESTING_OVERFLOW(TEXASR) \
66
- _TEXASR_EXTRACT_BITS(TEXASR, 9, 1)
67
- #define _TEXASRU_NESTING_OVERFLOW(TEXASRU) \
68
- _TEXASRU_EXTRACT_BITS(TEXASRU, 9, 1)
69
-
70
- #define _TEXASR_FOOTPRINT_OVERFLOW(TEXASR) \
71
- _TEXASR_EXTRACT_BITS(TEXASR, 10, 1)
72
- #define _TEXASRU_FOOTPRINT_OVERFLOW(TEXASRU) \
73
- _TEXASRU_EXTRACT_BITS(TEXASRU, 10, 1)
74
-
75
- #define _TEXASR_SELF_INDUCED_CONFLICT(TEXASR) \
76
- _TEXASR_EXTRACT_BITS(TEXASR, 11, 1)
77
- #define _TEXASRU_SELF_INDUCED_CONFLICT(TEXASRU) \
78
- _TEXASRU_EXTRACT_BITS(TEXASRU, 11, 1)
79
-
80
- #define _TEXASR_NON_TRANSACTIONAL_CONFLICT(TEXASR) \
81
- _TEXASR_EXTRACT_BITS(TEXASR, 12, 1)
82
- #define _TEXASRU_NON_TRANSACTIONAL_CONFLICT(TEXASRU) \
83
- _TEXASRU_EXTRACT_BITS(TEXASRU, 12, 1)
84
-
85
- #define _TEXASR_TRANSACTION_CONFLICT(TEXASR) \
86
- _TEXASR_EXTRACT_BITS(TEXASR, 13, 1)
87
- #define _TEXASRU_TRANSACTION_CONFLICT(TEXASRU) \
88
- _TEXASRU_EXTRACT_BITS(TEXASRU, 13, 1)
89
-
90
- #define _TEXASR_TRANSLATION_INVALIDATION_CONFLICT(TEXASR) \
91
- _TEXASR_EXTRACT_BITS(TEXASR, 14, 1)
92
- #define _TEXASRU_TRANSLATION_INVALIDATION_CONFLICT(TEXASRU) \
93
- _TEXASRU_EXTRACT_BITS(TEXASRU, 14, 1)
94
-
95
- #define _TEXASR_IMPLEMENTAION_SPECIFIC(TEXASR) \
96
- _TEXASR_EXTRACT_BITS(TEXASR, 15, 1)
97
- #define _TEXASRU_IMPLEMENTAION_SPECIFIC(TEXASRU) \
98
- _TEXASRU_EXTRACT_BITS(TEXASRU, 15, 1)
99
-
100
- #define _TEXASR_INSTRUCTION_FETCH_CONFLICT(TEXASR) \
101
- _TEXASR_EXTRACT_BITS(TEXASR, 16, 1)
102
- #define _TEXASRU_INSTRUCTION_FETCH_CONFLICT(TEXASRU) \
103
- _TEXASRU_EXTRACT_BITS(TEXASRU, 16, 1)
104
-
105
- #define _TEXASR_ABORT(TEXASR) \
106
- _TEXASR_EXTRACT_BITS(TEXASR, 31, 1)
107
- #define _TEXASRU_ABORT(TEXASRU) \
108
- _TEXASRU_EXTRACT_BITS(TEXASRU, 31, 1)
109
-
110
-
111
- #define _TEXASR_SUSPENDED(TEXASR) \
112
- _TEXASR_EXTRACT_BITS(TEXASR, 32, 1)
113
-
114
- #define _TEXASR_PRIVILEGE(TEXASR) \
115
- _TEXASR_EXTRACT_BITS(TEXASR, 35, 2)
116
-
117
- #define _TEXASR_FAILURE_SUMMARY(TEXASR) \
118
- _TEXASR_EXTRACT_BITS(TEXASR, 36, 1)
119
-
120
- #define _TEXASR_TFIAR_EXACT(TEXASR) \
121
- _TEXASR_EXTRACT_BITS(TEXASR, 37, 1)
122
-
123
- #define _TEXASR_ROT(TEXASR) \
124
- _TEXASR_EXTRACT_BITS(TEXASR, 38, 1)
125
-
126
- #define _TEXASR_TRANSACTION_LEVEL(TEXASR) \
127
- _TEXASR_EXTRACT_BITS(TEXASR, 63, 12)
128
-
129
- #endif /* __powerpc */
130
-
131
- #ifdef __s390__
132
-
133
- /* Condition codes generated by tbegin */
134
- #define _HTM_TBEGIN_STARTED 0
135
- #define _HTM_TBEGIN_INDETERMINATE 1
136
- #define _HTM_TBEGIN_TRANSIENT 2
137
- #define _HTM_TBEGIN_PERSISTENT 3
138
-
139
- /* The abort codes below this threshold are reserved for machine use. */
140
- #define _HTM_FIRST_USER_ABORT_CODE 256
141
-
142
- /* The transaction diagnostic block is it is defined in the Principles
143
- of Operation chapter 5-91. */
144
-
145
- struct __htm_tdb {
146
- unsigned char format; /* 0 */
147
- unsigned char flags;
148
- unsigned char reserved1[4];
149
- unsigned short nesting_depth;
150
- unsigned long long abort_code; /* 8 */
151
- unsigned long long conflict_token; /* 16 */
152
- unsigned long long atia; /* 24 */
153
- unsigned char eaid; /* 32 */
154
- unsigned char dxc;
155
- unsigned char reserved2[2];
156
- unsigned int program_int_id;
157
- unsigned long long exception_id; /* 40 */
158
- unsigned long long bea; /* 48 */
159
- unsigned char reserved3[72]; /* 56 */
160
- unsigned long long gprs[16]; /* 128 */
161
- } __attribute__((__packed__, __aligned__ (8)));
162
-
163
-
164
- /* Helper intrinsics to retry tbegin in case of transient failure. */
165
-
166
- static __inline int __attribute__((__always_inline__, __nodebug__))
167
- __builtin_tbegin_retry_null (int retry)
168
- {
169
- int cc, i = 0;
170
-
171
- while ((cc = __builtin_tbegin(0)) == _HTM_TBEGIN_TRANSIENT
172
- && i++ < retry)
173
- __builtin_tx_assist(i);
174
-
175
- return cc;
176
- }
177
-
178
- static __inline int __attribute__((__always_inline__, __nodebug__))
179
- __builtin_tbegin_retry_tdb (void *tdb, int retry)
180
- {
181
- int cc, i = 0;
182
-
183
- while ((cc = __builtin_tbegin(tdb)) == _HTM_TBEGIN_TRANSIENT
184
- && i++ < retry)
185
- __builtin_tx_assist(i);
186
-
187
- return cc;
188
- }
189
-
190
- #define __builtin_tbegin_retry(tdb, retry) \
191
- (__builtin_constant_p(tdb == 0) && tdb == 0 ? \
192
- __builtin_tbegin_retry_null(retry) : \
193
- __builtin_tbegin_retry_tdb(tdb, retry))
194
-
195
- static __inline int __attribute__((__always_inline__, __nodebug__))
196
- __builtin_tbegin_retry_nofloat_null (int retry)
197
- {
198
- int cc, i = 0;
199
-
200
- while ((cc = __builtin_tbegin_nofloat(0)) == _HTM_TBEGIN_TRANSIENT
201
- && i++ < retry)
202
- __builtin_tx_assist(i);
203
-
204
- return cc;
205
- }
206
-
207
- static __inline int __attribute__((__always_inline__, __nodebug__))
208
- __builtin_tbegin_retry_nofloat_tdb (void *tdb, int retry)
209
- {
210
- int cc, i = 0;
211
-
212
- while ((cc = __builtin_tbegin_nofloat(tdb)) == _HTM_TBEGIN_TRANSIENT
213
- && i++ < retry)
214
- __builtin_tx_assist(i);
215
-
216
- return cc;
217
- }
218
-
219
- #define __builtin_tbegin_retry_nofloat(tdb, retry) \
220
- (__builtin_constant_p(tdb == 0) && tdb == 0 ? \
221
- __builtin_tbegin_retry_nofloat_null(retry) : \
222
- __builtin_tbegin_retry_nofloat_tdb(tdb, retry))
223
-
224
- #endif /* __s390__ */
225
-
226
- #endif /* __HTMINTRIN_H */
@@ -1,363 +0,0 @@
1
- /*===---- htmxlintrin.h - XL compiler HTM execution 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
- #ifndef __HTMXLINTRIN_H
24
- #define __HTMXLINTRIN_H
25
-
26
- #ifndef __HTM__
27
- #error "HTM instruction set not enabled"
28
- #endif
29
-
30
- #include <htmintrin.h>
31
-
32
- #ifdef __powerpc__
33
-
34
- #ifdef __cplusplus
35
- extern "C" {
36
- #endif
37
-
38
- #define _TEXASR_PTR(TM_BUF) \
39
- ((texasr_t *)((TM_BUF)+0))
40
- #define _TEXASRU_PTR(TM_BUF) \
41
- ((texasru_t *)((TM_BUF)+0))
42
- #define _TEXASRL_PTR(TM_BUF) \
43
- ((texasrl_t *)((TM_BUF)+4))
44
- #define _TFIAR_PTR(TM_BUF) \
45
- ((tfiar_t *)((TM_BUF)+8))
46
-
47
- typedef char TM_buff_type[16];
48
-
49
- /* This macro can be used to determine whether a transaction was successfully
50
- started from the __TM_begin() and __TM_simple_begin() intrinsic functions
51
- below. */
52
- #define _HTM_TBEGIN_STARTED 1
53
-
54
- extern __inline long
55
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
56
- __TM_simple_begin (void)
57
- {
58
- if (__builtin_expect (__builtin_tbegin (0), 1))
59
- return _HTM_TBEGIN_STARTED;
60
- return 0;
61
- }
62
-
63
- extern __inline long
64
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
65
- __TM_begin (void* const TM_buff)
66
- {
67
- *_TEXASRL_PTR (TM_buff) = 0;
68
- if (__builtin_expect (__builtin_tbegin (0), 1))
69
- return _HTM_TBEGIN_STARTED;
70
- #ifdef __powerpc64__
71
- *_TEXASR_PTR (TM_buff) = __builtin_get_texasr ();
72
- #else
73
- *_TEXASRU_PTR (TM_buff) = __builtin_get_texasru ();
74
- *_TEXASRL_PTR (TM_buff) = __builtin_get_texasr ();
75
- #endif
76
- *_TFIAR_PTR (TM_buff) = __builtin_get_tfiar ();
77
- return 0;
78
- }
79
-
80
- extern __inline long
81
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
82
- __TM_end (void)
83
- {
84
- if (__builtin_expect (__builtin_tend (0), 1))
85
- return 1;
86
- return 0;
87
- }
88
-
89
- extern __inline void
90
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
91
- __TM_abort (void)
92
- {
93
- __builtin_tabort (0);
94
- }
95
-
96
- extern __inline void
97
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
98
- __TM_named_abort (unsigned char const code)
99
- {
100
- __builtin_tabort (code);
101
- }
102
-
103
- extern __inline void
104
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
105
- __TM_resume (void)
106
- {
107
- __builtin_tresume ();
108
- }
109
-
110
- extern __inline void
111
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
112
- __TM_suspend (void)
113
- {
114
- __builtin_tsuspend ();
115
- }
116
-
117
- extern __inline long
118
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
119
- __TM_is_user_abort (void* const TM_buff)
120
- {
121
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
122
- return _TEXASRU_ABORT (texasru);
123
- }
124
-
125
- extern __inline long
126
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
127
- __TM_is_named_user_abort (void* const TM_buff, unsigned char *code)
128
- {
129
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
130
-
131
- *code = _TEXASRU_FAILURE_CODE (texasru);
132
- return _TEXASRU_ABORT (texasru);
133
- }
134
-
135
- extern __inline long
136
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
137
- __TM_is_illegal (void* const TM_buff)
138
- {
139
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
140
- return _TEXASRU_DISALLOWED (texasru);
141
- }
142
-
143
- extern __inline long
144
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
145
- __TM_is_footprint_exceeded (void* const TM_buff)
146
- {
147
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
148
- return _TEXASRU_FOOTPRINT_OVERFLOW (texasru);
149
- }
150
-
151
- extern __inline long
152
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
153
- __TM_nesting_depth (void* const TM_buff)
154
- {
155
- texasrl_t texasrl;
156
-
157
- if (_HTM_STATE (__builtin_ttest ()) == _HTM_NONTRANSACTIONAL)
158
- {
159
- texasrl = *_TEXASRL_PTR (TM_buff);
160
- if (!_TEXASR_FAILURE_SUMMARY (texasrl))
161
- texasrl = 0;
162
- }
163
- else
164
- texasrl = (texasrl_t) __builtin_get_texasr ();
165
-
166
- return _TEXASR_TRANSACTION_LEVEL (texasrl);
167
- }
168
-
169
- extern __inline long
170
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
171
- __TM_is_nested_too_deep(void* const TM_buff)
172
- {
173
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
174
- return _TEXASRU_NESTING_OVERFLOW (texasru);
175
- }
176
-
177
- extern __inline long
178
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
179
- __TM_is_conflict(void* const TM_buff)
180
- {
181
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
182
- /* Return TEXASR bits 11 (Self-Induced Conflict) through
183
- 14 (Translation Invalidation Conflict). */
184
- return (_TEXASRU_EXTRACT_BITS (texasru, 14, 4)) ? 1 : 0;
185
- }
186
-
187
- extern __inline long
188
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
189
- __TM_is_failure_persistent(void* const TM_buff)
190
- {
191
- texasru_t texasru = *_TEXASRU_PTR (TM_buff);
192
- return _TEXASRU_FAILURE_PERSISTENT (texasru);
193
- }
194
-
195
- extern __inline long
196
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
197
- __TM_failure_address(void* const TM_buff)
198
- {
199
- return *_TFIAR_PTR (TM_buff);
200
- }
201
-
202
- extern __inline long long
203
- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
204
- __TM_failure_code(void* const TM_buff)
205
- {
206
- return *_TEXASR_PTR (TM_buff);
207
- }
208
-
209
- #ifdef __cplusplus
210
- }
211
- #endif
212
-
213
- #endif /* __powerpc__ */
214
-
215
- #ifdef __s390__
216
-
217
- #include <stdint.h>
218
-
219
- /* These intrinsics are being made available for compatibility with
220
- the IBM XL compiler. For documentation please see the "z/OS XL
221
- C/C++ Programming Guide" publically available on the web. */
222
-
223
- static __inline long __attribute__((__always_inline__, __nodebug__))
224
- __TM_simple_begin ()
225
- {
226
- return __builtin_tbegin_nofloat (0);
227
- }
228
-
229
- static __inline long __attribute__((__always_inline__, __nodebug__))
230
- __TM_begin (void* const tdb)
231
- {
232
- return __builtin_tbegin_nofloat (tdb);
233
- }
234
-
235
- static __inline long __attribute__((__always_inline__, __nodebug__))
236
- __TM_end ()
237
- {
238
- return __builtin_tend ();
239
- }
240
-
241
- static __inline void __attribute__((__always_inline__))
242
- __TM_abort ()
243
- {
244
- return __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE);
245
- }
246
-
247
- static __inline void __attribute__((__always_inline__, __nodebug__))
248
- __TM_named_abort (unsigned char const code)
249
- {
250
- return __builtin_tabort ((int)_HTM_FIRST_USER_ABORT_CODE + code);
251
- }
252
-
253
- static __inline void __attribute__((__always_inline__, __nodebug__))
254
- __TM_non_transactional_store (void* const addr, long long const value)
255
- {
256
- __builtin_non_tx_store ((uint64_t*)addr, (uint64_t)value);
257
- }
258
-
259
- static __inline long __attribute__((__always_inline__, __nodebug__))
260
- __TM_nesting_depth (void* const tdb_ptr)
261
- {
262
- int depth = __builtin_tx_nesting_depth ();
263
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
264
-
265
- if (depth != 0)
266
- return depth;
267
-
268
- if (tdb->format != 1)
269
- return 0;
270
- return tdb->nesting_depth;
271
- }
272
-
273
- /* Transaction failure diagnostics */
274
-
275
- static __inline long __attribute__((__always_inline__, __nodebug__))
276
- __TM_is_user_abort (void* const tdb_ptr)
277
- {
278
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
279
-
280
- if (tdb->format != 1)
281
- return 0;
282
-
283
- return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
284
- }
285
-
286
- static __inline long __attribute__((__always_inline__, __nodebug__))
287
- __TM_is_named_user_abort (void* const tdb_ptr, unsigned char* code)
288
- {
289
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
290
-
291
- if (tdb->format != 1)
292
- return 0;
293
-
294
- if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
295
- {
296
- *code = tdb->abort_code - _HTM_FIRST_USER_ABORT_CODE;
297
- return 1;
298
- }
299
- return 0;
300
- }
301
-
302
- static __inline long __attribute__((__always_inline__, __nodebug__))
303
- __TM_is_illegal (void* const tdb_ptr)
304
- {
305
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
306
-
307
- return (tdb->format == 1
308
- && (tdb->abort_code == 4 /* unfiltered program interruption */
309
- || tdb->abort_code == 11 /* restricted instruction */));
310
- }
311
-
312
- static __inline long __attribute__((__always_inline__, __nodebug__))
313
- __TM_is_footprint_exceeded (void* const tdb_ptr)
314
- {
315
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
316
-
317
- return (tdb->format == 1
318
- && (tdb->abort_code == 7 /* fetch overflow */
319
- || tdb->abort_code == 8 /* store overflow */));
320
- }
321
-
322
- static __inline long __attribute__((__always_inline__, __nodebug__))
323
- __TM_is_nested_too_deep (void* const tdb_ptr)
324
- {
325
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
326
-
327
- return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */
328
- }
329
-
330
- static __inline long __attribute__((__always_inline__, __nodebug__))
331
- __TM_is_conflict (void* const tdb_ptr)
332
- {
333
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
334
-
335
- return (tdb->format == 1
336
- && (tdb->abort_code == 9 /* fetch conflict */
337
- || tdb->abort_code == 10 /* store conflict */));
338
- }
339
-
340
- static __inline long __attribute__((__always_inline__, __nodebug__))
341
- __TM_is_failure_persistent (long const result)
342
- {
343
- return result == _HTM_TBEGIN_PERSISTENT;
344
- }
345
-
346
- static __inline long __attribute__((__always_inline__, __nodebug__))
347
- __TM_failure_address (void* const tdb_ptr)
348
- {
349
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
350
- return tdb->atia;
351
- }
352
-
353
- static __inline long __attribute__((__always_inline__, __nodebug__))
354
- __TM_failure_code (void* const tdb_ptr)
355
- {
356
- struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
357
-
358
- return tdb->abort_code;
359
- }
360
-
361
- #endif /* __s390__ */
362
-
363
- #endif /* __HTMXLINTRIN_H */
@@ -1,101 +0,0 @@
1
- /* ===-------- ia32intrin.h ---------------------------------------------------===
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 __X86INTRIN_H
25
- #error "Never use <ia32intrin.h> directly; include <x86intrin.h> instead."
26
- #endif
27
-
28
- #ifndef __IA32INTRIN_H
29
- #define __IA32INTRIN_H
30
-
31
- #ifdef __x86_64__
32
- static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
33
- __readeflags(void)
34
- {
35
- unsigned long long __res = 0;
36
- __asm__ __volatile__ ("pushf\n\t"
37
- "popq %0\n"
38
- :"=r"(__res)
39
- :
40
- :
41
- );
42
- return __res;
43
- }
44
-
45
- static __inline__ void __attribute__((__always_inline__, __nodebug__))
46
- __writeeflags(unsigned long long __f)
47
- {
48
- __asm__ __volatile__ ("pushq %0\n\t"
49
- "popf\n"
50
- :
51
- :"r"(__f)
52
- :"flags"
53
- );
54
- }
55
-
56
- #else /* !__x86_64__ */
57
- static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
58
- __readeflags(void)
59
- {
60
- unsigned int __res = 0;
61
- __asm__ __volatile__ ("pushf\n\t"
62
- "popl %0\n"
63
- :"=r"(__res)
64
- :
65
- :
66
- );
67
- return __res;
68
- }
69
-
70
- static __inline__ void __attribute__((__always_inline__, __nodebug__))
71
- __writeeflags(unsigned int __f)
72
- {
73
- __asm__ __volatile__ ("pushl %0\n\t"
74
- "popf\n"
75
- :
76
- :"r"(__f)
77
- :"flags"
78
- );
79
- }
80
- #endif /* !__x86_64__ */
81
-
82
- static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
83
- __rdpmc(int __A) {
84
- return __builtin_ia32_rdpmc(__A);
85
- }
86
-
87
- /* __rdtsc */
88
- static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
89
- __rdtsc(void) {
90
- return __builtin_ia32_rdtsc();
91
- }
92
-
93
- /* __rdtscp */
94
- static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
95
- __rdtscp(unsigned int *__A) {
96
- return __builtin_ia32_rdtscp(__A);
97
- }
98
-
99
- #define _rdtsc() __rdtsc()
100
-
101
- #endif /* __IA32INTRIN_H */