xref: /dflybsd-src/contrib/gcc-8.0/gcc/config/i386/cross-stdarg.h (revision 38fd149817dfbff97799f62fcb70be98c4e32523)
1*38fd1498Szrj /* Copyright (C) 2002-2018 Free Software Foundation, Inc.
2*38fd1498Szrj 
3*38fd1498Szrj    This file is part of GCC.
4*38fd1498Szrj 
5*38fd1498Szrj    GCC is free software; you can redistribute it and/or modify
6*38fd1498Szrj    it under the terms of the GNU General Public License as published by
7*38fd1498Szrj    the Free Software Foundation; either version 3, or (at your option)
8*38fd1498Szrj    any later version.
9*38fd1498Szrj 
10*38fd1498Szrj    GCC is distributed in the hope that it will be useful,
11*38fd1498Szrj    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*38fd1498Szrj    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*38fd1498Szrj    GNU General Public License for more details.
14*38fd1498Szrj 
15*38fd1498Szrj    Under Section 7 of GPL version 3, you are granted additional
16*38fd1498Szrj    permissions described in the GCC Runtime Library Exception, version
17*38fd1498Szrj    3.1, as published by the Free Software Foundation.
18*38fd1498Szrj 
19*38fd1498Szrj    You should have received a copy of the GNU General Public License and
20*38fd1498Szrj    a copy of the GCC Runtime Library Exception along with this program;
21*38fd1498Szrj    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
22*38fd1498Szrj    <http://www.gnu.org/licenses/>.  */
23*38fd1498Szrj 
24*38fd1498Szrj #ifndef __CROSS_STDARG_H_INCLUDED
25*38fd1498Szrj #define __CROSS_STDARG_H_INCLUDED
26*38fd1498Szrj 
27*38fd1498Szrj /* Make sure that for non x64 targets cross builtins are defined.  */
28*38fd1498Szrj #ifndef __x86_64__
29*38fd1498Szrj /* Call abi ms_abi.  */
30*38fd1498Szrj #define __builtin_ms_va_list __builtin_va_list
31*38fd1498Szrj #define __builtin_ms_va_copy __builtin_va_copy
32*38fd1498Szrj #define __builtin_ms_va_start __builtin_va_start
33*38fd1498Szrj #define __builtin_ms_va_end __builtin_va_end
34*38fd1498Szrj 
35*38fd1498Szrj /* Call abi sysv_abi.  */
36*38fd1498Szrj #define __builtin_sysv_va_list __builtin_va_list
37*38fd1498Szrj #define __builtin_sysv_va_copy __builtin_va_copy
38*38fd1498Szrj #define __builtin_sysv_va_start __builtin_va_start
39*38fd1498Szrj #define __builtin_sysv_va_end __builtin_va_end
40*38fd1498Szrj #endif
41*38fd1498Szrj 
42*38fd1498Szrj #define __ms_va_copy(__d,__s) __builtin_ms_va_copy(__d,__s)
43*38fd1498Szrj #define __ms_va_start(__v,__l) __builtin_ms_va_start(__v,__l)
44*38fd1498Szrj #define __ms_va_arg(__v,__l)	__builtin_va_arg(__v,__l)
45*38fd1498Szrj #define __ms_va_end(__v) __builtin_ms_va_end(__v)
46*38fd1498Szrj 
47*38fd1498Szrj #define __sysv_va_copy(__d,__s) __builtin_sysv_va_copy(__d,__s)
48*38fd1498Szrj #define __sysv_va_start(__v,__l) __builtin_sysv_va_start(__v,__l)
49*38fd1498Szrj #define __sysv_va_arg(__v,__l)	__builtin_va_arg(__v,__l)
50*38fd1498Szrj #define __sysv_va_end(__v) __builtin_sysv_va_end(__v)
51*38fd1498Szrj 
52*38fd1498Szrj #ifndef __GNUC_SYSV_VA_LIST
53*38fd1498Szrj #define __GNUC_SYSV_VA_LIST
54*38fd1498Szrj   typedef __builtin_sysv_va_list __gnuc_sysv_va_list;
55*38fd1498Szrj #endif
56*38fd1498Szrj 
57*38fd1498Szrj #ifndef _SYSV_VA_LIST_DEFINED
58*38fd1498Szrj #define _SYSV_VA_LIST_DEFINED
59*38fd1498Szrj   typedef __gnuc_sysv_va_list sysv_va_list;
60*38fd1498Szrj #endif
61*38fd1498Szrj 
62*38fd1498Szrj #ifndef __GNUC_MS_VA_LIST
63*38fd1498Szrj #define __GNUC_MS_VA_LIST
64*38fd1498Szrj   typedef __builtin_ms_va_list __gnuc_ms_va_list;
65*38fd1498Szrj #endif
66*38fd1498Szrj 
67*38fd1498Szrj #ifndef _MS_VA_LIST_DEFINED
68*38fd1498Szrj #define _MS_VA_LIST_DEFINED
69*38fd1498Szrj   typedef __gnuc_ms_va_list ms_va_list;
70*38fd1498Szrj #endif
71*38fd1498Szrj 
72*38fd1498Szrj #endif /* __CROSS_STDARG_H_INCLUDED */
73