summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2011-04-13 11:43:22 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2011-04-13 11:53:30 +0300
commit4f5ed3a1cd43598745c1bc9448ba8d331d3aa5fa (patch)
tree238a478dffdb8619a113d58748a7353ecac17a92
parent1de4b9afe66acf6dccd129cb0267e0496e938b0f (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 e63ca71b333..c2810845dd0 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -2547,10 +2547,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
@@ -2571,7 +2576,7 @@ ia64_get_bsp(void)
#endif
return ret;
}
-
+#endif
#endif /* IA64 */