Path: blob/master/arch/powerpc/include/asm/asm-compat.h
15117 views
#ifndef _ASM_POWERPC_ASM_COMPAT_H1#define _ASM_POWERPC_ASM_COMPAT_H23#include <asm/types.h>4#include <asm/ppc-opcode.h>56#ifdef __ASSEMBLY__7# define stringify_in_c(...) __VA_ARGS__8# define ASM_CONST(x) x9#else10/* This version of stringify will deal with commas... */11# define __stringify_in_c(...) #__VA_ARGS__12# define stringify_in_c(...) __stringify_in_c(__VA_ARGS__) " "13# define __ASM_CONST(x) x##UL14# define ASM_CONST(x) __ASM_CONST(x)15#endif161718#ifdef __powerpc64__1920/* operations for longs and pointers */21#define PPC_LL stringify_in_c(ld)22#define PPC_STL stringify_in_c(std)23#define PPC_STLU stringify_in_c(stdu)24#define PPC_LCMPI stringify_in_c(cmpdi)25#define PPC_LONG stringify_in_c(.llong)26#define PPC_LONG_ALIGN stringify_in_c(.balign 8)27#define PPC_TLNEI stringify_in_c(tdnei)28#define PPC_LLARX(t, a, b, eh) PPC_LDARX(t, a, b, eh)29#define PPC_STLCX stringify_in_c(stdcx.)30#define PPC_CNTLZL stringify_in_c(cntlzd)31#define PPC_LR_STKOFF 1632#define PPC_MIN_STKFRM 1123334/* Move to CR, single-entry optimized version. Only available35* on POWER4 and later.36*/37#ifdef CONFIG_POWER4_ONLY38#define PPC_MTOCRF stringify_in_c(mtocrf)39#else40#define PPC_MTOCRF stringify_in_c(mtcrf)41#endif4243#else /* 32-bit */4445/* operations for longs and pointers */46#define PPC_LL stringify_in_c(lwz)47#define PPC_STL stringify_in_c(stw)48#define PPC_STLU stringify_in_c(stwu)49#define PPC_LCMPI stringify_in_c(cmpwi)50#define PPC_LONG stringify_in_c(.long)51#define PPC_LONG_ALIGN stringify_in_c(.balign 4)52#define PPC_TLNEI stringify_in_c(twnei)53#define PPC_LLARX(t, a, b, eh) PPC_LWARX(t, a, b, eh)54#define PPC_STLCX stringify_in_c(stwcx.)55#define PPC_CNTLZL stringify_in_c(cntlzw)56#define PPC_MTOCRF stringify_in_c(mtcrf)57#define PPC_LR_STKOFF 458#define PPC_MIN_STKFRM 165960#endif6162#ifdef __KERNEL__63#ifdef CONFIG_IBM405_ERR7764/* Erratum #77 on the 405 means we need a sync or dcbt before every65* stwcx. The old ATOMIC_SYNC_FIX covered some but not all of this.66*/67#define PPC405_ERR77(ra,rb) stringify_in_c(dcbt ra, rb;)68#define PPC405_ERR77_SYNC stringify_in_c(sync;)69#else70#define PPC405_ERR77(ra,rb)71#define PPC405_ERR77_SYNC72#endif73#endif7475#endif /* _ASM_POWERPC_ASM_COMPAT_H */767778