hillclimber 0.1.5__cp313-cp313-musllinux_1_2_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. hillclimber/__init__.py +39 -0
  2. hillclimber/actions.py +53 -0
  3. hillclimber/analysis.py +590 -0
  4. hillclimber/biases.py +293 -0
  5. hillclimber/calc.py +22 -0
  6. hillclimber/cvs.py +1070 -0
  7. hillclimber/interfaces.py +133 -0
  8. hillclimber/metadynamics.py +325 -0
  9. hillclimber/nodes.py +6 -0
  10. hillclimber/opes.py +359 -0
  11. hillclimber/selectors.py +230 -0
  12. hillclimber/virtual_atoms.py +341 -0
  13. hillclimber-0.1.5.dist-info/METADATA +210 -0
  14. hillclimber-0.1.5.dist-info/RECORD +472 -0
  15. hillclimber-0.1.5.dist-info/WHEEL +5 -0
  16. hillclimber-0.1.5.dist-info/entry_points.txt +8 -0
  17. hillclimber-0.1.5.dist-info/licenses/LICENSE +165 -0
  18. hillclimber-0.1.5.dist-info/sboms/auditwheel.cdx.json +1 -0
  19. hillclimber.libs/libgcc_s-2d945d6c.so.1 +0 -0
  20. hillclimber.libs/libgomp-1ede7ee7.so.1.0.0 +0 -0
  21. hillclimber.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
  22. plumed/__init__.py +104 -0
  23. plumed/_lib/bin/plumed +0 -0
  24. plumed/_lib/bin/plumed-config +9 -0
  25. plumed/_lib/bin/plumed-patch +9 -0
  26. plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
  27. plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
  28. plumed/_lib/include/plumed/asmjit/arch.h +228 -0
  29. plumed/_lib/include/plumed/asmjit/arm.h +43 -0
  30. plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
  31. plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
  32. plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
  33. plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
  34. plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
  35. plumed/_lib/include/plumed/asmjit/base.h +56 -0
  36. plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
  37. plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
  38. plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
  39. plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
  40. plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
  41. plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
  42. plumed/_lib/include/plumed/asmjit/func.h +1327 -0
  43. plumed/_lib/include/plumed/asmjit/globals.h +370 -0
  44. plumed/_lib/include/plumed/asmjit/inst.h +137 -0
  45. plumed/_lib/include/plumed/asmjit/logging.h +317 -0
  46. plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
  47. plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
  48. plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
  49. plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
  50. plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
  51. plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
  52. plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
  53. plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
  54. plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
  55. plumed/_lib/include/plumed/asmjit/x86.h +45 -0
  56. plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
  57. plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
  58. plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
  59. plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
  60. plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
  61. plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
  62. plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
  63. plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
  64. plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
  65. plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
  66. plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
  67. plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
  68. plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
  69. plumed/_lib/include/plumed/bias/Bias.h +82 -0
  70. plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
  71. plumed/_lib/include/plumed/blas/blas.h +253 -0
  72. plumed/_lib/include/plumed/blas/def_external.h +61 -0
  73. plumed/_lib/include/plumed/blas/def_internal.h +97 -0
  74. plumed/_lib/include/plumed/blas/real.h +49 -0
  75. plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
  76. plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
  77. plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
  78. plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
  79. plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
  80. plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
  81. plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
  82. plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
  83. plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
  84. plumed/_lib/include/plumed/config/Config.h +118 -0
  85. plumed/_lib/include/plumed/config/version.h +9 -0
  86. plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
  87. plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
  88. plumed/_lib/include/plumed/contour/FindContour.h +67 -0
  89. plumed/_lib/include/plumed/core/Action.h +540 -0
  90. plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
  91. plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
  92. plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
  93. plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
  94. plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
  95. plumed/_lib/include/plumed/core/ActionSet.h +163 -0
  96. plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
  97. plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
  98. plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
  99. plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
  100. plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
  101. plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
  102. plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
  103. plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
  104. plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
  105. plumed/_lib/include/plumed/core/CLTool.h +177 -0
  106. plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
  107. plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
  108. plumed/_lib/include/plumed/core/Colvar.h +115 -0
  109. plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
  110. plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
  111. plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
  112. plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
  113. plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
  114. plumed/_lib/include/plumed/core/GREX.h +61 -0
  115. plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
  116. plumed/_lib/include/plumed/core/Group.h +41 -0
  117. plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
  118. plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
  119. plumed/_lib/include/plumed/core/PbcAction.h +61 -0
  120. plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
  121. plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
  122. plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
  123. plumed/_lib/include/plumed/core/TargetDist.h +48 -0
  124. plumed/_lib/include/plumed/core/Value.h +547 -0
  125. plumed/_lib/include/plumed/core/WithCmd.h +93 -0
  126. plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
  127. plumed/_lib/include/plumed/drr/DRR.h +383 -0
  128. plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
  129. plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
  130. plumed/_lib/include/plumed/function/Custom.h +54 -0
  131. plumed/_lib/include/plumed/function/Function.h +85 -0
  132. plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
  133. plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
  134. plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
  135. plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
  136. plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
  137. plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
  138. plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
  139. plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
  140. plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
  141. plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
  142. plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
  143. plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
  144. plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
  145. plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
  146. plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
  147. plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
  148. plumed/_lib/include/plumed/lapack/def_external.h +207 -0
  149. plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
  150. plumed/_lib/include/plumed/lapack/lapack.h +899 -0
  151. plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
  152. plumed/_lib/include/plumed/lapack/real.h +50 -0
  153. plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
  154. plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
  155. plumed/_lib/include/plumed/lepton/Exception.h +93 -0
  156. plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
  157. plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
  158. plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
  159. plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
  160. plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
  161. plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
  162. plumed/_lib/include/plumed/lepton/Parser.h +111 -0
  163. plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
  164. plumed/_lib/include/plumed/mapping/Path.h +44 -0
  165. plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
  166. plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
  167. plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
  168. plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
  169. plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
  170. plumed/_lib/include/plumed/maze/Core.h +65 -0
  171. plumed/_lib/include/plumed/maze/Loss.h +86 -0
  172. plumed/_lib/include/plumed/maze/Member.h +66 -0
  173. plumed/_lib/include/plumed/maze/Memetic.h +799 -0
  174. plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
  175. plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
  176. plumed/_lib/include/plumed/maze/Tools.h +183 -0
  177. plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
  178. plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
  179. plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
  180. plumed/_lib/include/plumed/molfile/fastio.h +683 -0
  181. plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
  182. plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
  183. plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
  184. plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
  185. plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
  186. plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
  187. plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
  188. plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
  189. plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
  190. plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
  191. plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
  192. plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
  193. plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
  194. plumed/_lib/include/plumed/tools/Angle.h +52 -0
  195. plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
  196. plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
  197. plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
  198. plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
  199. plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
  200. plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
  201. plumed/_lib/include/plumed/tools/Citations.h +74 -0
  202. plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
  203. plumed/_lib/include/plumed/tools/Communicator.h +316 -0
  204. plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
  205. plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
  206. plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
  207. plumed/_lib/include/plumed/tools/Exception.h +406 -0
  208. plumed/_lib/include/plumed/tools/File.h +28 -0
  209. plumed/_lib/include/plumed/tools/FileBase.h +153 -0
  210. plumed/_lib/include/plumed/tools/FileTools.h +37 -0
  211. plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
  212. plumed/_lib/include/plumed/tools/Grid.h +638 -0
  213. plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
  214. plumed/_lib/include/plumed/tools/IFile.h +117 -0
  215. plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
  216. plumed/_lib/include/plumed/tools/Keywords.h +380 -0
  217. plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
  218. plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
  219. plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
  220. plumed/_lib/include/plumed/tools/Log.h +41 -0
  221. plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
  222. plumed/_lib/include/plumed/tools/Matrix.h +721 -0
  223. plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
  224. plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
  225. plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
  226. plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
  227. plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
  228. plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
  229. plumed/_lib/include/plumed/tools/OFile.h +286 -0
  230. plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
  231. plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
  232. plumed/_lib/include/plumed/tools/PDB.h +154 -0
  233. plumed/_lib/include/plumed/tools/Pbc.h +139 -0
  234. plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
  235. plumed/_lib/include/plumed/tools/RMSD.h +493 -0
  236. plumed/_lib/include/plumed/tools/Random.h +80 -0
  237. plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
  238. plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
  239. plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
  240. plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
  241. plumed/_lib/include/plumed/tools/Tensor.h +724 -0
  242. plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
  243. plumed/_lib/include/plumed/tools/Tools.h +638 -0
  244. plumed/_lib/include/plumed/tools/Torsion.h +55 -0
  245. plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
  246. plumed/_lib/include/plumed/tools/Tree.h +61 -0
  247. plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
  248. plumed/_lib/include/plumed/tools/Units.h +167 -0
  249. plumed/_lib/include/plumed/tools/Vector.h +433 -0
  250. plumed/_lib/include/plumed/tools/View.h +296 -0
  251. plumed/_lib/include/plumed/tools/View2D.h +100 -0
  252. plumed/_lib/include/plumed/tools/h36.h +39 -0
  253. plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
  254. plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
  255. plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
  256. plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
  257. plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
  258. plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
  259. plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
  260. plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
  261. plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
  262. plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
  263. plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
  264. plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
  265. plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
  266. plumed/_lib/include/plumed/ves/VesBias.h +545 -0
  267. plumed/_lib/include/plumed/ves/VesTools.h +142 -0
  268. plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
  269. plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
  270. plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
  271. plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
  272. plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
  273. plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
  274. plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
  275. plumed/_lib/lib/PythonCVInterface.so +0 -0
  276. plumed/_lib/lib/libplumed.a +0 -0
  277. plumed/_lib/lib/libplumed.so +0 -0
  278. plumed/_lib/lib/libplumedKernel.so +0 -0
  279. plumed/_lib/lib/libplumedWrapper.a +0 -0
  280. plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
  281. plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
  282. plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
  283. plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
  284. plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
  285. plumed/_lib/lib/plumed/modulefile +69 -0
  286. plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
  287. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
  288. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
  289. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
  290. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
  291. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
  292. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
  293. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
  294. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
  295. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  296. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  297. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
  298. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
  299. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
  300. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
  301. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
  302. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
  303. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
  304. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
  305. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  306. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  307. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
  308. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
  309. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
  310. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
  311. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  312. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  313. plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
  314. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
  315. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
  316. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  317. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  318. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
  319. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  320. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
  321. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
  322. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  323. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  324. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
  325. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
  326. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
  327. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
  328. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
  329. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
  330. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  331. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  332. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  333. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  334. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
  335. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
  336. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
  337. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
  338. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  339. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  340. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
  341. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
  342. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
  343. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
  344. plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
  345. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
  346. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
  347. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  348. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  349. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
  350. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  351. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
  352. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
  353. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  354. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  355. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
  356. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
  357. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
  358. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
  359. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
  360. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
  361. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  362. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  363. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  364. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  365. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
  366. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
  367. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
  368. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
  369. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  370. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  371. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
  372. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
  373. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
  374. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
  375. plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
  376. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
  377. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
  378. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
  379. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
  380. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
  381. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
  382. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
  383. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
  384. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
  385. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
  386. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
  387. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
  388. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
  389. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
  390. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
  391. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
  392. plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
  393. plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
  394. plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
  395. plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
  396. plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
  397. plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
  398. plumed/_lib/lib/plumed/patches/patch.sh +500 -0
  399. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
  400. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
  401. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
  402. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
  403. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
  404. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
  405. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  406. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
  407. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
  408. plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
  409. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
  410. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
  411. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
  412. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  413. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
  414. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  415. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
  416. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
  417. plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
  418. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
  419. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
  420. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
  421. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
  422. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
  423. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  424. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
  425. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  426. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
  427. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
  428. plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
  429. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
  430. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
  431. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
  432. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
  433. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
  434. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  435. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
  436. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  437. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
  438. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
  439. plumed/_lib/lib/plumed/plumed-config +9 -0
  440. plumed/_lib/lib/plumed/plumed-mklib +9 -0
  441. plumed/_lib/lib/plumed/plumed-newcv +9 -0
  442. plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
  443. plumed/_lib/lib/plumed/plumed-patch +9 -0
  444. plumed/_lib/lib/plumed/plumed-runtime +0 -0
  445. plumed/_lib/lib/plumed/plumed-selector +9 -0
  446. plumed/_lib/lib/plumed/plumed-vim2html +9 -0
  447. plumed/_lib/lib/plumed/scripts/config.sh +126 -0
  448. plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
  449. plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
  450. plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
  451. plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
  452. plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
  453. plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
  454. plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
  455. plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
  456. plumed/_lib/lib/plumed/src/config/config.txt +179 -0
  457. plumed/_lib/lib/plumed/src/lib/Plumed.cmake +8 -0
  458. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
  459. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
  460. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +5 -0
  461. plumed/_lib/lib/plumed/src/lib/Plumed.inc +8 -0
  462. plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
  463. plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
  464. plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +5 -0
  465. plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
  466. plumed/_plumed_core.cpython-311-aarch64-linux-musl.so +0 -0
  467. plumed/_plumed_core.cpython-312-aarch64-linux-musl.so +0 -0
  468. plumed/_plumed_core.cpython-313-aarch64-linux-musl.so +0 -0
  469. plumedCommunications.cpython-311-aarch64-linux-musl.so +0 -0
  470. plumedCommunications.cpython-312-aarch64-linux-musl.so +0 -0
  471. plumedCommunications.cpython-313-aarch64-linux-musl.so +0 -0
  472. plumedCommunications.pyi +431 -0
@@ -0,0 +1,971 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ Copyright (c) 2008-2017, Petr Kobalicek
3
+
4
+ This software is provided 'as-is', without any express or implied
5
+ warranty. In no event will the authors be held liable for any damages
6
+ arising from the use of this software.
7
+
8
+ Permission is granted to anyone to use this software for any purpose,
9
+ including commercial applications, and to alter it and redistribute it
10
+ freely, subject to the following restrictions:
11
+
12
+ 1. The origin of this software must not be misrepresented; you must not
13
+ claim that you wrote the original software. If you use this software
14
+ in a product, an acknowledgment in the product documentation would be
15
+ appreciated but is not required.
16
+ 2. Altered source versions must be plainly marked as such, and must not be
17
+ misrepresented as being the original software.
18
+ 3. This notice may not be removed or altered from any source distribution.
19
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
20
+ #ifndef __PLUMED_asmjit_asmjit_build_h
21
+ #define __PLUMED_asmjit_asmjit_build_h
22
+ // [AsmJit]
23
+ // Complete x86/x64 JIT and Remote Assembler for C++.
24
+ //
25
+ // [License]
26
+ // Zlib - See LICENSE.md file in the package.
27
+
28
+ // [Guard]
29
+ #ifndef _ASMJIT_BUILD_H
30
+ #define _ASMJIT_BUILD_H
31
+
32
+ // ============================================================================
33
+ // [asmjit::Build - Configuration]
34
+ // ============================================================================
35
+
36
+ // AsmJit is by default compiled only for a host processor for the purpose of
37
+ // JIT code generation. Both Assembler and CodeCompiler emitters are compiled
38
+ // by default. Preprocessor macros can be used to change the default behavior.
39
+
40
+ // External Config File
41
+ // --------------------
42
+ //
43
+ // Define in case your configuration is generated in an external file to be
44
+ // included.
45
+
46
+ #if defined(ASMJIT_CONFIG_FILE)
47
+ # include ASMJIT_CONFIG_FILE
48
+ #endif // ASMJIT_CONFIG_FILE
49
+
50
+ // AsmJit Static Builds and Embedding
51
+ // ----------------------------------
52
+ //
53
+ // These definitions can be used to enable static library build. Embed is used
54
+ // when AsmJit's source code is embedded directly in another project, implies
55
+ // static build as well.
56
+ //
57
+ // #define ASMJIT_EMBED // Asmjit is embedded (implies ASMJIT_STATIC).
58
+ // #define ASMJIT_STATIC // Define to enable static-library build.
59
+
60
+ // AsmJit Build Modes
61
+ // ------------------
62
+ //
63
+ // These definitions control the build mode and tracing support. The build mode
64
+ // should be auto-detected at compile time, but it's possible to override it in
65
+ // case that the auto-detection fails.
66
+ //
67
+ // Tracing is a feature that is never compiled by default and it's only used to
68
+ // debug AsmJit itself.
69
+ //
70
+ // #define ASMJIT_DEBUG // Define to enable debug-mode.
71
+ // #define ASMJIT_RELEASE // Define to enable release-mode.
72
+
73
+ // AsmJit Build Backends
74
+ // ---------------------
75
+ //
76
+ // These definitions control which backends to compile. If none of these is
77
+ // defined AsmJit will use host architecture by default (for JIT code generation).
78
+ //
79
+ // #define ASMJIT_BUILD_X86 // Define to enable X86 and X64 code-generation.
80
+ // #define ASMJIT_BUILD_ARM // Define to enable ARM32 and ARM64 code-generation.
81
+ // #define ASMJIT_BUILD_HOST // Define to enable host instruction set.
82
+
83
+ // AsmJit Build Features
84
+ // ---------------------
85
+ //
86
+ // Flags can be defined to disable standard features. These are handy especially
87
+ // when building AsmJit statically and some features are not needed or unwanted
88
+ // (like CodeCompiler).
89
+ //
90
+ // AsmJit features are enabled by default.
91
+ // #define ASMJIT_DISABLE_COMPILER // Disable CodeCompiler (completely).
92
+ // #define ASMJIT_DISABLE_LOGGING // Disable logging and formatting (completely).
93
+ // #define ASMJIT_DISABLE_TEXT // Disable everything that contains text
94
+ // // representation (instructions, errors, ...).
95
+ // #define ASMJIT_DISABLE_VALIDATION // Disable Validation (completely).
96
+
97
+ // Prevent compile-time errors caused by misconfiguration.
98
+ #if defined(ASMJIT_DISABLE_TEXT) && !defined(ASMJIT_DISABLE_LOGGING)
99
+ # error "[asmjit] ASMJIT_DISABLE_TEXT requires ASMJIT_DISABLE_LOGGING to be defined."
100
+ #endif // ASMJIT_DISABLE_TEXT && !ASMJIT_DISABLE_LOGGING
101
+
102
+ // Detect ASMJIT_DEBUG and ASMJIT_RELEASE if not forced from outside.
103
+ #if !defined(ASMJIT_DEBUG) && !defined(ASMJIT_RELEASE)
104
+ # if !defined(NDEBUG)
105
+ # define ASMJIT_DEBUG
106
+ # else
107
+ # define ASMJIT_RELEASE
108
+ # endif
109
+ #endif
110
+
111
+ // ASMJIT_EMBED implies ASMJIT_STATIC.
112
+ #if 1 && !defined(ASMJIT_STATIC)
113
+ # define ASMJIT_STATIC
114
+ #endif
115
+
116
+ // ============================================================================
117
+ // [asmjit::Build - VERSION]
118
+ // ============================================================================
119
+
120
+ // [@VERSION{@]
121
+ #define ASMJIT_VERSION_MAJOR 1
122
+ #define ASMJIT_VERSION_MINOR 0
123
+ #define ASMJIT_VERSION_PATCH 0
124
+ #define ASMJIT_VERSION_STRING "1.0.0"
125
+ // [@VERSION}@]
126
+
127
+ // ============================================================================
128
+ // [asmjit::Build - WIN32]
129
+ // ============================================================================
130
+
131
+ // [@WIN32_CRT_NO_DEPRECATE{@]
132
+ #if defined(_MSC_VER) && defined(ASMJIT_EXPORTS)
133
+ # if !defined(_CRT_SECURE_NO_DEPRECATE)
134
+ # define _CRT_SECURE_NO_DEPRECATE
135
+ # endif
136
+ # if !defined(_CRT_SECURE_NO_WARNINGS)
137
+ # define _CRT_SECURE_NO_WARNINGS
138
+ # endif
139
+ #endif
140
+ // [@WIN32_CRT_NO_DEPRECATE}@]
141
+
142
+ // [@WIN32_LEAN_AND_MEAN{@]
143
+ #if (defined(_WIN32) || defined(_WINDOWS)) && !defined(_WINDOWS_)
144
+ # if !defined(WIN32_LEAN_AND_MEAN)
145
+ # define WIN32_LEAN_AND_MEAN
146
+ # define ASMJIT_UNDEF_WIN32_LEAN_AND_MEAN
147
+ # endif
148
+ # if !defined(NOMINMAX)
149
+ # define NOMINMAX
150
+ # define ASMJIT_UNDEF_NOMINMAX
151
+ # endif
152
+ # include <windows.h>
153
+ # if defined(ASMJIT_UNDEF_NOMINMAX)
154
+ # undef NOMINMAX
155
+ # undef ASMJIT_UNDEF_NOMINMAX
156
+ # endif
157
+ # if defined(ASMJIT_UNDEF_WIN32_LEAN_AND_MEAN)
158
+ # undef WIN32_LEAN_AND_MEAN
159
+ # undef ASMJIT_UNDEF_WIN32_LEAN_AND_MEAN
160
+ # endif
161
+ #endif
162
+ // [@WIN32_LEAN_AND_MEAN}@]
163
+
164
+ // ============================================================================
165
+ // [asmjit::Build - OS]
166
+ // ============================================================================
167
+
168
+ // [@OS{@]
169
+ #if defined(_WIN32) || defined(_WINDOWS)
170
+ #define ASMJIT_OS_WINDOWS (1)
171
+ #else
172
+ #define ASMJIT_OS_WINDOWS (0)
173
+ #endif
174
+
175
+ #if defined(__APPLE__)
176
+ # include <TargetConditionals.h>
177
+ # define ASMJIT_OS_MAC (TARGET_OS_MAC)
178
+ # define ASMJIT_OS_IOS (TARGET_OS_IPHONE)
179
+ #else
180
+ # define ASMJIT_OS_MAC (0)
181
+ # define ASMJIT_OS_IOS (0)
182
+ #endif
183
+
184
+ #if defined(__ANDROID__)
185
+ # define ASMJIT_OS_ANDROID (1)
186
+ #else
187
+ # define ASMJIT_OS_ANDROID (0)
188
+ #endif
189
+
190
+ #if defined(__linux__) || defined(__ANDROID__)
191
+ # define ASMJIT_OS_LINUX (1)
192
+ #else
193
+ # define ASMJIT_OS_LINUX (0)
194
+ #endif
195
+
196
+ #if defined(__DragonFly__)
197
+ # define ASMJIT_OS_DRAGONFLYBSD (1)
198
+ #else
199
+ # define ASMJIT_OS_DRAGONFLYBSD (0)
200
+ #endif
201
+
202
+ #if defined(__FreeBSD__)
203
+ # define ASMJIT_OS_FREEBSD (1)
204
+ #else
205
+ # define ASMJIT_OS_FREEBSD (0)
206
+ #endif
207
+
208
+ #if defined(__NetBSD__)
209
+ # define ASMJIT_OS_NETBSD (1)
210
+ #else
211
+ # define ASMJIT_OS_NETBSD (0)
212
+ #endif
213
+
214
+ #if defined(__OpenBSD__)
215
+ # define ASMJIT_OS_OPENBSD (1)
216
+ #else
217
+ # define ASMJIT_OS_OPENBSD (0)
218
+ #endif
219
+
220
+ #if defined(__QNXNTO__)
221
+ # define ASMJIT_OS_QNX (1)
222
+ #else
223
+ # define ASMJIT_OS_QNX (0)
224
+ #endif
225
+
226
+ #if defined(__sun)
227
+ # define ASMJIT_OS_SOLARIS (1)
228
+ #else
229
+ # define ASMJIT_OS_SOLARIS (0)
230
+ #endif
231
+
232
+ #if defined(__CYGWIN__)
233
+ # define ASMJIT_OS_CYGWIN (1)
234
+ #else
235
+ # define ASMJIT_OS_CYGWIN (0)
236
+ #endif
237
+
238
+ #define ASMJIT_OS_BSD ( \
239
+ ASMJIT_OS_FREEBSD || \
240
+ ASMJIT_OS_DRAGONFLYBSD || \
241
+ ASMJIT_OS_NETBSD || \
242
+ ASMJIT_OS_OPENBSD || \
243
+ ASMJIT_OS_MAC)
244
+ #define ASMJIT_OS_POSIX (!ASMJIT_OS_WINDOWS)
245
+ // [@OS}@]
246
+
247
+ // ============================================================================
248
+ // [asmjit::Build - ARCH]
249
+ // ============================================================================
250
+
251
+ // [@ARCH{@]
252
+ // \def ASMJIT_ARCH_ARM32
253
+ // True if the target architecture is a 32-bit ARM.
254
+ //
255
+ // \def ASMJIT_ARCH_ARM64
256
+ // True if the target architecture is a 64-bit ARM.
257
+ //
258
+ // \def ASMJIT_ARCH_X86
259
+ // True if the target architecture is a 32-bit X86/IA32
260
+ //
261
+ // \def ASMJIT_ARCH_X64
262
+ // True if the target architecture is a 64-bit X64/AMD64
263
+ //
264
+ // \def ASMJIT_ARCH_LE
265
+ // True if the target architecture is little endian.
266
+ //
267
+ // \def ASMJIT_ARCH_BE
268
+ // True if the target architecture is big endian.
269
+ //
270
+ // \def ASMJIT_ARCH_64BIT
271
+ // True if the target architecture is 64-bit.
272
+
273
+ #if (defined(_M_X64 ) || defined(__x86_64) || defined(__x86_64__) || \
274
+ defined(_M_AMD64) || defined(__amd64 ) || defined(__amd64__ ))
275
+ # define ASMJIT_ARCH_X64 1
276
+ #else
277
+ # define ASMJIT_ARCH_X64 0
278
+ #endif
279
+
280
+ #if (defined(_M_IX86 ) || defined(__X86__ ) || defined(__i386 ) || \
281
+ defined(__IA32__) || defined(__I86__ ) || defined(__i386__) || \
282
+ defined(__i486__) || defined(__i586__) || defined(__i686__))
283
+ # define ASMJIT_ARCH_X86 (!ASMJIT_ARCH_X64)
284
+ #else
285
+ # define ASMJIT_ARCH_X86 0
286
+ #endif
287
+
288
+ #if defined(__aarch64__)
289
+ # define ASMJIT_ARCH_ARM64 1
290
+ #else
291
+ # define ASMJIT_ARCH_ARM64 0
292
+ #endif
293
+
294
+ #if (defined(_M_ARM ) || defined(__arm ) || defined(__thumb__ ) || \
295
+ defined(_M_ARMT ) || defined(__arm__ ) || defined(__thumb2__))
296
+ # define ASMJIT_ARCH_ARM32 (!ASMJIT_ARCH_ARM64)
297
+ #else
298
+ # define ASMJIT_ARCH_ARM32 0
299
+ #endif
300
+
301
+ #define ASMJIT_ARCH_LE ( \
302
+ ASMJIT_ARCH_X86 || \
303
+ ASMJIT_ARCH_X64 || \
304
+ ASMJIT_ARCH_ARM32 || \
305
+ ASMJIT_ARCH_ARM64 )
306
+ #define ASMJIT_ARCH_BE (!(ASMJIT_ARCH_LE))
307
+ #define ASMJIT_ARCH_64BIT (ASMJIT_ARCH_X64 || ASMJIT_ARCH_ARM64)
308
+ // [@ARCH}@]
309
+
310
+ // [@ARCH_UNALIGNED_RW{@]
311
+ // \def ASMJIT_ARCH_UNALIGNED_16
312
+ // True if the target architecture allows unaligned 16-bit reads and writes.
313
+ //
314
+ // \def ASMJIT_ARCH_UNALIGNED_32
315
+ // True if the target architecture allows unaligned 32-bit reads and writes.
316
+ //
317
+ // \def ASMJIT_ARCH_UNALIGNED_64
318
+ // True if the target architecture allows unaligned 64-bit reads and writes.
319
+
320
+ #define ASMJIT_ARCH_UNALIGNED_16 (ASMJIT_ARCH_X86 || ASMJIT_ARCH_X64)
321
+ #define ASMJIT_ARCH_UNALIGNED_32 (ASMJIT_ARCH_X86 || ASMJIT_ARCH_X64)
322
+ #define ASMJIT_ARCH_UNALIGNED_64 (ASMJIT_ARCH_X86 || ASMJIT_ARCH_X64)
323
+ // [@ARCH_UNALIGNED_RW}@]
324
+
325
+ // ============================================================================
326
+ // [asmjit::Build - CC]
327
+ // ============================================================================
328
+
329
+ // [@CC{@]
330
+ // \def ASMJIT_CC_CLANG
331
+ // Non-zero if the detected C++ compiler is CLANG (contains normalized CLANG version).
332
+ //
333
+ // \def ASMJIT_CC_CODEGEAR
334
+ // Non-zero if the detected C++ compiler is CODEGEAR or BORLAND (version not normalized).
335
+ //
336
+ // \def ASMJIT_CC_INTEL
337
+ // Non-zero if the detected C++ compiler is INTEL (version not normalized).
338
+ //
339
+ // \def ASMJIT_CC_GCC
340
+ // Non-zero if the detected C++ compiler is GCC (contains normalized GCC version).
341
+ //
342
+ // \def ASMJIT_CC_MSC
343
+ // Non-zero if the detected C++ compiler is MSC (contains normalized MSC version).
344
+ //
345
+ // \def ASMJIT_CC_MINGW
346
+ // Non-zero if the detected C++ compiler is MINGW32 (set to 32) or MINGW64 (set to 64).
347
+
348
+ #define ASMJIT_CC_CLANG 0
349
+ #define ASMJIT_CC_CODEGEAR 0
350
+ #define ASMJIT_CC_GCC 0
351
+ #define ASMJIT_CC_INTEL 0
352
+ #define ASMJIT_CC_MSC 0
353
+
354
+ // Intel masquerades as GCC, so check for it first.
355
+ #if defined(__INTEL_COMPILER)
356
+ # undef ASMJIT_CC_INTEL
357
+ # define ASMJIT_CC_INTEL __INTEL_COMPILER
358
+ #elif defined(__CODEGEARC__)
359
+ # undef ASMJIT_CC_CODEGEAR
360
+ # define ASMJIT_CC_CODEGEAR (__CODEGEARC__)
361
+ #elif defined(__BORLANDC__)
362
+ # undef ASMJIT_CC_CODEGEAR
363
+ # define ASMJIT_CC_CODEGEAR (__BORLANDC__)
364
+ #elif defined(__clang__) && defined(__clang_minor__)
365
+ # undef ASMJIT_CC_CLANG
366
+ # define ASMJIT_CC_CLANG (__clang_major__ * 10000000 + __clang_minor__ * 100000 + __clang_patchlevel__)
367
+ #elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
368
+ # undef ASMJIT_CC_GCC
369
+ # define ASMJIT_CC_GCC (__GNUC__ * 10000000 + __GNUC_MINOR__ * 100000 + __GNUC_PATCHLEVEL__)
370
+ #elif defined(_MSC_VER) && defined(_MSC_FULL_VER)
371
+ # undef ASMJIT_CC_MSC
372
+ # if _MSC_VER == _MSC_FULL_VER / 10000
373
+ # define ASMJIT_CC_MSC (_MSC_VER * 100000 + (_MSC_FULL_VER % 10000))
374
+ # else
375
+ # define ASMJIT_CC_MSC (_MSC_VER * 100000 + (_MSC_FULL_VER % 100000))
376
+ # endif
377
+ #else
378
+ # error "[asmjit] Unable to detect the C/C++ compiler."
379
+ #endif
380
+
381
+ #if ASMJIT_CC_INTEL && (defined(__GNUC__) || defined(__clang__))
382
+ # define ASMJIT_CC_INTEL_COMPAT_MODE 1
383
+ # else
384
+ # define ASMJIT_CC_INTEL_COMPAT_MODE 0
385
+ #endif
386
+
387
+ #define ASMJIT_CC_CODEGEAR_EQ(x, y) (ASMJIT_CC_CODEGEAR == (((x) << 8) + (y)))
388
+ #define ASMJIT_CC_CODEGEAR_GE(x, y) (ASMJIT_CC_CODEGEAR >= (((x) << 8) + (y)))
389
+
390
+ #define ASMJIT_CC_CLANG_EQ(x, y, z) (ASMJIT_CC_CLANG == ((x) * 10000000 + (y) * 100000 + (z)))
391
+ #define ASMJIT_CC_CLANG_GE(x, y, z) (ASMJIT_CC_CLANG >= ((x) * 10000000 + (y) * 100000 + (z)))
392
+
393
+ #define ASMJIT_CC_GCC_EQ(x, y, z) (ASMJIT_CC_GCC == ((x) * 10000000 + (y) * 100000 + (z)))
394
+ #define ASMJIT_CC_GCC_GE(x, y, z) (ASMJIT_CC_GCC >= ((x) * 10000000 + (y) * 100000 + (z)))
395
+
396
+ #define ASMJIT_CC_INTEL_EQ(x, y) (ASMJIT_CC_INTEL == (((x) * 100) + (y)))
397
+ #define ASMJIT_CC_INTEL_GE(x, y) (ASMJIT_CC_INTEL >= (((x) * 100) + (y)))
398
+
399
+ #define ASMJIT_CC_MSC_EQ(x, y, z) (ASMJIT_CC_MSC == ((x) * 10000000 + (y) * 100000 + (z)))
400
+ #define ASMJIT_CC_MSC_GE(x, y, z) (ASMJIT_CC_MSC >= ((x) * 10000000 + (y) * 100000 + (z)))
401
+
402
+ #if defined(__MINGW64__)
403
+ # define ASMJIT_CC_MINGW 64
404
+ #elif defined(__MINGW32__)
405
+ # define ASMJIT_CC_MINGW 32
406
+ #else
407
+ # define ASMJIT_CC_MINGW 0
408
+ #endif
409
+
410
+ #if defined(__cplusplus)
411
+ # if __cplusplus >= 201103L
412
+ # define ASMJIT_CC_CXX_VERSION __cplusplus
413
+ # elif defined(__GXX_EXPERIMENTAL_CXX0X__) || ASMJIT_CC_MSC_GE(18, 0, 0) || ASMJIT_CC_INTEL_GE(14, 0)
414
+ # define ASMJIT_CC_CXX_VERSION 201103L
415
+ # else
416
+ # define ASMJIT_CC_CXX_VERSION 199711L
417
+ # endif
418
+ #endif
419
+
420
+ #if !defined(ASMJIT_CC_CXX_VERSION)
421
+ # define ASMJIT_CC_CXX_VERSION 0
422
+ #endif
423
+ // [@CC}@]
424
+
425
+ // [@CC_FEATURES{@]
426
+ #if ASMJIT_CC_CLANG
427
+ # define ASMJIT_CC_HAS_ATTRIBUTE (1)
428
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALIGNED (__has_attribute(__aligned__))
429
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(__always_inline__))
430
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE (__has_attribute(__noinline__))
431
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NORETURN (__has_attribute(__noreturn__))
432
+ # define ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE (__has_attribute(__optimize__))
433
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME (__has_builtin(__builtin_assume))
434
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME_ALIGNED (__has_builtin(__builtin_assume_aligned))
435
+ # define ASMJIT_CC_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect))
436
+ # define ASMJIT_CC_HAS_BUILTIN_UNREACHABLE (__has_builtin(__builtin_unreachable))
437
+ # define ASMJIT_CC_HAS_ALIGNAS (__has_extension(__cxx_alignas__))
438
+ # define ASMJIT_CC_HAS_ALIGNOF (__has_extension(__cxx_alignof__))
439
+ # define ASMJIT_CC_HAS_CONSTEXPR (__has_extension(__cxx_constexpr__))
440
+ # define ASMJIT_CC_HAS_DECLTYPE (__has_extension(__cxx_decltype__))
441
+ # define ASMJIT_CC_HAS_DEFAULT_FUNCTION (__has_extension(__cxx_defaulted_functions__))
442
+ # define ASMJIT_CC_HAS_DELETE_FUNCTION (__has_extension(__cxx_deleted_functions__))
443
+ # define ASMJIT_CC_HAS_FINAL (__has_extension(__cxx_override_control__))
444
+ # define ASMJIT_CC_HAS_INITIALIZER_LIST (__has_extension(__cxx_generalized_initializers__))
445
+ # define ASMJIT_CC_HAS_LAMBDA (__has_extension(__cxx_lambdas__))
446
+ # define ASMJIT_CC_HAS_NATIVE_CHAR (1)
447
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (1)
448
+ # define ASMJIT_CC_HAS_NATIVE_CHAR16_T (__has_extension(__cxx_unicode_literals__))
449
+ # define ASMJIT_CC_HAS_NATIVE_CHAR32_T (__has_extension(__cxx_unicode_literals__))
450
+ # define ASMJIT_CC_HAS_NOEXCEPT (__has_extension(__cxx_noexcept__))
451
+ # define ASMJIT_CC_HAS_NULLPTR (__has_extension(__cxx_nullptr__))
452
+ # define ASMJIT_CC_HAS_OVERRIDE (__has_extension(__cxx_override_control__))
453
+ # define ASMJIT_CC_HAS_RVALUE (__has_extension(__cxx_rvalue_references__))
454
+ # define ASMJIT_CC_HAS_STATIC_ASSERT (__has_extension(__cxx_static_assert__))
455
+ # define ASMJIT_CC_HAS_VARIADIC_TEMPLATES (__has_extension(__cxx_variadic_templates__))
456
+ #endif
457
+
458
+ #if ASMJIT_CC_CODEGEAR
459
+ # define ASMJIT_CC_HAS_DECLSPEC_ALIGN (ASMJIT_CC_CODEGEAR >= 0x0610)
460
+ # define ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE (0)
461
+ # define ASMJIT_CC_HAS_DECLSPEC_NOINLINE (0)
462
+ # define ASMJIT_CC_HAS_DECLSPEC_NORETURN (ASMJIT_CC_CODEGEAR >= 0x0610)
463
+ # define ASMJIT_CC_HAS_ALIGNAS (0)
464
+ # define ASMJIT_CC_HAS_ALIGNOF (0)
465
+ # define ASMJIT_CC_HAS_CONSTEXPR (0)
466
+ # define ASMJIT_CC_HAS_DECLTYPE (ASMJIT_CC_CODEGEAR >= 0x0610)
467
+ # define ASMJIT_CC_HAS_DEFAULT_FUNCTION (0)
468
+ # define ASMJIT_CC_HAS_DELETE_FUNCTION (0)
469
+ # define ASMJIT_CC_HAS_FINAL (0)
470
+ # define ASMJIT_CC_HAS_INITIALIZER_LIST (0)
471
+ # define ASMJIT_CC_HAS_LAMBDA (0)
472
+ # define ASMJIT_CC_HAS_NATIVE_CHAR (1)
473
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (1)
474
+ # define ASMJIT_CC_HAS_NATIVE_CHAR16_T (0)
475
+ # define ASMJIT_CC_HAS_NATIVE_CHAR32_T (0)
476
+ # define ASMJIT_CC_HAS_NOEXCEPT (0)
477
+ # define ASMJIT_CC_HAS_NULLPTR (0)
478
+ # define ASMJIT_CC_HAS_OVERRIDE (0)
479
+ # define ASMJIT_CC_HAS_RVALUE (ASMJIT_CC_CODEGEAR >= 0x0610)
480
+ # define ASMJIT_CC_HAS_STATIC_ASSERT (ASMJIT_CC_CODEGEAR >= 0x0610)
481
+ # define ASMJIT_CC_HAS_VARIADIC_TEMPLATES (0)
482
+ #endif
483
+
484
+ #if ASMJIT_CC_GCC
485
+ # define ASMJIT_CC_HAS_ATTRIBUTE (1)
486
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALIGNED (ASMJIT_CC_GCC_GE(2, 7, 0))
487
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE (ASMJIT_CC_GCC_GE(4, 4, 0) && !ASMJIT_CC_MINGW)
488
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE (ASMJIT_CC_GCC_GE(3, 4, 0) && !ASMJIT_CC_MINGW)
489
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NORETURN (ASMJIT_CC_GCC_GE(2, 5, 0))
490
+ # define ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE (ASMJIT_CC_GCC_GE(4, 4, 0))
491
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME (0)
492
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME_ALIGNED (ASMJIT_CC_GCC_GE(4, 7, 0))
493
+ # define ASMJIT_CC_HAS_BUILTIN_EXPECT (1)
494
+ # define ASMJIT_CC_HAS_BUILTIN_UNREACHABLE (ASMJIT_CC_GCC_GE(4, 5, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
495
+ # define ASMJIT_CC_HAS_ALIGNAS (ASMJIT_CC_GCC_GE(4, 8, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
496
+ # define ASMJIT_CC_HAS_ALIGNOF (ASMJIT_CC_GCC_GE(4, 8, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
497
+ # define ASMJIT_CC_HAS_CONSTEXPR (ASMJIT_CC_GCC_GE(4, 6, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
498
+ # define ASMJIT_CC_HAS_DECLTYPE (ASMJIT_CC_GCC_GE(4, 3, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
499
+ # define ASMJIT_CC_HAS_DEFAULT_FUNCTION (ASMJIT_CC_GCC_GE(4, 4, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
500
+ # define ASMJIT_CC_HAS_DELETE_FUNCTION (ASMJIT_CC_GCC_GE(4, 4, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
501
+ # define ASMJIT_CC_HAS_FINAL (ASMJIT_CC_GCC_GE(4, 7, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
502
+ # define ASMJIT_CC_HAS_INITIALIZER_LIST (ASMJIT_CC_GCC_GE(4, 4, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
503
+ # define ASMJIT_CC_HAS_LAMBDA (ASMJIT_CC_GCC_GE(4, 5, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
504
+ # define ASMJIT_CC_HAS_NATIVE_CHAR (1)
505
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (1)
506
+ # define ASMJIT_CC_HAS_NATIVE_CHAR16_T (ASMJIT_CC_GCC_GE(4, 5, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
507
+ # define ASMJIT_CC_HAS_NATIVE_CHAR32_T (ASMJIT_CC_GCC_GE(4, 5, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
508
+ # define ASMJIT_CC_HAS_NOEXCEPT (ASMJIT_CC_GCC_GE(4, 6, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
509
+ # define ASMJIT_CC_HAS_NULLPTR (ASMJIT_CC_GCC_GE(4, 6, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
510
+ # define ASMJIT_CC_HAS_OVERRIDE (ASMJIT_CC_GCC_GE(4, 7, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
511
+ # define ASMJIT_CC_HAS_RVALUE (ASMJIT_CC_GCC_GE(4, 3, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
512
+ # define ASMJIT_CC_HAS_STATIC_ASSERT (ASMJIT_CC_GCC_GE(4, 3, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
513
+ # define ASMJIT_CC_HAS_VARIADIC_TEMPLATES (ASMJIT_CC_GCC_GE(4, 3, 0) && ASMJIT_CC_CXX_VERSION >= 201103L)
514
+ #endif
515
+
516
+ #if ASMJIT_CC_INTEL
517
+ # define ASMJIT_CC_HAS_ATTRIBUTE (ASMJIT_CC_INTEL_COMPAT_MODE)
518
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALIGNED (ASMJIT_CC_INTEL_COMPAT_MODE)
519
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE (ASMJIT_CC_INTEL_COMPAT_MODE)
520
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE (ASMJIT_CC_INTEL_COMPAT_MODE)
521
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NORETURN (ASMJIT_CC_INTEL_COMPAT_MODE)
522
+ # define ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE (ASMJIT_CC_INTEL_COMPAT_MODE)
523
+ # define ASMJIT_CC_HAS_BUILTIN_EXPECT (ASMJIT_CC_INTEL_COMPAT_MODE)
524
+ # define ASMJIT_CC_HAS_DECLSPEC_ALIGN (ASMJIT_CC_INTEL_COMPAT_MODE == 0)
525
+ # define ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE (ASMJIT_CC_INTEL_COMPAT_MODE == 0)
526
+ # define ASMJIT_CC_HAS_DECLSPEC_NOINLINE (ASMJIT_CC_INTEL_COMPAT_MODE == 0)
527
+ # define ASMJIT_CC_HAS_DECLSPEC_NORETURN (ASMJIT_CC_INTEL_COMPAT_MODE == 0)
528
+ # define ASMJIT_CC_HAS_ASSUME (1)
529
+ # define ASMJIT_CC_HAS_ASSUME_ALIGNED (1)
530
+ # define ASMJIT_CC_HAS_ALIGNAS (ASMJIT_CC_INTEL >= 1500)
531
+ # define ASMJIT_CC_HAS_ALIGNOF (ASMJIT_CC_INTEL >= 1500)
532
+ # define ASMJIT_CC_HAS_CONSTEXPR (ASMJIT_CC_INTEL >= 1400)
533
+ # define ASMJIT_CC_HAS_DECLTYPE (ASMJIT_CC_INTEL >= 1200)
534
+ # define ASMJIT_CC_HAS_DEFAULT_FUNCTION (ASMJIT_CC_INTEL >= 1200)
535
+ # define ASMJIT_CC_HAS_DELETE_FUNCTION (ASMJIT_CC_INTEL >= 1200)
536
+ # define ASMJIT_CC_HAS_FINAL (ASMJIT_CC_INTEL >= 1400)
537
+ # define ASMJIT_CC_HAS_INITIALIZER_LIST (ASMJIT_CC_INTEL >= 1400)
538
+ # define ASMJIT_CC_HAS_LAMBDA (ASMJIT_CC_INTEL >= 1200)
539
+ # define ASMJIT_CC_HAS_NATIVE_CHAR (1)
540
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (1)
541
+ # define ASMJIT_CC_HAS_NATIVE_CHAR16_T (ASMJIT_CC_INTEL >= 1400 || (ASMJIT_CC_INTEL_COMPAT_MODE > 0 && ASMJIT_CC_INTEL >= 1206))
542
+ # define ASMJIT_CC_HAS_NATIVE_CHAR32_T (ASMJIT_CC_INTEL >= 1400 || (ASMJIT_CC_INTEL_COMPAT_MODE > 0 && ASMJIT_CC_INTEL >= 1206))
543
+ # define ASMJIT_CC_HAS_NOEXCEPT (ASMJIT_CC_INTEL >= 1400)
544
+ # define ASMJIT_CC_HAS_NULLPTR (ASMJIT_CC_INTEL >= 1206)
545
+ # define ASMJIT_CC_HAS_OVERRIDE (ASMJIT_CC_INTEL >= 1400)
546
+ # define ASMJIT_CC_HAS_RVALUE (ASMJIT_CC_INTEL >= 1110)
547
+ # define ASMJIT_CC_HAS_STATIC_ASSERT (ASMJIT_CC_INTEL >= 1110)
548
+ # define ASMJIT_CC_HAS_VARIADIC_TEMPLATES (ASMJIT_CC_INTEL >= 1206)
549
+ #endif
550
+
551
+ #if ASMJIT_CC_MSC
552
+ # define ASMJIT_CC_HAS_DECLSPEC_ALIGN (1)
553
+ # define ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE (1)
554
+ # define ASMJIT_CC_HAS_DECLSPEC_NOINLINE (1)
555
+ # define ASMJIT_CC_HAS_DECLSPEC_NORETURN (1)
556
+ # define ASMJIT_CC_HAS_ASSUME (1)
557
+ # define ASMJIT_CC_HAS_ASSUME_ALIGNED (0)
558
+ # define ASMJIT_CC_HAS_ALIGNAS (ASMJIT_CC_MSC_GE(19, 0, 0))
559
+ # define ASMJIT_CC_HAS_ALIGNOF (ASMJIT_CC_MSC_GE(19, 0, 0))
560
+ # define ASMJIT_CC_HAS_CONSTEXPR (ASMJIT_CC_MSC_GE(19, 0, 0))
561
+ # define ASMJIT_CC_HAS_DECLTYPE (ASMJIT_CC_MSC_GE(16, 0, 0))
562
+ # define ASMJIT_CC_HAS_DEFAULT_FUNCTION (ASMJIT_CC_MSC_GE(18, 0, 0))
563
+ # define ASMJIT_CC_HAS_DELETE_FUNCTION (ASMJIT_CC_MSC_GE(18, 0, 0))
564
+ # define ASMJIT_CC_HAS_FINAL (ASMJIT_CC_MSC_GE(14, 0, 0))
565
+ # define ASMJIT_CC_HAS_INITIALIZER_LIST (ASMJIT_CC_MSC_GE(18, 0, 0))
566
+ # define ASMJIT_CC_HAS_LAMBDA (ASMJIT_CC_MSC_GE(16, 0, 0))
567
+ # define ASMJIT_CC_HAS_NATIVE_CHAR (1)
568
+ # if defined(_NATIVE_WCHAR_T_DEFINED)
569
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (1)
570
+ # else
571
+ # define ASMJIT_CC_HAS_NATIVE_WCHAR_T (0)
572
+ # endif
573
+ # define ASMJIT_CC_HAS_NATIVE_CHAR16_T (ASMJIT_CC_MSC_GE(19, 0, 0))
574
+ # define ASMJIT_CC_HAS_NATIVE_CHAR32_T (ASMJIT_CC_MSC_GE(19, 0, 0))
575
+ # define ASMJIT_CC_HAS_NOEXCEPT (ASMJIT_CC_MSC_GE(19, 0, 0))
576
+ # define ASMJIT_CC_HAS_NULLPTR (ASMJIT_CC_MSC_GE(16, 0, 0))
577
+ # define ASMJIT_CC_HAS_OVERRIDE (ASMJIT_CC_MSC_GE(14, 0, 0))
578
+ # define ASMJIT_CC_HAS_RVALUE (ASMJIT_CC_MSC_GE(16, 0, 0))
579
+ # define ASMJIT_CC_HAS_STATIC_ASSERT (ASMJIT_CC_MSC_GE(16, 0, 0))
580
+ # define ASMJIT_CC_HAS_VARIADIC_TEMPLATES (ASMJIT_CC_MSC_GE(18, 0, 0))
581
+ #endif
582
+
583
+ // Fixup some vendor specific keywords.
584
+ #if !defined(ASMJIT_CC_HAS_ASSUME)
585
+ # define ASMJIT_CC_HAS_ASSUME (0)
586
+ #endif
587
+ #if !defined(ASMJIT_CC_HAS_ASSUME_ALIGNED)
588
+ # define ASMJIT_CC_HAS_ASSUME_ALIGNED (0)
589
+ #endif
590
+
591
+ // Fixup compilers that don't support '__attribute__'.
592
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE)
593
+ # define ASMJIT_CC_HAS_ATTRIBUTE (0)
594
+ #endif
595
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE_ALIGNED)
596
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALIGNED (0)
597
+ #endif
598
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE)
599
+ # define ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE (0)
600
+ #endif
601
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE)
602
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE (0)
603
+ #endif
604
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE_NORETURN)
605
+ # define ASMJIT_CC_HAS_ATTRIBUTE_NORETURN (0)
606
+ #endif
607
+ #if !defined(ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE)
608
+ # define ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE (0)
609
+ #endif
610
+
611
+ // Fixup compilers that don't support '__builtin?'.
612
+ #if !defined(ASMJIT_CC_HAS_BUILTIN_ASSUME)
613
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME (0)
614
+ #endif
615
+ #if !defined(ASMJIT_CC_HAS_BUILTIN_ASSUME_ALIGNED)
616
+ # define ASMJIT_CC_HAS_BUILTIN_ASSUME_ALIGNED (0)
617
+ #endif
618
+ #if !defined(ASMJIT_CC_HAS_BUILTIN_EXPECT)
619
+ # define ASMJIT_CC_HAS_BUILTIN_EXPECT (0)
620
+ #endif
621
+ #if !defined(ASMJIT_CC_HAS_BUILTIN_UNREACHABLE)
622
+ # define ASMJIT_CC_HAS_BUILTIN_UNREACHABLE (0)
623
+ #endif
624
+
625
+ // Fixup compilers that don't support 'declspec'.
626
+ #if !defined(ASMJIT_CC_HAS_DECLSPEC_ALIGN)
627
+ # define ASMJIT_CC_HAS_DECLSPEC_ALIGN (0)
628
+ #endif
629
+ #if !defined(ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE)
630
+ # define ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE (0)
631
+ #endif
632
+ #if !defined(ASMJIT_CC_HAS_DECLSPEC_NOINLINE)
633
+ # define ASMJIT_CC_HAS_DECLSPEC_NOINLINE (0)
634
+ #endif
635
+ #if !defined(ASMJIT_CC_HAS_DECLSPEC_NORETURN)
636
+ # define ASMJIT_CC_HAS_DECLSPEC_NORETURN (0)
637
+ #endif
638
+ // [@CC_FEATURES}@]
639
+
640
+ // [@CC_API{@]
641
+ // \def ASMJIT_API
642
+ // The decorated function is asmjit API and should be exported.
643
+ #if !defined(ASMJIT_API)
644
+ # if defined(ASMJIT_STATIC)
645
+ # define ASMJIT_API
646
+ # elif ASMJIT_OS_WINDOWS
647
+ # if (ASMJIT_CC_GCC || ASMJIT_CC_CLANG) && !ASMJIT_CC_MINGW
648
+ # if defined(ASMJIT_EXPORTS)
649
+ # define ASMJIT_API __attribute__((__dllexport__))
650
+ # else
651
+ # define ASMJIT_API __attribute__((__dllimport__))
652
+ # endif
653
+ # else
654
+ # if defined(ASMJIT_EXPORTS)
655
+ # define ASMJIT_API __declspec(dllexport)
656
+ # else
657
+ # define ASMJIT_API __declspec(dllimport)
658
+ # endif
659
+ # endif
660
+ # else
661
+ # if ASMJIT_CC_CLANG || ASMJIT_CC_GCC_GE(4, 0, 0) || ASMJIT_CC_INTEL
662
+ # define ASMJIT_API __attribute__((__visibility__("default")))
663
+ # endif
664
+ # endif
665
+ #endif
666
+ // [@CC_API}@]
667
+
668
+ // [@CC_VARAPI{@]
669
+ // \def ASMJIT_VARAPI
670
+ // The decorated variable is part of asmjit API and is exported.
671
+ #if !defined(ASMJIT_VARAPI)
672
+ # define ASMJIT_VARAPI extern ASMJIT_API
673
+ #endif
674
+ // [@CC_VARAPI}@]
675
+
676
+ // [@CC_VIRTAPI{@]
677
+ // \def ASMJIT_VIRTAPI
678
+ // The decorated class has a virtual table and is part of asmjit API.
679
+ //
680
+ // This is basically a workaround. When using MSVC and marking class as DLL
681
+ // export everything gets exported, which is unwanted in most projects. MSVC
682
+ // automatically exports typeinfo and vtable if at least one symbol of the
683
+ // class is exported. However, GCC has some strange behavior that even if
684
+ // one or more symbol is exported it doesn't export typeinfo unless the
685
+ // class itself is decorated with "visibility(default)" (i.e. asmjit_API).
686
+ #if (ASMJIT_CC_GCC || ASMJIT_CC_CLANG) && !ASMJIT_OS_WINDOWS
687
+ # define ASMJIT_VIRTAPI ASMJIT_API
688
+ #else
689
+ # define ASMJIT_VIRTAPI
690
+ #endif
691
+ // [@CC_VIRTAPI}@]
692
+
693
+ // [@CC_INLINE{@]
694
+ // \def ASMJIT_INLINE
695
+ // Always inline the decorated function.
696
+ #if ASMJIT_CC_HAS_ATTRIBUTE_ALWAYS_INLINE
697
+ # define ASMJIT_INLINE inline __attribute__((__always_inline__))
698
+ #elif ASMJIT_CC_HAS_DECLSPEC_FORCEINLINE
699
+ # define ASMJIT_INLINE __forceinline
700
+ #else
701
+ # define ASMJIT_INLINE inline
702
+ #endif
703
+ // [@CC_INLINE}@]
704
+
705
+ // [@CC_NOINLINE{@]
706
+ // \def ASMJIT_NOINLINE
707
+ // Never inline the decorated function.
708
+ #if ASMJIT_CC_HAS_ATTRIBUTE_NOINLINE
709
+ # define ASMJIT_NOINLINE __attribute__((__noinline__))
710
+ #elif ASMJIT_CC_HAS_DECLSPEC_NOINLINE
711
+ # define ASMJIT_NOINLINE __declspec(noinline)
712
+ #else
713
+ # define ASMJIT_NOINLINE
714
+ #endif
715
+ // [@CC_NOINLINE}@]
716
+
717
+ // [@CC_NORETURN{@]
718
+ // \def ASMJIT_NORETURN
719
+ // The decorated function never returns (exit, assertion failure, etc...).
720
+ #if ASMJIT_CC_HAS_ATTRIBUTE_NORETURN
721
+ # define ASMJIT_NORETURN __attribute__((__noreturn__))
722
+ #elif ASMJIT_CC_HAS_DECLSPEC_NORETURN
723
+ # define ASMJIT_NORETURN __declspec(noreturn)
724
+ #else
725
+ # define ASMJIT_NORETURN
726
+ #endif
727
+ // [@CC_NORETURN}@]
728
+
729
+ // [@CC_CDECL{@]
730
+ // \def ASMJIT_CDECL
731
+ // Standard C function calling convention decorator (__cdecl).
732
+ #if ASMJIT_ARCH_X86
733
+ # if ASMJIT_CC_HAS_ATTRIBUTE
734
+ # define ASMJIT_CDECL __attribute__((__cdecl__))
735
+ # else
736
+ # define ASMJIT_CDECL __cdecl
737
+ # endif
738
+ #else
739
+ # define ASMJIT_CDECL
740
+ #endif
741
+ // [@CC_CDECL}@]
742
+
743
+ // [@CC_STDCALL{@]
744
+ // \def ASMJIT_STDCALL
745
+ // StdCall function calling convention decorator (__stdcall).
746
+ #if ASMJIT_ARCH_X86
747
+ # if ASMJIT_CC_HAS_ATTRIBUTE
748
+ # define ASMJIT_STDCALL __attribute__((__stdcall__))
749
+ # else
750
+ # define ASMJIT_STDCALL __stdcall
751
+ # endif
752
+ #else
753
+ # define ASMJIT_STDCALL
754
+ #endif
755
+ // [@CC_STDCALL}@]
756
+
757
+ // [@CC_FASTCALL{@]
758
+ // \def ASMJIT_FASTCALL
759
+ // FastCall function calling convention decorator (__fastcall).
760
+ #if ASMJIT_ARCH_X86
761
+ # if ASMJIT_CC_HAS_ATTRIBUTE
762
+ # define ASMJIT_FASTCALL __attribute__((__fastcall__))
763
+ # else
764
+ # define ASMJIT_FASTCALL __fastcall
765
+ # endif
766
+ #else
767
+ # define ASMJIT_FASTCALL
768
+ #endif
769
+ // [@CC_FASTCALL}@]
770
+
771
+ // [@CC_REGPARM{@]
772
+ // \def ASMJIT_REGPARM(n)
773
+ // A custom calling convention which passes n arguments in registers.
774
+ #if ASMJIT_ARCH_X86 && ASMJIT_CC_HAS_ATTRIBUTE
775
+ # define ASMJIT_REGPARM(n) __attribute__((__regparm__(n)))
776
+ #else
777
+ # define ASMJIT_REGPARM(n)
778
+ #endif
779
+ // [@CC_REGPARM}@]
780
+
781
+ // [@CC_NOEXCEPT{@]
782
+ // \def ASMJIT_NOEXCEPT
783
+ // The decorated function never throws an exception (noexcept).
784
+ #if ASMJIT_CC_HAS_NOEXCEPT
785
+ # define ASMJIT_NOEXCEPT noexcept
786
+ #else
787
+ # define ASMJIT_NOEXCEPT
788
+ #endif
789
+ // [@CC_NOEXCEPT}@]
790
+
791
+ // [@CC_NOP{@]
792
+ // \def ASMJIT_NOP
793
+ // No operation.
794
+ #if !defined(ASMJIT_NOP)
795
+ # define ASMJIT_NOP ((void)0)
796
+ #endif
797
+ // [@CC_NOP}@]
798
+
799
+ // [@CC_ASSUME{@]
800
+ // \def ASMJIT_ASSUME(exp)
801
+ // Assume that the expression exp is always true.
802
+ #if ASMJIT_CC_HAS_ASSUME
803
+ # define ASMJIT_ASSUME(exp) __assume(exp)
804
+ #elif ASMJIT_CC_HAS_BUILTIN_ASSUME
805
+ # define ASMJIT_ASSUME(exp) __builtin_assume(exp)
806
+ #elif ASMJIT_CC_HAS_BUILTIN_UNREACHABLE
807
+ # define ASMJIT_ASSUME(exp) do { if (!(exp)) __builtin_unreachable(); } while (0)
808
+ #else
809
+ # define ASMJIT_ASSUME(exp) ((void)0)
810
+ #endif
811
+ // [@CC_ASSUME}@]
812
+
813
+ // [@CC_ASSUME_ALIGNED{@]
814
+ // \def ASMJIT_ASSUME_ALIGNED(p, alignment)
815
+ // Assume that the pointer 'p' is aligned to at least 'alignment' bytes.
816
+ #if ASMJIT_CC_HAS_ASSUME_ALIGNED
817
+ # define ASMJIT_ASSUME_ALIGNED(p, alignment) __assume_aligned(p, alignment)
818
+ #elif ASMJIT_CC_HAS_BUILTIN_ASSUME_ALIGNED
819
+ # define ASMJIT_ASSUME_ALIGNED(p, alignment) p = __builtin_assume_aligned(p, alignment)
820
+ #else
821
+ # define ASMJIT_ASSUME_ALIGNED(p, alignment) ((void)0)
822
+ #endif
823
+ // [@CC_ASSUME_ALIGNED}@]
824
+
825
+ // [@CC_EXPECT{@]
826
+ // \def ASMJIT_LIKELY(exp)
827
+ // Expression exp is likely to be true.
828
+ //
829
+ // \def ASMJIT_UNLIKELY(exp)
830
+ // Expression exp is likely to be false.
831
+ #if ASMJIT_CC_HAS_BUILTIN_EXPECT
832
+ # define ASMJIT_LIKELY(exp) __builtin_expect(!!(exp), 1)
833
+ # define ASMJIT_UNLIKELY(exp) __builtin_expect(!!(exp), 0)
834
+ #else
835
+ # define ASMJIT_LIKELY(exp) (exp)
836
+ # define ASMJIT_UNLIKELY(exp) (exp)
837
+ #endif
838
+ // [@CC_EXPECT}@]
839
+
840
+ // [@CC_FALLTHROUGH{@]
841
+ // \def ASMJIT_FALLTHROUGH
842
+ // The code falls through annotation (switch / case).
843
+ #if ASMJIT_CC_CLANG && __cplusplus >= 201103L
844
+ # define ASMJIT_FALLTHROUGH [[clang::fallthrough]]
845
+ #else
846
+ # define ASMJIT_FALLTHROUGH (void)0
847
+ #endif
848
+ // [@CC_FALLTHROUGH}@]
849
+
850
+ // [@CC_UNUSED{@]
851
+ // \def ASMJIT_UNUSED(x)
852
+ // Mark a variable x as unused.
853
+ #define ASMJIT_UNUSED(x) (void)(x)
854
+ // [@CC_UNUSED}@]
855
+
856
+ // [@CC_OFFSET_OF{@]
857
+ // \def ASMJIT_OFFSET_OF(x, y).
858
+ // Get the offset of a member y of a struct x at compile-time.
859
+ #define ASMJIT_OFFSET_OF(x, y) ((int)(intptr_t)((const char*)&((const x*)0x1)->y) - 1)
860
+ // [@CC_OFFSET_OF}@]
861
+
862
+ // [@CC_ARRAY_SIZE{@]
863
+ // \def ASMJIT_ARRAY_SIZE(x)
864
+ // Get the array size of x at compile-time.
865
+ #define ASMJIT_ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
866
+ // [@CC_ARRAY_SIZE}@]
867
+
868
+ // ============================================================================
869
+ // [asmjit::Build - STDTYPES]
870
+ // ============================================================================
871
+
872
+ // [@STDTYPES{@]
873
+ #if defined(__MINGW32__) || defined(__MINGW64__)
874
+ # include <sys/types.h>
875
+ #endif
876
+ #if defined(_MSC_VER) && (_MSC_VER < 1600)
877
+ # include <limits.h>
878
+ # if !defined(ASMJIT_SUPPRESS_STD_TYPES)
879
+ # if (_MSC_VER < 1300)
880
+ typedef signed char int8_t;
881
+ typedef signed short int16_t;
882
+ typedef signed int int32_t;
883
+ typedef signed __int64 int64_t;
884
+ typedef unsigned char uint8_t;
885
+ typedef unsigned short uint16_t;
886
+ typedef unsigned int uint32_t;
887
+ typedef unsigned __int64 uint64_t;
888
+ # else
889
+ typedef __int8 int8_t;
890
+ typedef __int16 int16_t;
891
+ typedef __int32 int32_t;
892
+ typedef __int64 int64_t;
893
+ typedef unsigned __int8 uint8_t;
894
+ typedef unsigned __int16 uint16_t;
895
+ typedef unsigned __int32 uint32_t;
896
+ typedef unsigned __int64 uint64_t;
897
+ # endif
898
+ # endif
899
+ #else
900
+ # include <stdint.h>
901
+ # include <limits.h>
902
+ #endif
903
+ // [@STDTYPES}@]
904
+
905
+ // ============================================================================
906
+ // [asmjit::Build - Dependencies]
907
+ // ============================================================================
908
+
909
+ #include <stdarg.h>
910
+ #include <stdio.h>
911
+ #include <stdlib.h>
912
+ #include <string.h>
913
+
914
+ #include <algorithm>
915
+ #include <new>
916
+
917
+ #if ASMJIT_OS_POSIX
918
+ # include <pthread.h>
919
+ #endif // ASMJIT_OS_POSIX
920
+
921
+ // ============================================================================
922
+ // [asmjit::Build - Additional]
923
+ // ============================================================================
924
+
925
+ // Build host architecture if no architecture is selected.
926
+ #if !defined(ASMJIT_BUILD_HOST) && \
927
+ !defined(ASMJIT_BUILD_X86) && \
928
+ !defined(ASMJIT_BUILD_ARM)
929
+ # define ASMJIT_BUILD_HOST
930
+ #endif
931
+
932
+ // Detect host architecture if building only for host.
933
+ #if defined(ASMJIT_BUILD_HOST)
934
+ # if (ASMJIT_ARCH_X86 || ASMJIT_ARCH_X64) && !defined(ASMJIT_BUILD_X86)
935
+ # define ASMJIT_BUILD_X86
936
+ # endif // ASMJIT_ARCH_X86
937
+ #endif // ASMJIT_BUILD_HOST
938
+
939
+ #if ASMJIT_CC_MSC
940
+ # define ASMJIT_UINT64_C(x) x##ui64
941
+ #else
942
+ # define ASMJIT_UINT64_C(x) x##ull
943
+ #endif
944
+
945
+ #if ASMJIT_ARCH_LE
946
+ # define ASMJIT_PACK32_4x8(A, B, C, D) ((A) + ((B) << 8) + ((C) << 16) + ((D) << 24))
947
+ #else
948
+ # define ASMJIT_PACK32_4x8(A, B, C, D) ((D) + ((C) << 8) + ((B) << 16) + ((A) << 24))
949
+ #endif
950
+
951
+ // Internal macros that are only used when building AsmJit itself.
952
+ #if defined(ASMJIT_EXPORTS)
953
+ # if !defined(ASMJIT_DEBUG) && ASMJIT_CC_HAS_ATTRIBUTE_OPTIMIZE
954
+ # define ASMJIT_FAVOR_SIZE __attribute__((__optimize__("Os")))
955
+ # else
956
+ # define ASMJIT_FAVOR_SIZE
957
+ # endif
958
+ #endif // ASMJIT_EXPORTS
959
+
960
+ // ============================================================================
961
+ // [asmjit::Build - Test]
962
+ // ============================================================================
963
+
964
+ // Include a unit testing package if this is a `asmjit_test` build.
965
+ #if defined(ASMJIT_TEST)
966
+ # include "../../test/broken.h"
967
+ #endif // ASMJIT_TEST
968
+
969
+ // [Guard]
970
+ #endif // _ASMJIT_BUILD_H
971
+ #endif