diff options
Diffstat (limited to 'arch/powerpc/include/asm/ppc-opcode.h')
| -rw-r--r-- | arch/powerpc/include/asm/ppc-opcode.h | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h index ef9aa84cac5..aea71479759 100644 --- a/arch/powerpc/include/asm/ppc-opcode.h +++ b/arch/powerpc/include/asm/ppc-opcode.h @@ -22,8 +22,10 @@  #define PPC_INST_DCBZL			0x7c2007ec  #define PPC_INST_ISEL			0x7c00001e  #define PPC_INST_ISEL_MASK		0xfc00003e +#define PPC_INST_LDARX			0x7c0000a8  #define PPC_INST_LSWI			0x7c0004aa  #define PPC_INST_LSWX			0x7c00042a +#define PPC_INST_LWARX			0x7c000029  #define PPC_INST_LWSYNC			0x7c2004ac  #define PPC_INST_LXVD2X			0x7c000698  #define PPC_INST_MCRXR			0x7c000400 @@ -55,15 +57,31 @@  #define __PPC_RA(a)	(((a) & 0x1f) << 16)  #define __PPC_RB(b)	(((b) & 0x1f) << 11)  #define __PPC_RS(s)	(((s) & 0x1f) << 21) +#define __PPC_RT(s)	__PPC_RS(s)  #define __PPC_XS(s)	((((s) & 0x1f) << 21) | (((s) & 0x20) >> 5))  #define __PPC_T_TLB(t)	(((t) & 0x3) << 21)  #define __PPC_WC(w)	(((w) & 0x3) << 21) +/* + * Only use the larx hint bit on 64bit CPUs. Once we verify it doesn't have + * any side effects on all 32bit processors, we can do this all the time. + */ +#ifdef CONFIG_PPC64 +#define __PPC_EH(eh)	(((eh) & 0x1) << 0) +#else +#define __PPC_EH(eh)	0 +#endif  /* Deal with instructions that older assemblers aren't aware of */  #define	PPC_DCBAL(a, b)		stringify_in_c(.long PPC_INST_DCBAL | \  					__PPC_RA(a) | __PPC_RB(b))  #define	PPC_DCBZL(a, b)		stringify_in_c(.long PPC_INST_DCBZL | \  					__PPC_RA(a) | __PPC_RB(b)) +#define PPC_LDARX(t, a, b, eh)	stringify_in_c(.long PPC_INST_LDARX | \ +					__PPC_RT(t) | __PPC_RA(a) | \ +					__PPC_RB(b) | __PPC_EH(eh)) +#define PPC_LWARX(t, a, b, eh)	stringify_in_c(.long PPC_INST_LWARX | \ +					__PPC_RT(t) | __PPC_RA(a) | \ +					__PPC_RB(b) | __PPC_EH(eh))  #define PPC_MSGSND(b)		stringify_in_c(.long PPC_INST_MSGSND | \  					__PPC_RB(b))  #define PPC_RFCI		stringify_in_c(.long PPC_INST_RFCI)  |