/* * Despite that some emulators terminate on UD2, we use it for WARN().
*/ #define ASM_UD2 ".byte 0x0f, 0x0b" #define INSN_UD2 0x0b0f #define LEN_UD2 2
/* * In clang we have UD1s reporting UBSAN failures on X86, 64 and 32bit.
*/ #define INSN_ASOP 0x67 #define INSN_LOCK 0xf0 #define OPCODE_ESCAPE 0x0f #define SECOND_BYTE_OPCODE_UD1 0xb9 #define SECOND_BYTE_OPCODE_UD2 0x0b
#define HAVE_ARCH_BUG #define BUG() \ do { \
instrumentation_begin(); \
_BUG_FLAGS(ASM_UD2, 0, ""); \
__builtin_unreachable(); \
} while (0)
/* * This instrumentation_begin() is strictly speaking incorrect; but it * suppresses the complaints from WARN()s in noinstr code. If such a WARN() * were to trigger, we'd rather wreck the machine in an attempt to get the * message out than not know about it.
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.