#ifndef _SELFTESTS_POWERPC_INSTRUCTIONS_H #define _SELFTESTS_POWERPC_INSTRUCTIONS_H #include #include /* This defines the "copy" instruction from Power ISA 3.0 Book II, section 4.4. */ #define __COPY(RA, RB, L) \ (0x7c00060c | (RA) << (31-15) | (RB) << (31-20) | (L) << (31-10)) #define COPY(RA, RB, L) \ .long __COPY((RA), (RB), (L)) static inline void copy(void *i) { asm volatile(str(COPY(0, %0, 0))";" : : "b" (i) : "memory" ); } static inline void copy_first(void *i) { asm volatile(str(COPY(0, %0, 1))";" : : "b" (i) : "memory" ); } /* This defines the "paste" instruction from Power ISA 3.0 Book II, section 4.4. */ #define __PASTE(RA, RB, L, RC) \ (0x7c00070c | (RA) << (31-15) | (RB) << (31-20) | (L) << (31-10) | (RC) << (31-31)) #define PASTE(RA, RB, L, RC) \ .long __PASTE((RA), (RB), (L), (RC)) static inline int paste(void *i) { int cr; asm volatile(str(PASTE(0, %1, 0, 0))";" "mfcr %0;" : "=r" (cr) : "b" (i) : "memory" ); return cr; } static inline int paste_last(void *i) { int cr; asm volatile(str(PASTE(0, %1, 1, 1))";" "mfcr %0;" : "=r" (cr) : "b" (i) : "memory" ); return cr; } #define PPC_INST_COPY __COPY(0, 0, 0) #define PPC_INST_COPY_FIRST __COPY(0, 0, 1) #define PPC_INST_PASTE __PASTE(0, 0, 0, 0) #define PPC_INST_PASTE_LAST __PASTE(0, 0, 1, 1) #endif /* _SELFTESTS_POWERPC_INSTRUCTIONS_H */ ass='tabs'> summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-12-25 12:43:07 +0100
committerThomas Gleixner <tglx@linutronix.de>2016-12-25 17:21:23 +0100
commit1f3a8e49d8f28f498b8694464623ac20aebfe62a (patch)
treeda0b5101c3be3e18b55b0a11974f63a3195704f9 /include/dt-bindings/reset
parent8b0e195314fabd58a331c4f7b6db75a1565535d7 (diff)
ktime: Get rid of ktime_equal()
No point in going through loops and hoops instead of just comparing the values. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'include/dt-bindings/reset')