mirror of
https://github.com/codex-storage/constantine.git
synced 2025-01-10 19:16:29 +00:00
a2a2495351
* Github Action CI (without GMP) * Deactivate MacOS, spurious failures: https://github.com/actions/virtual-environments/issues/841 * force install with nimble * Add badge * Don"t include Nim 1.2.x https://github.com/mratsim/constantine/pull/20#issuecomment-646327952 * Action branch mistake * Add back OSX? https://github.com/actions/virtual-environments/issues/841, https://github.com/actions/virtual-environments/issues/969 * fix MacOS target * comment out RDTSC on i386 * Add initialization canaries * Add more verbose output to debug windows failures * spurious windows i386 test * For now only activate Linux and mac * missed include
31 lines
1.1 KiB
Nim
31 lines
1.1 KiB
Nim
# Constantine
|
|
# Copyright (c) 2018-2019 Status Research & Development GmbH
|
|
# Copyright (c) 2020-Present Mamy André-Ratsimbazafy
|
|
# Licensed and distributed under either of
|
|
# * MIT license (license terms in the root directory or at http://opensource.org/licenses/MIT).
|
|
# * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0).
|
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
|
|
when defined(amd64): # TODO defined(i386) but it seems lie RDTSC call is misconfigured
|
|
import platforms/x86
|
|
export getTicks, cpuName
|
|
|
|
const SupportsCPUName* = true
|
|
const SupportsGetTicks* = true
|
|
else:
|
|
const SupportsCPUName* = false
|
|
const SupportsGetTicks* = false
|
|
|
|
# Prevent compiler optimizing benchmark away
|
|
# -----------------------------------------------
|
|
# This doesn't always work unfortunately ...
|
|
|
|
proc volatilize(x: ptr byte) {.codegenDecl: "$# $#(char const volatile *x)", inline.} =
|
|
discard
|
|
|
|
template preventOptimAway*[T](x: var T) =
|
|
volatilize(cast[ptr byte](unsafeAddr x))
|
|
|
|
template preventOptimAway*[T](x: T) =
|
|
volatilize(cast[ptr byte](x))
|