sh: Move lookup_exception_vector() out to asm/system_32.h.
There are other places where we want to have access to the trap/exception number, so move out the lookup_exception_vector() helper. While we're at it, refactor it slightly to return the vector instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -97,6 +97,31 @@ do { \
|
||||
: "=&r" (__dummy)); \
|
||||
} while (0)
|
||||
|
||||
#ifdef CONFIG_CPU_HAS_SR_RB
|
||||
#define lookup_exception_vector() \
|
||||
({ \
|
||||
unsigned long _vec; \
|
||||
\
|
||||
__asm__ __volatile__ ( \
|
||||
"stc r2_bank, %0\n\t" \
|
||||
: "=r" (_vec) \
|
||||
); \
|
||||
\
|
||||
_vec; \
|
||||
})
|
||||
#else
|
||||
#define lookup_exception_vector() \
|
||||
({ \
|
||||
unsigned long _vec; \
|
||||
__asm__ __volatile__ ( \
|
||||
"mov r4, %0\n\t" \
|
||||
: "=r" (_vec) \
|
||||
); \
|
||||
\
|
||||
_vec; \
|
||||
})
|
||||
#endif
|
||||
|
||||
int handle_unaligned_access(opcode_t instruction, struct pt_regs *regs,
|
||||
struct mem_access *ma);
|
||||
|
||||
|
Reference in New Issue
Block a user