linux/arch/cris/include/arch-v32/arch/bug.h
<<
>>
Prefs
   1#ifndef __ASM_CRISv32_ARCH_BUG_H
   2#define __ASM_CRISv32_ARCH_BUG_H
   3
   4#include <linux/stringify.h>
   5
   6#ifdef CONFIG_BUG
   7#ifdef CONFIG_DEBUG_BUGVERBOSE
   8/*
   9 * The penalty for the in-band code path will be the size of break 14.
  10 * All other stuff is done out-of-band with exception handlers.
  11 */
  12#define BUG()                                                           \
  13        __asm__ __volatile__ ("0: break 14\n\t"                         \
  14                              ".section .fixup,\"ax\"\n"                \
  15                              "1:\n\t"                                  \
  16                              "move.d %0, $r10\n\t"                     \
  17                              "move.d %1, $r11\n\t"                     \
  18                              "jump do_BUG\n\t"                         \
  19                              "nop\n\t"                                 \
  20                              ".previous\n\t"                           \
  21                              ".section __ex_table,\"a\"\n\t"           \
  22                              ".dword 0b, 1b\n\t"                       \
  23                              ".previous\n\t"                           \
  24                              : : "ri" (__FILE__), "i" (__LINE__))
  25#else
  26#define BUG() __asm__ __volatile__ ("break 14\n\t")
  27#endif
  28
  29#define HAVE_ARCH_BUG
  30#endif
  31
  32#include <asm-generic/bug.h>
  33#endif
  34