summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/psxtypes/arch/nt32/ntalltypes.h7
-rw-r--r--include/psxtypes/arch/nt64/ntalltypes.h7
-rw-r--r--include/psxtypes/compiler/__nt_compiler_gcc.h13
-rw-r--r--include/psxtypes/compiler/__nt_compiler_msvc.h21
-rw-r--r--include/psxtypes/compiler/__psx_compiler_gcc.h13
5 files changed, 32 insertions, 29 deletions
diff --git a/include/psxtypes/arch/nt32/ntalltypes.h b/include/psxtypes/arch/nt32/ntalltypes.h
index af3e899..5e61552 100644
--- a/include/psxtypes/arch/nt32/ntalltypes.h
+++ b/include/psxtypes/arch/nt32/ntalltypes.h
@@ -176,10 +176,3 @@ typedef float float_t;
typedef double double_t;
#define __DEFINED_double_t
#endif
-
-typedef __CUSTOM_OR_BUILTIN_va_list__ va_list;
-
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#define va_copy(d,s) __builtin_va_copy(d,s)
diff --git a/include/psxtypes/arch/nt64/ntalltypes.h b/include/psxtypes/arch/nt64/ntalltypes.h
index 330b580..d6640f8 100644
--- a/include/psxtypes/arch/nt64/ntalltypes.h
+++ b/include/psxtypes/arch/nt64/ntalltypes.h
@@ -176,10 +176,3 @@ typedef float float_t;
typedef double double_t;
#define __DEFINED_double_t
#endif
-
-typedef __CUSTOM_OR_BUILTIN_va_list__ va_list;
-
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#define va_copy(d,s) __builtin_va_copy(d,s)
diff --git a/include/psxtypes/compiler/__nt_compiler_gcc.h b/include/psxtypes/compiler/__nt_compiler_gcc.h
index 5eb49a0..df81c64 100644
--- a/include/psxtypes/compiler/__nt_compiler_gcc.h
+++ b/include/psxtypes/compiler/__nt_compiler_gcc.h
@@ -38,11 +38,6 @@
#define __X86_64_MODEL __amd64
#endif
-
-/* va_list */
-#define __CUSTOM_OR_BUILTIN_va_list__ __builtin_va_list
-
-
/* compiler keywords */
#define __in
#define __out
@@ -132,4 +127,12 @@
#define __stdcall
#endif
+/* vararg */
+typedef __builtin_va_list va_list;
+
+#define va_start(v,l) __builtin_va_start(v,l)
+#define va_end(v) __builtin_va_end(v)
+#define va_arg(v,l) __builtin_va_arg(v,l)
+#define va_copy(d,s) __builtin_va_copy(d,s)
+
#endif /* _PSXTYPES_NT_COMPILER_GCC_H_ */
diff --git a/include/psxtypes/compiler/__nt_compiler_msvc.h b/include/psxtypes/compiler/__nt_compiler_msvc.h
index b441221..c865706 100644
--- a/include/psxtypes/compiler/__nt_compiler_msvc.h
+++ b/include/psxtypes/compiler/__nt_compiler_msvc.h
@@ -53,11 +53,6 @@
#define __X86_64_MODEL __amd64
#endif
-
-/* va_list */
-#define __CUSTOM_OR_BUILTIN_va_list__ char *
-
-
/* compiler keywords */
#define __in
#define __out
@@ -127,4 +122,20 @@
#define NTAPI __stdcall
#define WINAPI __stdcall
+/* vararg */
+typedef char * va_list;
+
+#if defined(__NT32)
+void __cdecl __va_start(char ** ,...);
+#define __va_size(l) (((sizeof(void *)-1) + sizeof(l)) & ~(sizeof(void *)-1))
+#define va_start(v,l) ((void)(v = (char *)((&(l)) + __va_size(l))))
+#define va_end(v) ((void)(v = 0))
+#endif
+
+#if defined(__NT64)
+void __cdecl __va_start(char ** ,...);
+#define va_start(v,l) ((void)(__va_start(&v, l)))
+#define va_end(v) ((void)(v = 0))
+#endif
+
#endif /* _PSXTYPES_NT_COMPILER_MSVC_H_ */
diff --git a/include/psxtypes/compiler/__psx_compiler_gcc.h b/include/psxtypes/compiler/__psx_compiler_gcc.h
index 5995bf1..ee205f3 100644
--- a/include/psxtypes/compiler/__psx_compiler_gcc.h
+++ b/include/psxtypes/compiler/__psx_compiler_gcc.h
@@ -30,11 +30,6 @@
#define __X86_64_MODEL __amd64
#endif
-
-/* va_list */
-#define __CUSTOM_OR_BUILTIN_va_list__ __builtin_va_list
-
-
/* compiler keywords */
#define __in
#define __out
@@ -96,4 +91,12 @@
#define NTAPI
#define WINAPI
+/* vararg */
+typedef __builtin_va_list va_list;
+
+#define va_start(v,l) __builtin_va_start(v,l)
+#define va_end(v) __builtin_va_end(v)
+#define va_arg(v,l) __builtin_va_arg(v,l)
+#define va_copy(d,s) __builtin_va_copy(d,s)
+
#endif /* _PSXTYPES_COMPILER_GCC_H_ */