summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2011-04-13 08:43:22 +0000
committerHeikki Linnakangas2011-04-13 08:53:19 +0000
commitcbb8c36c8d83edba975b59a534e972d82375fbe9 (patch)
treef4f1fa0d4cafec3fd1f2ae84aff5536b48ab6052
parent502ff05209ad08c50eb4f7ef491ff4d880a6cb64 (diff)
On IA64 architecture, we check the depth of the register stack in addition
to the regular stack. The code to do that is platform and compiler specific, add support for the HP-UX native compiler.
-rw-r--r--src/backend/tcop/postgres.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 4b0d8fe0a67..10a0dcd9a9d 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -2693,10 +2693,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
@@ -2717,7 +2722,7 @@ ia64_get_bsp(void)
#endif
return ret;
}
-
+#endif
#endif /* IA64 */