summaryrefslogtreecommitdiff
path: root/src/mapi
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2010-08-24 15:51:57 +0800
committerChia-I Wu <olv@lunarg.com>2011-01-20 17:15:50 +0800
commit96c52d16c1716b8974b5421342f53f36cb80c10f (patch)
tree7f1ff34df0bb3b53b766e7f5f14b4240e132698e /src/mapi
parent6fc152f660ed995fb6c785b9e8e925bb1640532a (diff)
mapi: u_current_table may be renamed.
When MAPI_MODE_GLAPI is defined, u_current_table is renamed to _glapi_Dispatch or _glapi_tls_Dispatch. The ASM dispatchers should not use hardcoded name.
Diffstat (limited to 'src/mapi')
-rw-r--r--src/mapi/mapi/entry.c6
-rw-r--r--src/mapi/mapi/entry_x86-64_tls.h4
-rw-r--r--src/mapi/mapi/entry_x86_tls.h2
-rw-r--r--src/mapi/mapi/entry_x86_tsd.h2
4 files changed, 9 insertions, 5 deletions
diff --git a/src/mapi/mapi/entry.c b/src/mapi/mapi/entry.c
index 69b6134bd2..faeda83519 100644
--- a/src/mapi/mapi/entry.c
+++ b/src/mapi/mapi/entry.c
@@ -27,6 +27,11 @@
*/
#include "entry.h"
+#include "u_current.h"
+#include "u_macros.h"
+
+/* define macros for use by assembly dispatchers */
+#define ENTRY_CURRENT_TABLE U_STRINGIFY(u_current_table)
#if defined(USE_X86_ASM) && defined(__GNUC__)
# ifdef GLX_USE_TLS
@@ -39,7 +44,6 @@
#else
#include <stdlib.h>
-#include "u_current.h"
/* C version of the public entries */
#define MAPI_TMP_DEFINES
diff --git a/src/mapi/mapi/entry_x86-64_tls.h b/src/mapi/mapi/entry_x86-64_tls.h
index d14bf1c394..21ba434ae8 100644
--- a/src/mapi/mapi/entry_x86-64_tls.h
+++ b/src/mapi/mapi/entry_x86-64_tls.h
@@ -46,7 +46,7 @@ __asm__(".section .note.ABI-tag, \"a\"\n\t"
__asm__(".text");
__asm__("x86_64_current_tls:\n\t"
- "movq u_current_table@GOTTPOFF(%rip), %rax\n\t"
+ "movq " ENTRY_CURRENT_TABLE "@GOTTPOFF(%rip), %rax\n\t"
"ret");
__asm__(".balign 32\n"
@@ -59,7 +59,7 @@ __asm__(".balign 32\n"
func ":"
#define STUB_ASM_CODE(slot) \
- "movq u_current_table@GOTTPOFF(%rip), %rax\n\t" \
+ "movq " ENTRY_CURRENT_TABLE "@GOTTPOFF(%rip), %rax\n\t" \
"movq %fs:(%rax), %r11\n\t" \
"jmp *(8 * " slot ")(%r11)"
diff --git a/src/mapi/mapi/entry_x86_tls.h b/src/mapi/mapi/entry_x86_tls.h
index ea63490e1c..43f3489564 100644
--- a/src/mapi/mapi/entry_x86_tls.h
+++ b/src/mapi/mapi/entry_x86_tls.h
@@ -50,7 +50,7 @@ __asm__("x86_current_tls:\n\t"
"1:\n\t"
"popl %eax\n\t"
"addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax\n\t"
- "movl u_current_table@GOTNTPOFF(%eax), %eax\n\t"
+ "movl " ENTRY_CURRENT_TABLE "@GOTNTPOFF(%eax), %eax\n\t"
"ret");
#ifndef GLX_X86_READONLY_TEXT
diff --git a/src/mapi/mapi/entry_x86_tsd.h b/src/mapi/mapi/entry_x86_tsd.h
index 0a07ad7424..38742e77dc 100644
--- a/src/mapi/mapi/entry_x86_tsd.h
+++ b/src/mapi/mapi/entry_x86_tsd.h
@@ -43,7 +43,7 @@ __asm__(".text\n"
func ":"
#define STUB_ASM_CODE(slot) \
- "movl u_current_table, %eax\n\t" \
+ "movl " ENTRY_CURRENT_TABLE ", %eax\n\t" \
"testl %eax, %eax\n\t" \
"je 1f\n\t" \
"jmp *(4 * " slot ")(%eax)\n" \