diff options
author | Jesper Nilsson <jesper.nilsson@axis.com> | 2008-01-17 10:42:58 +0100 |
---|---|---|
committer | Jesper Nilsson <jesper.nilsson@axis.com> | 2008-02-08 11:06:28 +0100 |
commit | 0dfb8c35703709ca5e8f58e019d72383110999a7 (patch) | |
tree | 825532e0771ed49704f7649029be392e72559b53 /include/asm-cris/arch-v32/bug.h | |
parent | fbdb5f865b570e34d6e0d17f327f8d9bc2c4ccc6 (diff) |
CRIS: Add architecture dependent bug.h for CRIS v10 and CRIS v32
Diffstat (limited to 'include/asm-cris/arch-v32/bug.h')
-rw-r--r-- | include/asm-cris/arch-v32/bug.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/asm-cris/arch-v32/bug.h b/include/asm-cris/arch-v32/bug.h new file mode 100644 index 00000000000..0f211e13524 --- /dev/null +++ b/include/asm-cris/arch-v32/bug.h @@ -0,0 +1,33 @@ +#ifndef __ASM_CRISv32_ARCH_BUG_H +#define __ASM_CRISv32_ARCH_BUG_H + +#include <linux/stringify.h> + +#ifdef CONFIG_BUG +#ifdef CONFIG_DEBUG_BUGVERBOSE +/* + * The penalty for the in-band code path will be the size of break 14. + * All other stuff is done out-of-band with exception handlers. + */ +#define BUG() \ + __asm__ __volatile__ ("0: break 14\n\t" \ + ".section .fixup,\"ax\"\n" \ + "1:\n\t" \ + "move.d %0, $r10\n\t" \ + "move.d %1, $r11\n\t" \ + "jump do_BUG\n\t" \ + "nop\n\t" \ + ".previous\n\t" \ + ".section __ex_table,\"a\"\n\t" \ + ".dword 0b, 1b\n\t" \ + ".previous\n\t" \ + : : "ri" (__FILE__), "i" (__LINE__)) +#else +#define BUG() __asm__ __volatile__ ("break 14\n\t") +#endif + +#define HAVE_ARCH_BUG +#endif + +#include <asm-generic/bug.h> +#endif |