Blob Blame History Raw
--- mono-1.1.13.4/mono/utils/mono-compiler.h.selinux-ia64	2006-03-03 13:12:32.000000000 -0500
+++ mono-1.1.13.4/mono/utils/mono-compiler.h	2006-03-03 13:12:51.000000000 -0500
@@ -34,7 +34,11 @@
 #define MONO_THREAD_VAR_OFFSET(var,offset) do { guint64 foo;  __asm ("movq $" #var "@TPOFF, %0" : "=r" (foo)); offset = foo; } while (0)
 #endif
 #elif defined(__ia64__) && !defined(__INTEL_COMPILER)
+#if defined(PIC)
+#define MONO_THREAD_VAR_OFFSET(var,offset) __asm ("addl %0 = @ltoff(@tprel(" #var "#)), gp ;; ld8 %0 = [%0]\n" : "=r" (offset))
+#else
 #define MONO_THREAD_VAR_OFFSET(var,offset) __asm ("addl %0 = @tprel(" #var "#), r0 ;;\n" : "=r" (offset))
+#endif
 #else
 #define MONO_THREAD_VAR_OFFSET(var,offset) (offset) = -1
 #endif