]> granicus.if.org Git - postgresql/commitdiff
Remove theoretically-unnecessary special case for icc.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 31 Aug 2015 18:43:10 +0000 (14:43 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 31 Aug 2015 18:43:10 +0000 (14:43 -0400)
Intel's icc is generally able to swallow asm blocks written for gcc.
We have a few places that don't seem to know that, though.  Experiment
with removing the special case for icc in ia64_get_bsp(); if the buildfarm
likes this, I'll try more cleanup.  This is a good test case because it
involves a "stop" notation that seems like it might not be very portable.

src/backend/tcop/postgres.c

index ce4bdafad9b2c160449abcfb393bcd19cbcb5c5c..d6a15c1b370e31aa9062257e3d8845085b0d1937 100644 (file)
@@ -2997,33 +2997,27 @@ ProcessInterrupts(void)
 /*
  * IA64-specific code to fetch the AR.BSP register for stack depth checks.
  *
- * We currently support gcc, icc, and HP-UX inline assembly here.
+ * We currently support gcc, icc, and HP-UX's native compiler here.
  */
 #if defined(__ia64__) || defined(__ia64)
 
-#if defined(__hpux) && !defined(__GNUC__) && !defined __INTEL_COMPILER
+#if defined(__hpux) && !defined(__GNUC__) && !defined(__INTEL_COMPILER)
+/* Assume it's HP-UX native 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
-
+/* Use inline assembly; works with gcc and icc */
 static __inline__ char *
 ia64_get_bsp(void)
 {
        char       *ret;
 
-#ifndef __INTEL_COMPILER
        /* the ;; is a "stop", seems to be required before fetching BSP */
        __asm__         __volatile__(
                                                                                 ";;\n"
                                                                                 "      mov     %0=ar.bsp       \n"
                                                         :                       "=r"(ret));
-#else
-       ret = (char *) __getReg(_IA64_REG_AR_BSP);
-#endif
+
        return ret;
 }
 #endif