cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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 */