Commit 2b565bb6 authored by Victor Stinner's avatar Victor Stinner

Issue #18028: Fix aliasing issue in READ_TIMESTAMP() of ceval.c on x86_64,

when Python is configure with --with-tsc. Patch written by Christian Heimes.
parent e4efc3d9
......@@ -66,9 +66,11 @@ ppc_getcounter(uint64 *v)
even in 64-bit mode, we need to use "a" and "d" for the lower and upper
32-bit pieces of the result. */
#define READ_TIMESTAMP(val) \
__asm__ __volatile__("rdtsc" : \
"=a" (((int*)&(val))[0]), "=d" (((int*)&(val))[1]));
#define READ_TIMESTAMP(val) do { \
unsigned int h, l; \
__asm__ __volatile__("rdtsc" : "=a" (l), "=d" (h)); \
(val) = ((uint64)l) | (((uint64)h) << 32); \
} while(0)
#else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment