1
1

Merge pull request #2204 from hjelmn/arm64

asm/arm64: ensure instruction ordering on timer
Этот коммит содержится в:
Nathan Hjelm 2016-10-12 11:22:28 -06:00 коммит произвёл GitHub
родитель b11c9574d4 9a50ce6364
Коммит 5b40fd267f

Просмотреть файл

@ -1,8 +1,11 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2008 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2016 Broadcom Limited. All rights reserved.
* Copyright (c) 2016 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -22,7 +25,8 @@ opal_sys_timer_get_cycles(void)
{
opal_timer_t ret;
__asm__ __volatile__ ("mrs %0, CNTVCT_EL0" : "=r" (ret));
__asm__ __volatile__ ("isb" ::: "memory");
__asm__ __volatile__ ("mrs %0, CNTVCT_EL0" : "=r" (ret));
return ret;
}
@ -31,9 +35,9 @@ opal_sys_timer_get_cycles(void)
static inline opal_timer_t
opal_sys_timer_freq(void)
{
opal_timer_t freq;
__asm__ __volatile__ ("mrs %0, CNTFRQ_EL0" : "=r" (freq));
return (opal_timer_t)(freq);
opal_timer_t freq;
__asm__ __volatile__ ("mrs %0, CNTFRQ_EL0" : "=r" (freq));
return (opal_timer_t)(freq);
}
#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 1