qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

processor.h (712B)


      1 /*
      2  * Copyright (C) 2016, Emilio G. Cota <cota@braap.org>
      3  *
      4  * License: GNU GPL, version 2.
      5  *   See the COPYING file in the top-level directory.
      6  */
      7 #ifndef QEMU_PROCESSOR_H
      8 #define QEMU_PROCESSOR_H
      9 
     10 #include "qemu/atomic.h"
     11 
     12 #if defined(__i386__) || defined(__x86_64__)
     13 # define cpu_relax() asm volatile("rep; nop" ::: "memory")
     14 
     15 #elif defined(__aarch64__)
     16 # define cpu_relax() asm volatile("yield" ::: "memory")
     17 
     18 #elif defined(__powerpc64__)
     19 /* set Hardware Multi-Threading (HMT) priority to low; then back to medium */
     20 # define cpu_relax() asm volatile("or 1, 1, 1;" \
     21                                   "or 2, 2, 2;" ::: "memory")
     22 
     23 #else
     24 # define cpu_relax() barrier()
     25 #endif
     26 
     27 #endif /* QEMU_PROCESSOR_H */