diff options
author | Chia-I Wu <olv@lunarg.com> | 2010-04-22 15:33:43 +0800 |
---|---|---|
committer | Chia-I Wu <olv@lunarg.com> | 2010-05-07 10:41:12 +0800 |
commit | 56eb5d7e852ab04b45ba09831e2c8fbadcda8c40 (patch) | |
tree | 6d8363eb8b33f09a6fc0948106302d9ce37086f6 /src/mapi/mapi/mapi_tmp.h | |
parent | 75143ef05576ee9f25ee176bc28c3c4d03705bf5 (diff) |
mapi: Add x86 dispatcher.
Diffstat (limited to 'src/mapi/mapi/mapi_tmp.h')
-rw-r--r-- | src/mapi/mapi/mapi_tmp.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mapi/mapi/mapi_tmp.h b/src/mapi/mapi/mapi_tmp.h index da4e8ae54f..79beca47d2 100644 --- a/src/mapi/mapi/mapi_tmp.h +++ b/src/mapi/mapi/mapi_tmp.h @@ -184,3 +184,28 @@ const mapi_func table_noop_array[] = { #endif /* DEBUG */ #undef MAPI_TMP_NOOP_ARRAY #endif /* MAPI_TMP_NOOP_ARRAY */ + + +#ifdef MAPI_TMP_STUB_ASM_GCC +# define STUB_ASM_ALIAS(func, to) \ + ".globl " func "\n" \ + ".set " func ", " to +# define STUB_ASM_HIDE(func) \ + ".hidden " func + +# define MAPI_ABI_ENTRY(ret, name, params) \ + __asm__(STUB_ASM_ENTRY(U_CONCAT_STR(MAPI_ABI_PREFIX, name))); +# define MAPI_ABI_CODE(ret, name, args) \ + __asm__(STUB_ASM_CODE(U_STRINGIFY(MAPI_SLOT_ ## name))); +# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \ + __asm__(STUB_ASM_ALIAS(U_CONCAT_STR(MAPI_ABI_PREFIX, name), \ + U_CONCAT_STR(MAPI_ABI_PREFIX, alias))); +# define MAPI_ABI_ENTRY_HIDDEN(ret, name, params) \ + __asm__(STUB_ASM_HIDE(U_CONCAT_STR(MAPI_ABI_PREFIX, name))); \ + MAPI_ABI_ENTRY(ret, name, params); +# define MAPI_ALIAS_ENTRY_HIDDEN(alias, ret, name, params) \ + __asm__(STUB_ASM_HIDE(U_CONCAT_STR(MAPI_ABI_PREFIX, name))); \ + MAPI_ALIAS_ENTRY(alias, ret, name, params); +# include MAPI_ABI_HEADER +#undef MAPI_TMP_STUB_ASM_GCC +#endif /* MAPI_TMP_STUB_ASM_GCC */ |