15 lines
371 B
Nim
15 lines
371 B
Nim
|
when defined(i386) or defined(amd64):
|
||
|
import x86
|
||
|
export getTicks
|
||
|
|
||
|
# 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))
|