Add support for the Q extension to the RISCV ISA.
[binutils-gdb.git] / opcodes / sysdep.h
index 91c53ca9c9f67e0aedcf26589b1218599499b625..26cf6b1709720a37e4fdebe0ea3c0af8207004cf 100644 (file)
@@ -1,5 +1,5 @@
 /* Random host-dependent support code.
-   Copyright 1995, 1997, 2000, 2005, 2007, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
    Written by Ken Raeburn.
 
    This file is part of the GNU opcodes library.
    trying to replace often did that.  If it can be dropped from this
    file (check in a non-ANSI environment!), it should be.  */
 
+#ifdef PACKAGE
+#error sysdep.h must be included in lieu of config.h
+#endif
+
 #include "config.h"
 
 #include "ansidecl.h"
 #if !HAVE_DECL_STPCPY
 extern char *stpcpy (char *__dest, const char *__src);
 #endif
+
+/* Use sigsetjmp/siglongjmp without saving the signal mask if possible.
+   It is faster than setjmp/longjmp on systems where the signal mask is
+   saved.  */
+
+#if defined(HAVE_SIGSETJMP)
+#define OPCODES_SIGJMP_BUF             sigjmp_buf
+#define OPCODES_SIGSETJMP(buf)         sigsetjmp((buf), 0)
+#define OPCODES_SIGLONGJMP(buf,val)    siglongjmp((buf), (val))
+#else
+#define OPCODES_SIGJMP_BUF             jmp_buf
+#define OPCODES_SIGSETJMP(buf)         setjmp(buf)
+#define OPCODES_SIGLONGJMP(buf,val)    longjmp((buf), (val))
+#endif