aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/cris/include/arch-v32/arch/bug.h
diff options
context:
space:
mode:
authorJesper Nilsson <jesper.nilsson@axis.com>2008-10-21 17:45:58 +0200
committerJesper Nilsson <jesper.nilsson@axis.com>2008-10-29 17:29:44 +0100
commit556dcee7b829e5c350c3ffdbdb87a8b15aa3c5d3 (patch)
tree26485b0d92eedcba6c0c96d4069469041aaf7106 /arch/cris/include/arch-v32/arch/bug.h
parentMerge branch 'for-next' of git://www.jni.nu/cris into cris_merge (diff)
downloadwireguard-linux-556dcee7b829e5c350c3ffdbdb87a8b15aa3c5d3.tar.xz
wireguard-linux-556dcee7b829e5c350c3ffdbdb87a8b15aa3c5d3.zip
[CRIS] Move header files from include to arch/cris/include.
Change all users of header files to correct path. Remove some unneeded headers for arch-v32. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
Diffstat (limited to 'arch/cris/include/arch-v32/arch/bug.h')
-rw-r--r--arch/cris/include/arch-v32/arch/bug.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/cris/include/arch-v32/arch/bug.h b/arch/cris/include/arch-v32/arch/bug.h
new file mode 100644
index 000000000000..0f211e135248
--- /dev/null
+++ b/arch/cris/include/arch-v32/arch/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