]> granicus.if.org Git - postgresql/commitdiff
On IA64 architecture, we check the depth of the register stack in addition
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 13 Apr 2011 08:43:22 +0000 (11:43 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 13 Apr 2011 08:52:54 +0000 (11:52 +0300)
to the regular stack. The code to do that is platform and compiler specific,
add support for the HP-UX native compiler.

src/backend/tcop/postgres.c

index 347057503981ff390afaf0a844c38ae9b9b852b7..9bfeba51139dc78f944dc067e4f53cbce90edad0 100644 (file)
@@ -2991,10 +2991,15 @@ ProcessInterrupts(void)
 /*
  * IA64-specific code to fetch the AR.BSP register for stack depth checks.
  *
- * We currently support gcc and icc here.
+ * We currently support gcc, icc, and HP-UX inline assembly here.
  */
 #if defined(__ia64__) || defined(__ia64)
 
+#if defined(__hpux) && !defined(__GNUC__) && !defined __INTEL_COMPILER
+#include <ia64/sys/inline.h>
+#define ia64_get_bsp() ((char *) (_Asm_mov_from_ar(_AREG_BSP, _NO_FENCE)))
+#else
+
 #ifdef __INTEL_COMPILER
 #include <asm/ia64regs.h>
 #endif
@@ -3015,7 +3020,7 @@ ia64_get_bsp(void)
 #endif
   return ret;
 }
-
+#endif
 #endif /* IA64 */