cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

compiler.h (978B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_ARM_COMPILER_H
      3#define __ASM_ARM_COMPILER_H
      4
      5/*
      6 * This is used to ensure the compiler did actually allocate the register we
      7 * asked it for some inline assembly sequences.  Apparently we can't trust
      8 * the compiler from one version to another so a bit of paranoia won't hurt.
      9 * This string is meant to be concatenated with the inline asm string and
     10 * will cause compilation to stop on mismatch.
     11 * (for details, see gcc PR 15089)
     12 * For compatibility with clang, we have to specifically take the equivalence
     13 * of 'r11' <-> 'fp' and 'r12' <-> 'ip' into account as well.
     14 */
     15#define __asmeq(x, y)				\
     16	".ifnc " x "," y "; "			\
     17	  ".ifnc " x y ",fpr11; " 		\
     18	    ".ifnc " x y ",r11fp; "		\
     19	      ".ifnc " x y ",ipr12; " 		\
     20	        ".ifnc " x y ",r12ip; "		\
     21	          ".err; "			\
     22	        ".endif; "			\
     23	      ".endif; "			\
     24	    ".endif; "				\
     25	  ".endif; "				\
     26	".endif\n\t"
     27
     28
     29#endif /* __ASM_ARM_COMPILER_H */