1 /* ACC --- Automatic Compiler Configuration
3 This file is part of the LZO real-time data compression library.
5 Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
6 Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
7 Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
8 Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
9 Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
10 Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
11 Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
12 Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
13 Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
14 Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
15 Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
16 Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
17 Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
18 Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
19 Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
20 Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
23 The LZO library is free software; you can redistribute it and/or
24 modify it under the terms of the GNU General Public License as
25 published by the Free Software Foundation; either version 2 of
26 the License, or (at your option) any later version.
28 The LZO library is distributed in the hope that it will be useful,
29 but WITHOUT ANY WARRANTY; without even the implied warranty of
30 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 GNU General Public License for more details.
33 You should have received a copy of the GNU General Public License
34 along with the LZO library; see the file COPYING.
35 If not, write to the Free Software Foundation, Inc.,
36 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
38 Markus F.X.J. Oberhumer
39 <markus@oberhumer.com>
40 http://www.oberhumer.com/opensource/lzo/
44 #ifndef __ACC_H_INCLUDED
45 #define __ACC_H_INCLUDED 1
46 #define ACC_VERSION 20110125L
47 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
48 # define __CYGWIN__ __CYGWIN32__
50 #if defined(__IBMCPP__) && !defined(__IBMC__)
51 # define __IBMC__ __IBMCPP__
53 #if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
54 # define __INTEL_COMPILER __ICL
56 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
57 # define _ALL_SOURCE 1
59 #if defined(__mips__) && defined(__R5900__)
60 # if !defined(__LONG_MAX__)
61 # define __LONG_MAX__ 9223372036854775807L
64 #if defined(__INTEL_COMPILER) && defined(__linux__)
65 # pragma warning(disable: 193)
67 #if defined(__KEIL__) && defined(__C166__)
68 # pragma warning disable = 322
69 #elif 0 && defined(__C251__)
70 # pragma warning disable = 322
72 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
73 # if (_MSC_VER >= 1300)
74 # pragma warning(disable: 4668)
77 #if defined(__POCC__) && defined(_WIN32)
78 # if (__POCC__ >= 400)
79 # pragma warn(disable: 2216)
82 #if 0 && defined(__WATCOMC__)
83 # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
84 # pragma warning 203 9
87 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
90 #if (ACC_CFG_NO_CONFIG_HEADER)
91 #elif defined(ACC_CFG_CONFIG_HEADER)
92 # include ACC_CFG_CONFIG_HEADER
95 #if (ACC_CFG_NO_LIMITS_H)
96 #elif (ACC_LIBC_NAKED) || (ACC_BROKEN_LIMITS_H)
97 #ifndef __ACC_FALLBACK_LIMITS_H_INCLUDED
98 #define __ACC_FALLBACK_LIMITS_H_INCLUDED 1
104 #ifndef __SCHAR_MAX__
105 #define __SCHAR_MAX__ 127
108 #define __SHRT_MAX__ 32767
111 #define __INT_MAX__ 2147483647
114 #if defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
115 #define __LONG_MAX__ 9223372036854775807L
117 #define __LONG_MAX__ 2147483647L
123 #define SCHAR_MIN (-1 - SCHAR_MAX)
124 #define SCHAR_MAX (__SCHAR_MAX__)
125 #define UCHAR_MAX (SCHAR_MAX * 2 + 1)
129 #define SHRT_MIN (-1 - SHRT_MAX)
130 #define SHRT_MAX (__SHRT_MAX__)
131 #if ((__INT_MAX__) == (__SHRT_MAX__))
132 #define USHRT_MAX (SHRT_MAX * 2U + 1U)
134 #define USHRT_MAX (SHRT_MAX * 2 + 1)
139 #define INT_MIN (-1 - INT_MAX)
140 #define INT_MAX (__INT_MAX__)
141 #define UINT_MAX (INT_MAX * 2U + 1U)
145 #define LONG_MIN (-1L - LONG_MAX)
146 #define LONG_MAX ((__LONG_MAX__) + 0L)
147 #define ULONG_MAX (LONG_MAX * 2UL + 1UL)
150 #if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED)
152 #define CHAR_MAX UCHAR_MAX
154 #define CHAR_MIN SCHAR_MIN
155 #define CHAR_MAX SCHAR_MAX
162 #define ACC_0xffffL 0xfffful
163 #define ACC_0xffffffffL 0xfffffffful
165 #define ACC_0xffffL 65535ul
166 #define ACC_0xffffffffL 4294967295ul
168 #if (ACC_0xffffL == ACC_0xffffffffL)
169 # error "your preprocessor is broken 1"
171 #if (16ul * 16384ul != 262144ul)
172 # error "your preprocessor is broken 2"
175 #if (32767 >= 4294967295ul)
176 # error "your preprocessor is broken 3"
178 #if (65535u >= 4294967295ul)
179 # error "your preprocessor is broken 4"
182 #if (UINT_MAX == ACC_0xffffL)
183 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
187 # if !defined(_MSDOS)
190 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
191 # if (__VERSION == 520) && (MB_LEN_MAX == 1)
192 # if !defined(__AZTEC_C__)
193 # define __AZTEC_C__ __VERSION
195 # if !defined(__DOS__)
201 #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
202 # define ptrdiff_t long
203 # define _PTRDIFF_T_DEFINED 1
205 #if (UINT_MAX == ACC_0xffffL)
206 # undef __ACC_RENAME_A
207 # undef __ACC_RENAME_B
208 # if defined(__AZTEC_C__) && defined(__DOS__)
209 # define __ACC_RENAME_A 1
210 # elif defined(_MSC_VER) && defined(MSDOS)
211 # if (_MSC_VER < 600)
212 # define __ACC_RENAME_A 1
213 # elif (_MSC_VER < 700)
214 # define __ACC_RENAME_B 1
216 # elif defined(__TSC__) && defined(__OS2__)
217 # define __ACC_RENAME_A 1
218 # elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
219 # define __ACC_RENAME_A 1
220 # elif defined(__PACIFIC__) && defined(DOS)
224 # if !defined(__near)
228 # if defined(__ACC_RENAME_A)
229 # if !defined(__cdecl)
230 # define __cdecl cdecl
235 # if !defined(__huge)
238 # if !defined(__near)
241 # if !defined(__pascal)
242 # define __pascal pascal
244 # if !defined(__huge)
247 # elif defined(__ACC_RENAME_B)
248 # if !defined(__cdecl)
249 # define __cdecl _cdecl
254 # if !defined(__huge)
255 # define __huge _huge
257 # if !defined(__near)
258 # define __near _near
260 # if !defined(__pascal)
261 # define __pascal _pascal
263 # elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
264 # if !defined(__cdecl)
265 # define __cdecl cdecl
267 # if !defined(__pascal)
268 # define __pascal pascal
271 # undef __ACC_RENAME_A
272 # undef __ACC_RENAME_B
274 #if (UINT_MAX == ACC_0xffffL)
275 #if defined(__AZTEC_C__) && defined(__DOS__)
276 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
277 #elif defined(_MSC_VER) && defined(MSDOS)
278 # if (_MSC_VER < 600)
279 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
281 # if (_MSC_VER < 700)
282 # define ACC_BROKEN_INTEGRAL_PROMOTION 1
283 # define ACC_BROKEN_SIZEOF 1
285 #elif defined(__PACIFIC__) && defined(DOS)
286 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
287 #elif defined(__TURBOC__) && defined(__MSDOS__)
288 # if (__TURBOC__ < 0x0150)
289 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
290 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
291 # define ACC_BROKEN_INTEGRAL_PROMOTION 1
293 # if (__TURBOC__ < 0x0200)
294 # define ACC_BROKEN_SIZEOF 1
296 # if (__TURBOC__ < 0x0400) && defined(__cplusplus)
297 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
299 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
300 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
301 # define ACC_BROKEN_SIZEOF 1
304 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
305 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
307 #if defined(_CRAY) && defined(_CRAY1)
308 # define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
310 #define ACC_PP_STRINGIZE(x) #x
311 #define ACC_PP_MACRO_EXPAND(x) ACC_PP_STRINGIZE(x)
312 #define ACC_PP_CONCAT2(a,b) a ## b
313 #define ACC_PP_CONCAT3(a,b,c) a ## b ## c
314 #define ACC_PP_CONCAT4(a,b,c,d) a ## b ## c ## d
315 #define ACC_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
316 #define ACC_PP_ECONCAT2(a,b) ACC_PP_CONCAT2(a,b)
317 #define ACC_PP_ECONCAT3(a,b,c) ACC_PP_CONCAT3(a,b,c)
318 #define ACC_PP_ECONCAT4(a,b,c,d) ACC_PP_CONCAT4(a,b,c,d)
319 #define ACC_PP_ECONCAT5(a,b,c,d,e) ACC_PP_CONCAT5(a,b,c,d,e)
321 #define ACC_CPP_STRINGIZE(x) #x
322 #define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)
323 #define ACC_CPP_CONCAT2(a,b) a ## b
324 #define ACC_CPP_CONCAT3(a,b,c) a ## b ## c
325 #define ACC_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d
326 #define ACC_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
327 #define ACC_CPP_ECONCAT2(a,b) ACC_CPP_CONCAT2(a,b)
328 #define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)
329 #define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)
330 #define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)
332 #define __ACC_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o))
333 #if 1 && defined(__cplusplus)
334 # if !defined(__STDC_CONSTANT_MACROS)
335 # define __STDC_CONSTANT_MACROS 1
337 # if !defined(__STDC_LIMIT_MACROS)
338 # define __STDC_LIMIT_MACROS 1
341 #if defined(__cplusplus)
342 # define ACC_EXTERN_C extern "C"
344 # define ACC_EXTERN_C extern
346 #if !defined(__ACC_OS_OVERRIDE)
347 #if (ACC_OS_FREESTANDING)
348 # define ACC_INFO_OS "freestanding"
349 #elif (ACC_OS_EMBEDDED)
350 # define ACC_INFO_OS "embedded"
351 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
352 # define ACC_OS_EMBEDDED 1
353 # define ACC_INFO_OS "embedded"
354 #elif defined(__CYGWIN__) && defined(__GNUC__)
355 # define ACC_OS_CYGWIN 1
356 # define ACC_INFO_OS "cygwin"
357 #elif defined(__EMX__) && defined(__GNUC__)
358 # define ACC_OS_EMX 1
359 # define ACC_INFO_OS "emx"
360 #elif defined(__BEOS__)
361 # define ACC_OS_BEOS 1
362 # define ACC_INFO_OS "beos"
363 #elif defined(__Lynx__)
364 # define ACC_OS_LYNXOS 1
365 # define ACC_INFO_OS "lynxos"
366 #elif defined(__OS400__)
367 # define ACC_OS_OS400 1
368 # define ACC_INFO_OS "os400"
369 #elif defined(__QNX__)
370 # define ACC_OS_QNX 1
371 # define ACC_INFO_OS "qnx"
372 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
373 # define ACC_OS_DOS32 1
374 # define ACC_INFO_OS "dos32"
375 #elif defined(__BORLANDC__) && defined(__DPMI16__)
376 # define ACC_OS_DOS16 1
377 # define ACC_INFO_OS "dos16"
378 #elif defined(__ZTC__) && defined(DOS386)
379 # define ACC_OS_DOS32 1
380 # define ACC_INFO_OS "dos32"
381 #elif defined(__OS2__) || defined(__OS2V2__)
382 # if (UINT_MAX == ACC_0xffffL)
383 # define ACC_OS_OS216 1
384 # define ACC_INFO_OS "os216"
385 # elif (UINT_MAX == ACC_0xffffffffL)
386 # define ACC_OS_OS2 1
387 # define ACC_INFO_OS "os2"
389 # error "check your limits.h header"
391 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
392 # define ACC_OS_WIN64 1
393 # define ACC_INFO_OS "win64"
394 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
395 # define ACC_OS_WIN32 1
396 # define ACC_INFO_OS "win32"
397 #elif defined(__MWERKS__) && defined(__INTEL__)
398 # define ACC_OS_WIN32 1
399 # define ACC_INFO_OS "win32"
400 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
401 # if (UINT_MAX == ACC_0xffffL)
402 # define ACC_OS_WIN16 1
403 # define ACC_INFO_OS "win16"
404 # elif (UINT_MAX == ACC_0xffffffffL)
405 # define ACC_OS_WIN32 1
406 # define ACC_INFO_OS "win32"
408 # error "check your limits.h header"
410 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
411 # if (UINT_MAX == ACC_0xffffL)
412 # define ACC_OS_DOS16 1
413 # define ACC_INFO_OS "dos16"
414 # elif (UINT_MAX == ACC_0xffffffffL)
415 # define ACC_OS_DOS32 1
416 # define ACC_INFO_OS "dos32"
418 # error "check your limits.h header"
420 #elif defined(__WATCOMC__)
421 # if defined(__NT__) && (UINT_MAX == ACC_0xffffL)
422 # define ACC_OS_DOS16 1
423 # define ACC_INFO_OS "dos16"
424 # elif defined(__NT__) && (__WATCOMC__ < 1100)
425 # define ACC_OS_WIN32 1
426 # define ACC_INFO_OS "win32"
427 # elif defined(__linux__) || defined(__LINUX__)
428 # define ACC_OS_POSIX 1
429 # define ACC_INFO_OS "posix"
431 # error "please specify a target using the -bt compiler option"
433 #elif defined(__palmos__)
434 # define ACC_OS_PALMOS 1
435 # define ACC_INFO_OS "palmos"
436 #elif defined(__TOS__) || defined(__atarist__)
437 # define ACC_OS_TOS 1
438 # define ACC_INFO_OS "tos"
439 #elif defined(macintosh) && !defined(__ppc__)
440 # define ACC_OS_MACCLASSIC 1
441 # define ACC_INFO_OS "macclassic"
443 # define ACC_OS_VMS 1
444 # define ACC_INFO_OS "vms"
445 #elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
446 # define ACC_OS_CONSOLE 1
447 # define ACC_OS_CONSOLE_PS2 1
448 # define ACC_INFO_OS "console"
449 # define ACC_INFO_OS_CONSOLE "ps2"
450 #elif (defined(__mips__) && defined(__psp__))
451 # define ACC_OS_CONSOLE 1
452 # define ACC_OS_CONSOLE_PSP 1
453 # define ACC_INFO_OS "console"
454 # define ACC_INFO_OS_CONSOLE "psp"
456 # define ACC_OS_POSIX 1
457 # define ACC_INFO_OS "posix"
460 # if defined(_AIX) || defined(__AIX__) || defined(__aix__)
461 # define ACC_OS_POSIX_AIX 1
462 # define ACC_INFO_OS_POSIX "aix"
463 # elif defined(__FreeBSD__)
464 # define ACC_OS_POSIX_FREEBSD 1
465 # define ACC_INFO_OS_POSIX "freebsd"
466 # elif defined(__hpux__) || defined(__hpux)
467 # define ACC_OS_POSIX_HPUX 1
468 # define ACC_INFO_OS_POSIX "hpux"
469 # elif defined(__INTERIX)
470 # define ACC_OS_POSIX_INTERIX 1
471 # define ACC_INFO_OS_POSIX "interix"
472 # elif defined(__IRIX__) || defined(__irix__)
473 # define ACC_OS_POSIX_IRIX 1
474 # define ACC_INFO_OS_POSIX "irix"
475 # elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
476 # define ACC_OS_POSIX_LINUX 1
477 # define ACC_INFO_OS_POSIX "linux"
478 # elif defined(__APPLE__) || defined(__MACOS__)
479 # define ACC_OS_POSIX_MACOSX 1
480 # define ACC_INFO_OS_POSIX "macosx"
481 # elif defined(__minix__) || defined(__minix)
482 # define ACC_OS_POSIX_MINIX 1
483 # define ACC_INFO_OS_POSIX "minix"
484 # elif defined(__NetBSD__)
485 # define ACC_OS_POSIX_NETBSD 1
486 # define ACC_INFO_OS_POSIX "netbsd"
487 # elif defined(__OpenBSD__)
488 # define ACC_OS_POSIX_OPENBSD 1
489 # define ACC_INFO_OS_POSIX "openbsd"
490 # elif defined(__osf__)
491 # define ACC_OS_POSIX_OSF 1
492 # define ACC_INFO_OS_POSIX "osf"
493 # elif defined(__solaris__) || defined(__sun)
494 # if defined(__SVR4) || defined(__svr4__)
495 # define ACC_OS_POSIX_SOLARIS 1
496 # define ACC_INFO_OS_POSIX "solaris"
498 # define ACC_OS_POSIX_SUNOS 1
499 # define ACC_INFO_OS_POSIX "sunos"
501 # elif defined(__ultrix__) || defined(__ultrix)
502 # define ACC_OS_POSIX_ULTRIX 1
503 # define ACC_INFO_OS_POSIX "ultrix"
504 # elif defined(_UNICOS)
505 # define ACC_OS_POSIX_UNICOS 1
506 # define ACC_INFO_OS_POSIX "unicos"
508 # define ACC_OS_POSIX_UNKNOWN 1
509 # define ACC_INFO_OS_POSIX "unknown"
513 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
514 # if (UINT_MAX != ACC_0xffffL)
515 # error "this should not happen"
517 # if (ULONG_MAX != ACC_0xffffffffL)
518 # error "this should not happen"
521 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
522 # if (UINT_MAX != ACC_0xffffffffL)
523 # error "this should not happen"
525 # if (ULONG_MAX != ACC_0xffffffffL)
526 # error "this should not happen"
529 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
530 # define ACC_CC_CILLY 1
531 # define ACC_INFO_CC "Cilly"
532 # if defined(__CILLY__)
533 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CILLY__)
535 # define ACC_INFO_CCVER "unknown"
537 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
538 # define ACC_CC_SDCC 1
539 # define ACC_INFO_CC "sdcc"
540 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(SDCC)
541 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
542 # define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
543 # define ACC_INFO_CC "Pathscale C"
544 # define ACC_INFO_CCVER __PATHSCALE__
545 #elif defined(__INTEL_COMPILER)
546 # define ACC_CC_INTELC 1
547 # define ACC_INFO_CC "Intel C"
548 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
549 # if defined(_WIN32) || defined(_WIN64)
550 # define ACC_CC_SYNTAX_MSC 1
552 # define ACC_CC_SYNTAX_GNUC 1
554 #elif defined(__POCC__) && defined(_WIN32)
555 # define ACC_CC_PELLESC 1
556 # define ACC_INFO_CC "Pelles C"
557 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__POCC__)
558 #elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
559 # if defined(__GNUC_PATCHLEVEL__)
560 # define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
562 # define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
564 # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
565 # define ACC_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__)
567 # define ACC_CC_CLANG_CLANG 0x010000L
569 # define ACC_CC_CLANG ACC_CC_CLANG_GNUC
570 # define ACC_INFO_CC "clang"
571 # define ACC_INFO_CCVER __VERSION__
572 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
573 # if defined(__GNUC_PATCHLEVEL__)
574 # define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
576 # define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
578 # define ACC_CC_LLVM ACC_CC_LLVM_GNUC
579 # define ACC_INFO_CC "llvm-gcc"
580 # define ACC_INFO_CCVER __VERSION__
581 #elif defined(__GNUC__) && defined(__VERSION__)
582 # if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
583 # define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
584 # elif defined(__GNUC_MINOR__)
585 # define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
587 # define ACC_CC_GNUC (__GNUC__ * 0x10000L)
589 # define ACC_INFO_CC "gcc"
590 # define ACC_INFO_CCVER __VERSION__
591 #elif defined(__ACK__) && defined(_ACK)
592 # define ACC_CC_ACK 1
593 # define ACC_INFO_CC "Amsterdam Compiler Kit C"
594 # define ACC_INFO_CCVER "unknown"
595 #elif defined(__AZTEC_C__)
596 # define ACC_CC_AZTECC 1
597 # define ACC_INFO_CC "Aztec C"
598 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__AZTEC_C__)
599 #elif defined(__CODEGEARC__)
600 # define ACC_CC_CODEGEARC 1
601 # define ACC_INFO_CC "CodeGear C"
602 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CODEGEARC__)
603 #elif defined(__BORLANDC__)
604 # define ACC_CC_BORLANDC 1
605 # define ACC_INFO_CC "Borland C"
606 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__BORLANDC__)
607 #elif defined(_CRAYC) && defined(_RELEASE)
608 # define ACC_CC_CRAYC 1
609 # define ACC_INFO_CC "Cray C"
610 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_RELEASE)
611 #elif defined(__DMC__) && defined(__SC__)
612 # define ACC_CC_DMC 1
613 # define ACC_INFO_CC "Digital Mars C"
614 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DMC__)
615 #elif defined(__DECC)
616 # define ACC_CC_DECC 1
617 # define ACC_INFO_CC "DEC C"
618 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DECC)
619 #elif defined(__HIGHC__)
620 # define ACC_CC_HIGHC 1
621 # define ACC_INFO_CC "MetaWare High C"
622 # define ACC_INFO_CCVER "unknown"
623 #elif defined(__IAR_SYSTEMS_ICC__)
624 # define ACC_CC_IARC 1
625 # define ACC_INFO_CC "IAR C"
626 # if defined(__VER__)
627 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__VER__)
629 # define ACC_INFO_CCVER "unknown"
631 #elif defined(__IBMC__)
632 # define ACC_CC_IBMC 1
633 # define ACC_INFO_CC "IBM C"
634 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
635 #elif defined(__KEIL__) && defined(__C166__)
636 # define ACC_CC_KEILC 1
637 # define ACC_INFO_CC "Keil C"
638 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__C166__)
639 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
640 # define ACC_CC_LCCWIN32 1
641 # define ACC_INFO_CC "lcc-win32"
642 # define ACC_INFO_CCVER "unknown"
643 #elif defined(__LCC__)
644 # define ACC_CC_LCC 1
645 # define ACC_INFO_CC "lcc"
646 # if defined(__LCC_VERSION__)
647 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
649 # define ACC_INFO_CCVER "unknown"
651 #elif defined(_MSC_VER)
652 # define ACC_CC_MSC 1
653 # define ACC_INFO_CC "Microsoft C"
654 # if defined(_MSC_FULL_VER)
655 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
657 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
659 #elif defined(__MWERKS__)
660 # define ACC_CC_MWERKS 1
661 # define ACC_INFO_CC "Metrowerks C"
662 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__MWERKS__)
663 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
664 # define ACC_CC_NDPC 1
665 # define ACC_INFO_CC "Microway NDP C"
666 # define ACC_INFO_CCVER "unknown"
667 #elif defined(__PACIFIC__)
668 # define ACC_CC_PACIFICC 1
669 # define ACC_INFO_CC "Pacific C"
670 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PACIFIC__)
671 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
672 # define ACC_CC_PGI 1
673 # define ACC_INFO_CC "Portland Group PGI C"
674 # define ACC_INFO_CCVER "unknown"
675 #elif defined(__PUREC__) && defined(__TOS__)
676 # define ACC_CC_PUREC 1
677 # define ACC_INFO_CC "Pure C"
678 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PUREC__)
679 #elif defined(__SC__) && defined(__ZTC__)
680 # define ACC_CC_SYMANTECC 1
681 # define ACC_INFO_CC "Symantec C"
682 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SC__)
683 #elif defined(__SUNPRO_C)
684 # define ACC_INFO_CC "SunPro C"
685 # if ((__SUNPRO_C)+0 > 0)
686 # define ACC_CC_SUNPROC __SUNPRO_C
687 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_C)
689 # define ACC_CC_SUNPROC 1
690 # define ACC_INFO_CCVER "unknown"
692 #elif defined(__SUNPRO_CC)
693 # define ACC_INFO_CC "SunPro C"
694 # if ((__SUNPRO_CC)+0 > 0)
695 # define ACC_CC_SUNPROC __SUNPRO_CC
696 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
698 # define ACC_CC_SUNPROC 1
699 # define ACC_INFO_CCVER "unknown"
701 #elif defined(__TINYC__)
702 # define ACC_CC_TINYC 1
703 # define ACC_INFO_CC "Tiny C"
704 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TINYC__)
705 #elif defined(__TSC__)
706 # define ACC_CC_TOPSPEEDC 1
707 # define ACC_INFO_CC "TopSpeed C"
708 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TSC__)
709 #elif defined(__WATCOMC__)
710 # define ACC_CC_WATCOMC 1
711 # define ACC_INFO_CC "Watcom C"
712 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__WATCOMC__)
713 #elif defined(__TURBOC__)
714 # define ACC_CC_TURBOC 1
715 # define ACC_INFO_CC "Turbo C"
716 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TURBOC__)
717 #elif defined(__ZTC__)
718 # define ACC_CC_ZORTECHC 1
719 # define ACC_INFO_CC "Zortech C"
720 # if (__ZTC__ == 0x310)
721 # define ACC_INFO_CCVER "0x310"
723 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ZTC__)
726 # define ACC_CC_UNKNOWN 1
727 # define ACC_INFO_CC "unknown"
728 # define ACC_INFO_CCVER "unknown"
730 #if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
731 # error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
733 #if !defined(__ACC_ARCH_OVERRIDE) && !(ACC_ARCH_GENERIC) && defined(_CRAY)
734 # if (UINT_MAX > ACC_0xffffffffL) && defined(_CRAY)
735 # if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
736 # define ACC_ARCH_CRAY_MPP 1
737 # elif defined(_CRAY1)
738 # define ACC_ARCH_CRAY_PVP 1
742 #if !defined(__ACC_ARCH_OVERRIDE)
743 #if (ACC_ARCH_GENERIC)
744 # define ACC_INFO_ARCH "generic"
745 #elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
746 # define ACC_ARCH_I086 1
747 # define ACC_ARCH_IA16 1
748 # define ACC_INFO_ARCH "i086"
749 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
750 # define ACC_ARCH_ALPHA 1
751 # define ACC_INFO_ARCH "alpha"
752 #elif (ACC_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
753 # define ACC_ARCH_ALPHA 1
754 # define ACC_INFO_ARCH "alpha"
755 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
756 # define ACC_ARCH_AMD64 1
757 # define ACC_INFO_ARCH "amd64"
758 #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
759 # define ACC_ARCH_ARM 1
760 # define ACC_ARCH_ARM_THUMB 1
761 # define ACC_INFO_ARCH "arm_thumb"
762 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
763 # define ACC_ARCH_ARM 1
764 # if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
765 # define ACC_ARCH_ARM_THUMB 1
766 # define ACC_INFO_ARCH "arm_thumb"
767 # elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
768 # define ACC_INFO_ARCH "arm"
770 # define ACC_INFO_ARCH "arm"
772 #elif defined(__arm__) || defined(_M_ARM)
773 # define ACC_ARCH_ARM 1
774 # define ACC_INFO_ARCH "arm"
775 #elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
776 # define ACC_ARCH_AVR 1
777 # define ACC_INFO_ARCH "avr"
778 #elif defined(__avr32__) || defined(__AVR32__)
779 # define ACC_ARCH_AVR32 1
780 # define ACC_INFO_ARCH "avr32"
781 #elif defined(__bfin__)
782 # define ACC_ARCH_BLACKFIN 1
783 # define ACC_INFO_ARCH "blackfin"
784 #elif (UINT_MAX == ACC_0xffffL) && defined(__C166__)
785 # define ACC_ARCH_C166 1
786 # define ACC_INFO_ARCH "c166"
787 #elif defined(__cris__)
788 # define ACC_ARCH_CRIS 1
789 # define ACC_INFO_ARCH "cris"
790 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
791 # define ACC_ARCH_EZ80 1
792 # define ACC_INFO_ARCH "ez80"
793 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
794 # define ACC_ARCH_H8300 1
795 # define ACC_INFO_ARCH "h8300"
796 #elif defined(__hppa__) || defined(__hppa)
797 # define ACC_ARCH_HPPA 1
798 # define ACC_INFO_ARCH "hppa"
799 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
800 # define ACC_ARCH_I386 1
801 # define ACC_ARCH_IA32 1
802 # define ACC_INFO_ARCH "i386"
803 #elif (ACC_CC_ZORTECHC && defined(__I86__))
804 # define ACC_ARCH_I386 1
805 # define ACC_ARCH_IA32 1
806 # define ACC_INFO_ARCH "i386"
807 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC) && defined(_I386)
808 # define ACC_ARCH_I386 1
809 # define ACC_ARCH_IA32 1
810 # define ACC_INFO_ARCH "i386"
811 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
812 # define ACC_ARCH_IA64 1
813 # define ACC_INFO_ARCH "ia64"
814 #elif (UINT_MAX == ACC_0xffffL) && defined(__m32c__)
815 # define ACC_ARCH_M16C 1
816 # define ACC_INFO_ARCH "m16c"
817 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
818 # define ACC_ARCH_M16C 1
819 # define ACC_INFO_ARCH "m16c"
820 #elif defined(__m32r__)
821 # define ACC_ARCH_M32R 1
822 # define ACC_INFO_ARCH "m32r"
823 #elif (ACC_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
824 # define ACC_ARCH_M68K 1
825 # define ACC_INFO_ARCH "m68k"
826 #elif (UINT_MAX == ACC_0xffffL) && defined(__C251__)
827 # define ACC_ARCH_MCS251 1
828 # define ACC_INFO_ARCH "mcs251"
829 #elif (UINT_MAX == ACC_0xffffL) && defined(__C51__)
830 # define ACC_ARCH_MCS51 1
831 # define ACC_INFO_ARCH "mcs51"
832 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
833 # define ACC_ARCH_MCS51 1
834 # define ACC_INFO_ARCH "mcs51"
835 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
836 # define ACC_ARCH_MIPS 1
837 # define ACC_INFO_ARCH "mips"
838 #elif (UINT_MAX == ACC_0xffffL) && defined(__MSP430__)
839 # define ACC_ARCH_MSP430 1
840 # define ACC_INFO_ARCH "msp430"
841 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
842 # define ACC_ARCH_MSP430 1
843 # define ACC_INFO_ARCH "msp430"
844 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
845 # define ACC_ARCH_POWERPC 1
846 # define ACC_INFO_ARCH "powerpc"
847 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
848 # define ACC_ARCH_S390 1
849 # define ACC_INFO_ARCH "s390"
850 #elif defined(__sh__) || defined(_M_SH)
851 # define ACC_ARCH_SH 1
852 # define ACC_INFO_ARCH "sh"
853 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
854 # define ACC_ARCH_SPARC 1
855 # define ACC_INFO_ARCH "sparc"
856 #elif defined(__SPU__)
857 # define ACC_ARCH_SPU 1
858 # define ACC_INFO_ARCH "spu"
859 #elif (UINT_MAX == ACC_0xffffL) && defined(__z80)
860 # define ACC_ARCH_Z80 1
861 # define ACC_INFO_ARCH "z80"
862 #elif (ACC_ARCH_CRAY_PVP)
863 # if defined(_CRAYSV1)
864 # define ACC_ARCH_CRAY_SV1 1
865 # define ACC_INFO_ARCH "cray_sv1"
867 # define ACC_ARCH_CRAY_T90 1
868 # define ACC_INFO_ARCH "cray_t90"
870 # define ACC_ARCH_CRAY_YMP 1
871 # define ACC_INFO_ARCH "cray_ymp"
873 # define ACC_ARCH_CRAY_XMP 1
874 # define ACC_INFO_ARCH "cray_xmp"
877 # define ACC_ARCH_UNKNOWN 1
878 # define ACC_INFO_ARCH "unknown"
881 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
882 # error "FIXME - missing define for CPU architecture"
884 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
885 # error "FIXME - missing WIN32 define for CPU architecture"
887 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
888 # error "FIXME - missing WIN64 define for CPU architecture"
890 #if (ACC_OS_OS216 || ACC_OS_WIN16)
891 # define ACC_ARCH_I086PM 1
892 # define ACC_ARCH_IA16PM 1
893 #elif 1 && (ACC_OS_DOS16 && defined(BLX286))
894 # define ACC_ARCH_I086PM 1
895 # define ACC_ARCH_IA16PM 1
896 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
897 # define ACC_ARCH_I086PM 1
898 # define ACC_ARCH_IA16PM 1
899 #elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
900 # define ACC_ARCH_I086PM 1
901 # define ACC_ARCH_IA16PM 1
903 #if (ACC_ARCH_ARM_THUMB) && !(ACC_ARCH_ARM)
904 # error "this should not happen"
906 #if (ACC_ARCH_I086PM) && !(ACC_ARCH_I086)
907 # error "this should not happen"
910 # if (UINT_MAX != ACC_0xffffL)
911 # error "this should not happen"
913 # if (ULONG_MAX != ACC_0xffffffffL)
914 # error "this should not happen"
918 # if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
919 # error "this should not happen"
921 # if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
922 # error "this should not happen"
924 # if (ULONG_MAX != ACC_0xffffffffL)
925 # error "this should not happen"
928 #if !defined(__ACC_MM_OVERRIDE)
930 #if (UINT_MAX != ACC_0xffffL)
931 # error "this should not happen"
933 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
934 # define ACC_MM_TINY 1
935 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
936 # define ACC_MM_HUGE 1
937 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
938 # define ACC_MM_SMALL 1
939 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
940 # define ACC_MM_MEDIUM 1
941 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
942 # define ACC_MM_COMPACT 1
943 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
944 # define ACC_MM_LARGE 1
945 #elif (ACC_CC_AZTECC)
946 # if defined(_LARGE_CODE) && defined(_LARGE_DATA)
947 # define ACC_MM_LARGE 1
948 # elif defined(_LARGE_CODE)
949 # define ACC_MM_MEDIUM 1
950 # elif defined(_LARGE_DATA)
951 # define ACC_MM_COMPACT 1
953 # define ACC_MM_SMALL 1
955 #elif (ACC_CC_ZORTECHC && defined(__VCM__))
956 # define ACC_MM_LARGE 1
958 # error "unknown memory model"
960 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
961 #define ACC_HAVE_MM_HUGE_PTR 1
962 #define ACC_HAVE_MM_HUGE_ARRAY 1
964 # undef ACC_HAVE_MM_HUGE_ARRAY
966 #if (ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_ZORTECHC)
967 # undef ACC_HAVE_MM_HUGE_PTR
968 # undef ACC_HAVE_MM_HUGE_ARRAY
969 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
970 # undef ACC_HAVE_MM_HUGE_ARRAY
971 #elif (ACC_CC_MSC && defined(_QC))
972 # undef ACC_HAVE_MM_HUGE_ARRAY
973 # if (_MSC_VER < 600)
974 # undef ACC_HAVE_MM_HUGE_PTR
976 #elif (ACC_CC_TURBOC && (__TURBOC__ < 0x0295))
977 # undef ACC_HAVE_MM_HUGE_ARRAY
979 #if (ACC_ARCH_I086PM) && !(ACC_HAVE_MM_HUGE_PTR)
981 # error "this should not happen"
982 # elif (ACC_CC_ZORTECHC)
984 # error "this should not happen"
990 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
991 extern void __near __cdecl
_AHSHIFT(void);
992 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
993 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
994 extern void __near __cdecl
_AHSHIFT(void);
995 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
996 #elif (ACC_CC_MSC || ACC_CC_TOPSPEEDC)
997 extern void __near __cdecl
_AHSHIFT(void);
998 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
999 #elif (ACC_CC_TURBOC && (__TURBOC__ >= 0x0295))
1000 extern void __near __cdecl
_AHSHIFT(void);
1001 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
1002 #elif ((ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_TURBOC) && ACC_OS_DOS16)
1003 # define ACC_MM_AHSHIFT 12
1004 #elif (ACC_CC_WATCOMC)
1005 extern unsigned char _HShift
;
1006 # define ACC_MM_AHSHIFT ((unsigned) _HShift)
1008 # error "FIXME - implement ACC_MM_AHSHIFT"
1014 #elif (ACC_ARCH_C166)
1015 #if !defined(__MODEL__)
1016 # error "FIXME - C166 __MODEL__"
1017 #elif ((__MODEL__) == 0)
1018 # define ACC_MM_SMALL 1
1019 #elif ((__MODEL__) == 1)
1020 # define ACC_MM_SMALL 1
1021 #elif ((__MODEL__) == 2)
1022 # define ACC_MM_LARGE 1
1023 #elif ((__MODEL__) == 3)
1024 # define ACC_MM_TINY 1
1025 #elif ((__MODEL__) == 4)
1026 # define ACC_MM_XTINY 1
1027 #elif ((__MODEL__) == 5)
1028 # define ACC_MM_XSMALL 1
1030 # error "FIXME - C166 __MODEL__"
1032 #elif (ACC_ARCH_MCS251)
1033 #if !defined(__MODEL__)
1034 # error "FIXME - MCS251 __MODEL__"
1035 #elif ((__MODEL__) == 0)
1036 # define ACC_MM_SMALL 1
1037 #elif ((__MODEL__) == 2)
1038 # define ACC_MM_LARGE 1
1039 #elif ((__MODEL__) == 3)
1040 # define ACC_MM_TINY 1
1041 #elif ((__MODEL__) == 4)
1042 # define ACC_MM_XTINY 1
1043 #elif ((__MODEL__) == 5)
1044 # define ACC_MM_XSMALL 1
1046 # error "FIXME - MCS251 __MODEL__"
1048 #elif (ACC_ARCH_MCS51)
1049 #if !defined(__MODEL__)
1050 # error "FIXME - MCS51 __MODEL__"
1051 #elif ((__MODEL__) == 1)
1052 # define ACC_MM_SMALL 1
1053 #elif ((__MODEL__) == 2)
1054 # define ACC_MM_LARGE 1
1055 #elif ((__MODEL__) == 3)
1056 # define ACC_MM_TINY 1
1057 #elif ((__MODEL__) == 4)
1058 # define ACC_MM_XTINY 1
1059 #elif ((__MODEL__) == 5)
1060 # define ACC_MM_XSMALL 1
1062 # error "FIXME - MCS51 __MODEL__"
1064 #elif (ACC_ARCH_CRAY_PVP)
1065 # define ACC_MM_PVP 1
1067 # define ACC_MM_FLAT 1
1069 #if (ACC_MM_COMPACT)
1070 # define ACC_INFO_MM "compact"
1072 # define ACC_INFO_MM "flat"
1074 # define ACC_INFO_MM "huge"
1075 #elif (ACC_MM_LARGE)
1076 # define ACC_INFO_MM "large"
1077 #elif (ACC_MM_MEDIUM)
1078 # define ACC_INFO_MM "medium"
1080 # define ACC_INFO_MM "pvp"
1081 #elif (ACC_MM_SMALL)
1082 # define ACC_INFO_MM "small"
1084 # define ACC_INFO_MM "tiny"
1086 # error "unknown memory model"
1089 #if defined(SIZEOF_SHORT)
1090 # define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
1092 #if defined(SIZEOF_INT)
1093 # define ACC_SIZEOF_INT (SIZEOF_INT)
1095 #if defined(SIZEOF_LONG)
1096 # define ACC_SIZEOF_LONG (SIZEOF_LONG)
1098 #if defined(SIZEOF_LONG_LONG)
1099 # define ACC_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG)
1101 #if defined(SIZEOF___INT16)
1102 # define ACC_SIZEOF___INT16 (SIZEOF___INT16)
1104 #if defined(SIZEOF___INT32)
1105 # define ACC_SIZEOF___INT32 (SIZEOF___INT32)
1107 #if defined(SIZEOF___INT64)
1108 # define ACC_SIZEOF___INT64 (SIZEOF___INT64)
1110 #if defined(SIZEOF_VOID_P)
1111 # define ACC_SIZEOF_VOID_P (SIZEOF_VOID_P)
1113 #if defined(SIZEOF_SIZE_T)
1114 # define ACC_SIZEOF_SIZE_T (SIZEOF_SIZE_T)
1116 #if defined(SIZEOF_PTRDIFF_T)
1117 # define ACC_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T)
1119 #define __ACC_LSR(x,b) (((x)+0ul) >> (b))
1120 #if !defined(ACC_SIZEOF_SHORT)
1121 # if (ACC_ARCH_CRAY_PVP)
1122 # define ACC_SIZEOF_SHORT 8
1123 # elif (USHRT_MAX == ACC_0xffffL)
1124 # define ACC_SIZEOF_SHORT 2
1125 # elif (__ACC_LSR(USHRT_MAX,7) == 1)
1126 # define ACC_SIZEOF_SHORT 1
1127 # elif (__ACC_LSR(USHRT_MAX,15) == 1)
1128 # define ACC_SIZEOF_SHORT 2
1129 # elif (__ACC_LSR(USHRT_MAX,31) == 1)
1130 # define ACC_SIZEOF_SHORT 4
1131 # elif (__ACC_LSR(USHRT_MAX,63) == 1)
1132 # define ACC_SIZEOF_SHORT 8
1133 # elif (__ACC_LSR(USHRT_MAX,127) == 1)
1134 # define ACC_SIZEOF_SHORT 16
1136 # error "ACC_SIZEOF_SHORT"
1139 #if !defined(ACC_SIZEOF_INT)
1140 # if (ACC_ARCH_CRAY_PVP)
1141 # define ACC_SIZEOF_INT 8
1142 # elif (UINT_MAX == ACC_0xffffL)
1143 # define ACC_SIZEOF_INT 2
1144 # elif (UINT_MAX == ACC_0xffffffffL)
1145 # define ACC_SIZEOF_INT 4
1146 # elif (__ACC_LSR(UINT_MAX,7) == 1)
1147 # define ACC_SIZEOF_INT 1
1148 # elif (__ACC_LSR(UINT_MAX,15) == 1)
1149 # define ACC_SIZEOF_INT 2
1150 # elif (__ACC_LSR(UINT_MAX,31) == 1)
1151 # define ACC_SIZEOF_INT 4
1152 # elif (__ACC_LSR(UINT_MAX,63) == 1)
1153 # define ACC_SIZEOF_INT 8
1154 # elif (__ACC_LSR(UINT_MAX,127) == 1)
1155 # define ACC_SIZEOF_INT 16
1157 # error "ACC_SIZEOF_INT"
1160 #if !defined(ACC_SIZEOF_LONG)
1161 # if (ULONG_MAX == ACC_0xffffffffL)
1162 # define ACC_SIZEOF_LONG 4
1163 # elif (__ACC_LSR(ULONG_MAX,7) == 1)
1164 # define ACC_SIZEOF_LONG 1
1165 # elif (__ACC_LSR(ULONG_MAX,15) == 1)
1166 # define ACC_SIZEOF_LONG 2
1167 # elif (__ACC_LSR(ULONG_MAX,31) == 1)
1168 # define ACC_SIZEOF_LONG 4
1169 # elif (__ACC_LSR(ULONG_MAX,63) == 1)
1170 # define ACC_SIZEOF_LONG 8
1171 # elif (__ACC_LSR(ULONG_MAX,127) == 1)
1172 # define ACC_SIZEOF_LONG 16
1174 # error "ACC_SIZEOF_LONG"
1177 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
1178 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
1179 # if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
1180 # if (ACC_CC_GNUC >= 0x030300ul)
1181 # if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
1182 # define ACC_SIZEOF_LONG_LONG ACC_SIZEOF_LONG
1183 # elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
1184 # define ACC_SIZEOF_LONG_LONG 4
1190 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
1191 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
1192 #if (ACC_ARCH_I086 && ACC_CC_DMC)
1193 #elif (ACC_CC_CILLY) && defined(__GNUC__)
1194 # define ACC_SIZEOF_LONG_LONG 8
1195 #elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1196 # define ACC_SIZEOF_LONG_LONG 8
1197 #elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
1198 # define ACC_SIZEOF_LONG_LONG 8
1199 #elif (ACC_OS_WIN64 || defined(_WIN64))
1200 # define ACC_SIZEOF___INT64 8
1201 #elif (ACC_ARCH_I386 && (ACC_CC_DMC))
1202 # define ACC_SIZEOF_LONG_LONG 8
1203 #elif (ACC_ARCH_I386 && (ACC_CC_SYMANTECC && (__SC__ >= 0x700)))
1204 # define ACC_SIZEOF_LONG_LONG 8
1205 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC && defined(__linux__)))
1206 # define ACC_SIZEOF_LONG_LONG 8
1207 #elif (ACC_ARCH_I386 && (ACC_CC_MWERKS || ACC_CC_PELLESC || ACC_CC_PGI || ACC_CC_SUNPROC))
1208 # define ACC_SIZEOF_LONG_LONG 8
1209 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC || ACC_CC_MSC))
1210 # define ACC_SIZEOF___INT64 8
1211 #elif ((ACC_OS_WIN32 || defined(_WIN32)) && (ACC_CC_MSC))
1212 # define ACC_SIZEOF___INT64 8
1213 #elif (ACC_ARCH_I386 && (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
1214 # define ACC_SIZEOF___INT64 8
1215 #elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
1216 # define ACC_SIZEOF___INT64 8
1217 #elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
1218 # define ACC_SIZEOF___INT64 8
1219 #elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
1220 # define ACC_SIZEOF_LONG_LONG 8
1221 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
1222 # define ACC_SIZEOF_LONG_LONG 8
1223 #elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
1224 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
1225 # define ACC_SIZEOF_LONG_LONG 8
1229 #if defined(__cplusplus) && (ACC_CC_GNUC)
1230 # if (ACC_CC_GNUC < 0x020800ul)
1231 # undef ACC_SIZEOF_LONG_LONG
1234 #if (ACC_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
1235 # undef ACC_SIZEOF_LONG_LONG
1237 #if !defined(ACC_SIZEOF_VOID_P)
1239 # define __ACC_WORDSIZE 2
1240 # if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
1241 # define ACC_SIZEOF_VOID_P 2
1242 # elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
1243 # define ACC_SIZEOF_VOID_P 4
1247 #elif (ACC_ARCH_AVR || ACC_ARCH_Z80)
1248 # define __ACC_WORDSIZE 1
1249 # define ACC_SIZEOF_VOID_P 2
1250 #elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
1251 # define ACC_SIZEOF_VOID_P 2
1252 #elif (ACC_ARCH_H8300)
1253 # if defined(__NORMAL_MODE__)
1254 # define __ACC_WORDSIZE 4
1255 # define ACC_SIZEOF_VOID_P 2
1256 # elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1257 # define __ACC_WORDSIZE 4
1258 # define ACC_SIZEOF_VOID_P 4
1260 # define __ACC_WORDSIZE 2
1261 # define ACC_SIZEOF_VOID_P 2
1263 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
1264 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_INT
1265 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_INT
1267 #elif (ACC_ARCH_M16C)
1268 # define __ACC_WORDSIZE 2
1269 # if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
1270 # define ACC_SIZEOF_VOID_P 4
1272 # define ACC_SIZEOF_VOID_P 2
1274 #elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
1275 # define __ACC_WORDSIZE 8
1276 # define ACC_SIZEOF_VOID_P 4
1277 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
1278 # define __ACC_WORDSIZE 8
1279 # define ACC_SIZEOF_VOID_P 8
1280 #elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
1281 # define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
1282 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1283 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1284 #elif (ACC_OS_OS400 || defined(__OS400__))
1285 # define __ACC_WORDSIZE ACC_SIZEOF_LONG
1286 # define ACC_SIZEOF_VOID_P 16
1287 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1288 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1289 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
1290 # define ACC_SIZEOF_VOID_P 8
1291 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1292 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1293 #elif (ACC_ARCH_SPU)
1295 # define __ACC_WORDSIZE 16
1297 # define ACC_SIZEOF_VOID_P 4
1299 # define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
1302 #if !defined(ACC_WORDSIZE)
1303 # if defined(__ACC_WORDSIZE)
1304 # define ACC_WORDSIZE __ACC_WORDSIZE
1306 # define ACC_WORDSIZE ACC_SIZEOF_VOID_P
1309 #if !defined(ACC_SIZEOF_SIZE_T)
1310 #if (ACC_ARCH_I086 || ACC_ARCH_M16C)
1311 # define ACC_SIZEOF_SIZE_T 2
1313 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_VOID_P
1316 #if !defined(ACC_SIZEOF_PTRDIFF_T)
1318 # if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM || ACC_MM_HUGE)
1319 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_VOID_P
1320 # elif (ACC_MM_COMPACT || ACC_MM_LARGE)
1321 # if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
1322 # define ACC_SIZEOF_PTRDIFF_T 4
1324 # define ACC_SIZEOF_PTRDIFF_T 2
1330 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_SIZE_T
1333 #if (ACC_ABI_NEUTRAL_ENDIAN)
1334 # undef ACC_ABI_BIG_ENDIAN
1335 # undef ACC_ABI_LITTLE_ENDIAN
1336 #elif !(ACC_ABI_BIG_ENDIAN) && !(ACC_ABI_LITTLE_ENDIAN)
1337 #if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP)
1338 # define ACC_ABI_BIG_ENDIAN 1
1339 #elif (ACC_ARCH_IA64) && (ACC_OS_POSIX_LINUX || ACC_OS_WIN64)
1340 # define ACC_ABI_LITTLE_ENDIAN 1
1341 #elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
1342 # define ACC_ABI_LITTLE_ENDIAN 1
1343 #elif (ACC_ARCH_AVR32 || ACC_ARCH_M68K || ACC_ARCH_S390)
1344 # define ACC_ABI_BIG_ENDIAN 1
1345 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
1346 # if (__LITTLE_ENDIAN__ == 1)
1347 # define ACC_ABI_LITTLE_ENDIAN 1
1349 # define ACC_ABI_BIG_ENDIAN 1
1351 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
1352 # define ACC_ABI_BIG_ENDIAN 1
1353 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
1354 # define ACC_ABI_LITTLE_ENDIAN 1
1355 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
1356 # define ACC_ABI_BIG_ENDIAN 1
1357 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
1358 # define ACC_ABI_LITTLE_ENDIAN 1
1359 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
1360 # define ACC_ABI_BIG_ENDIAN 1
1361 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
1362 # define ACC_ABI_LITTLE_ENDIAN 1
1365 #if (ACC_ABI_BIG_ENDIAN) && (ACC_ABI_LITTLE_ENDIAN)
1366 # error "this should not happen"
1368 #if (ACC_ABI_BIG_ENDIAN)
1369 # define ACC_INFO_ABI_ENDIAN "be"
1370 #elif (ACC_ABI_LITTLE_ENDIAN)
1371 # define ACC_INFO_ABI_ENDIAN "le"
1372 #elif (ACC_ABI_NEUTRAL_ENDIAN)
1373 # define ACC_INFO_ABI_ENDIAN "neutral"
1375 #if (ACC_SIZEOF_INT == 1 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
1376 # define ACC_ABI_I8LP16 1
1377 # define ACC_INFO_ABI_PM "i8lp16"
1378 #elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
1379 # define ACC_ABI_ILP16 1
1380 # define ACC_INFO_ABI_PM "ilp16"
1381 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
1382 # define ACC_ABI_ILP32 1
1383 # define ACC_INFO_ABI_PM "ilp32"
1384 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 8 && ACC_SIZEOF_SIZE_T == 8)
1385 # define ACC_ABI_LLP64 1
1386 # define ACC_INFO_ABI_PM "llp64"
1387 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
1388 # define ACC_ABI_LP64 1
1389 # define ACC_INFO_ABI_PM "lp64"
1390 #elif (ACC_SIZEOF_INT == 8 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
1391 # define ACC_ABI_ILP64 1
1392 # define ACC_INFO_ABI_PM "ilp64"
1393 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 4)
1394 # define ACC_ABI_IP32L64 1
1395 # define ACC_INFO_ABI_PM "ip32l64"
1397 #if !defined(__ACC_LIBC_OVERRIDE)
1398 #if (ACC_LIBC_NAKED)
1399 # define ACC_INFO_LIBC "naked"
1400 #elif (ACC_LIBC_FREESTANDING)
1401 # define ACC_INFO_LIBC "freestanding"
1402 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
1403 # define ACC_INFO_LIBC "mfreestanding"
1404 #elif (ACC_LIBC_ISOC90)
1405 # define ACC_INFO_LIBC "isoc90"
1406 #elif (ACC_LIBC_ISOC99)
1407 # define ACC_INFO_LIBC "isoc99"
1408 #elif defined(__dietlibc__)
1409 # define ACC_LIBC_DIETLIBC 1
1410 # define ACC_INFO_LIBC "dietlibc"
1411 #elif defined(_NEWLIB_VERSION)
1412 # define ACC_LIBC_NEWLIB 1
1413 # define ACC_INFO_LIBC "newlib"
1414 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
1415 # if defined(__UCLIBC_SUBLEVEL__)
1416 # define ACC_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
1418 # define ACC_LIBC_UCLIBC 0x00090bL
1420 # define ACC_INFO_LIBC "uclibc"
1421 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1422 # define ACC_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
1423 # define ACC_INFO_LIBC "glibc"
1424 #elif (ACC_CC_MWERKS) && defined(__MSL__)
1425 # define ACC_LIBC_MSL __MSL__
1426 # define ACC_INFO_LIBC "msl"
1427 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
1428 # define ACC_LIBC_ISOC90 1
1429 # define ACC_INFO_LIBC "isoc90"
1431 # define ACC_LIBC_DEFAULT 1
1432 # define ACC_INFO_LIBC "default"
1435 #if !defined(__acc_gnuc_extension__)
1436 #if (ACC_CC_GNUC >= 0x020800ul)
1437 # define __acc_gnuc_extension__ __extension__
1438 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1439 # define __acc_gnuc_extension__ __extension__
1441 # define __acc_gnuc_extension__ /*empty*/
1444 #if !defined(__acc_ua_volatile)
1445 # define __acc_ua_volatile volatile
1447 #if !defined(__acc_alignof)
1448 #if (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1449 # define __acc_alignof(e) __alignof__(e)
1450 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
1451 # define __acc_alignof(e) __alignof__(e)
1452 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1453 # define __acc_alignof(e) __alignof(e)
1454 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
1455 # define __acc_alignof(e) __alignof__(e)
1458 #if defined(__acc_alignof)
1459 # define __acc_HAVE_alignof 1
1461 #if !defined(__acc_constructor)
1462 #if (ACC_CC_GNUC >= 0x030400ul)
1463 # define __acc_constructor __attribute__((__constructor__,__used__))
1464 #elif (ACC_CC_GNUC >= 0x020700ul)
1465 # define __acc_constructor __attribute__((__constructor__))
1466 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1467 # define __acc_constructor __attribute__((__constructor__))
1470 #if defined(__acc_constructor)
1471 # define __acc_HAVE_constructor 1
1473 #if !defined(__acc_destructor)
1474 #if (ACC_CC_GNUC >= 0x030400ul)
1475 # define __acc_destructor __attribute__((__destructor__,__used__))
1476 #elif (ACC_CC_GNUC >= 0x020700ul)
1477 # define __acc_destructor __attribute__((__destructor__))
1478 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1479 # define __acc_destructor __attribute__((__destructor__))
1482 #if defined(__acc_destructor)
1483 # define __acc_HAVE_destructor 1
1485 #if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor)
1486 # error "this should not happen"
1488 #if !defined(__acc_inline)
1489 #if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
1490 #elif defined(__cplusplus)
1491 # define __acc_inline inline
1492 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
1493 # define __acc_inline __inline
1494 #elif (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1495 # define __acc_inline __inline__
1497 # define __acc_inline __inline
1498 #elif (ACC_CC_INTELC)
1499 # define __acc_inline __inline
1500 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
1501 # define __acc_inline __inline
1502 #elif (ACC_CC_MSC && (_MSC_VER >= 900))
1503 # define __acc_inline __inline
1504 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
1505 # define __acc_inline __inline__
1506 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
1507 # define __acc_inline inline
1510 #if defined(__acc_inline)
1511 # define __acc_HAVE_inline 1
1513 # define __acc_inline /*empty*/
1515 #if !defined(__acc_forceinline)
1516 #if (ACC_CC_GNUC >= 0x030200ul)
1517 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1518 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
1519 # define __acc_forceinline __forceinline
1520 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
1521 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1522 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1523 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1524 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1525 # define __acc_forceinline __forceinline
1526 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
1527 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1530 #if defined(__acc_forceinline)
1531 # define __acc_HAVE_forceinline 1
1533 # define __acc_forceinline /*empty*/
1535 #if !defined(__acc_noinline)
1536 #if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
1537 # define __acc_noinline __attribute__((__noinline__,__used__))
1538 #elif (ACC_CC_GNUC >= 0x030200ul)
1539 # define __acc_noinline __attribute__((__noinline__))
1540 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_MSC)
1541 # define __acc_noinline __declspec(noinline)
1542 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
1543 # define __acc_noinline __attribute__((__noinline__))
1544 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1545 # define __acc_noinline __attribute__((__noinline__))
1546 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1547 # define __acc_noinline __declspec(noinline)
1548 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
1549 # if defined(__cplusplus)
1551 # define __acc_noinline __declspec(noinline)
1553 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
1554 # define __acc_noinline __attribute__((__noinline__))
1557 #if defined(__acc_noinline)
1558 # define __acc_HAVE_noinline 1
1560 # define __acc_noinline /*empty*/
1562 #if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
1563 # error "this should not happen"
1565 #if !defined(__acc_noreturn)
1566 #if (ACC_CC_GNUC >= 0x020700ul)
1567 # define __acc_noreturn __attribute__((__noreturn__))
1568 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
1569 # define __acc_noreturn __declspec(noreturn)
1570 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
1571 # define __acc_noreturn __attribute__((__noreturn__))
1572 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1573 # define __acc_noreturn __attribute__((__noreturn__))
1574 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1575 # define __acc_noreturn __declspec(noreturn)
1578 #if defined(__acc_noreturn)
1579 # define __acc_HAVE_noreturn 1
1581 # define __acc_noreturn /*empty*/
1583 #if !defined(__acc_nothrow)
1584 #if (ACC_CC_GNUC >= 0x030300ul)
1585 # define __acc_nothrow __attribute__((__nothrow__))
1586 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC) && defined(__cplusplus)
1587 # define __acc_nothrow __declspec(nothrow)
1588 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 900) && ACC_CC_SYNTAX_GNUC)
1589 # define __acc_nothrow __attribute__((__nothrow__))
1590 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1591 # define __acc_nothrow __attribute__((__nothrow__))
1592 #elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
1593 # define __acc_nothrow __declspec(nothrow)
1596 #if defined(__acc_nothrow)
1597 # define __acc_HAVE_nothrow 1
1599 # define __acc_nothrow /*empty*/
1601 #if !defined(__acc_restrict)
1602 #if (ACC_CC_GNUC >= 0x030400ul)
1603 # define __acc_restrict __restrict__
1604 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
1605 # define __acc_restrict __restrict__
1606 #elif (ACC_CC_CLANG || ACC_CC_LLVM)
1607 # define __acc_restrict __restrict__
1608 #elif (ACC_CC_MSC && (_MSC_VER >= 1400))
1609 # define __acc_restrict __restrict
1612 #if defined(__acc_restrict)
1613 # define __acc_HAVE_restrict 1
1615 # define __acc_restrict /*empty*/
1617 #if !defined(__acc_likely) && !defined(__acc_unlikely)
1618 #if (ACC_CC_GNUC >= 0x030200ul)
1619 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1620 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1621 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
1622 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1623 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1624 #elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1625 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1626 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1629 #if defined(__acc_likely)
1630 # define __acc_HAVE_likely 1
1632 # define __acc_likely(e) (e)
1634 #if defined(__acc_unlikely)
1635 # define __acc_HAVE_unlikely 1
1637 # define __acc_unlikely(e) (e)
1639 #if !defined(ACC_UNUSED)
1640 # if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1641 # define ACC_UNUSED(var) ((void) &var)
1642 # elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
1643 # define ACC_UNUSED(var) if (&var) ; else
1644 # elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1645 # define ACC_UNUSED(var) ((void) var)
1646 # elif (ACC_CC_MSC && (_MSC_VER < 900))
1647 # define ACC_UNUSED(var) if (&var) ; else
1648 # elif (ACC_CC_KEILC)
1649 # define ACC_UNUSED(var) {extern int __acc_unused[1-2*!(sizeof(var)>0)];}
1650 # elif (ACC_CC_PACIFICC)
1651 # define ACC_UNUSED(var) ((void) sizeof(var))
1652 # elif (ACC_CC_WATCOMC) && defined(__cplusplus)
1653 # define ACC_UNUSED(var) ((void) var)
1655 # define ACC_UNUSED(var) ((void) &var)
1658 #if !defined(ACC_UNUSED_FUNC)
1659 # if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1660 # define ACC_UNUSED_FUNC(func) ((void) func)
1661 # elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
1662 # define ACC_UNUSED_FUNC(func) if (func) ; else
1663 # elif (ACC_CC_CLANG || ACC_CC_LLVM)
1664 # define ACC_UNUSED_FUNC(func) ((void) &func)
1665 # elif (ACC_CC_MSC && (_MSC_VER < 900))
1666 # define ACC_UNUSED_FUNC(func) if (func) ; else
1668 # define ACC_UNUSED_FUNC(func) ((void) &func)
1669 # elif (ACC_CC_KEILC || ACC_CC_PELLESC)
1670 # define ACC_UNUSED_FUNC(func) {extern int __acc_unused[1-2*!(sizeof((int)func)>0)];}
1672 # define ACC_UNUSED_FUNC(func) ((void) func)
1675 #if !defined(ACC_UNUSED_LABEL)
1676 # if (ACC_CC_WATCOMC) && defined(__cplusplus)
1677 # define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
1678 # elif (ACC_CC_CLANG || ACC_CC_INTELC || ACC_CC_WATCOMC)
1679 # define ACC_UNUSED_LABEL(l) if (0) goto l
1681 # define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
1684 #if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
1686 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var
1687 # elif 0 && (ACC_CC_GNUC)
1688 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var
1690 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init
1693 #if !defined(ACC_UNCONST_CAST)
1694 # if 0 && defined(__cplusplus)
1695 # define ACC_UNCONST_CAST(t,e) (const_cast<t> (e))
1696 # elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1697 # define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((acc_uintptr_t) ((const void *) (e))))))
1699 # define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e)))))
1702 #if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
1703 # if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
1704 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
1705 # elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
1706 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1u-2*!(e)];
1707 # elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
1708 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
1710 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-2*!(e)];
1713 #if !defined(ACC_COMPILE_TIME_ASSERT)
1714 # if (ACC_CC_AZTECC)
1715 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-!(e)];}
1716 # elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
1717 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1718 # elif (ACC_CC_MSC && (_MSC_VER < 900))
1719 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1720 # elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
1721 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1723 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-2*!(e)];}
1726 #if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
1727 # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
1728 # elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
1729 # define __acc_cdecl __cdecl
1730 # define __acc_cdecl_atexit /*empty*/
1731 # define __acc_cdecl_main __cdecl
1732 # if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
1733 # define __acc_cdecl_qsort __pascal
1734 # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
1735 # define __acc_cdecl_qsort _stdcall
1737 # define __acc_cdecl_qsort __cdecl
1739 # elif (ACC_CC_WATCOMC)
1740 # define __acc_cdecl __cdecl
1742 # define __acc_cdecl __cdecl
1743 # define __acc_cdecl_atexit __cdecl
1744 # define __acc_cdecl_main __cdecl
1745 # define __acc_cdecl_qsort __cdecl
1747 # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
1748 # elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
1749 # define __acc_cdecl_sighandler __pascal
1750 # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
1751 # define __acc_cdecl_sighandler _stdcall
1752 # elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
1753 # define __acc_cdecl_sighandler __clrcall
1754 # elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
1756 # define __acc_cdecl_sighandler _far _cdecl _loadds
1758 # define __acc_cdecl_sighandler _far _cdecl
1760 # define __acc_cdecl_sighandler _cdecl
1763 # define __acc_cdecl_sighandler __cdecl
1765 #elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
1766 # define __acc_cdecl __cdecl
1767 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
1768 # define __acc_cdecl cdecl
1770 #if !defined(__acc_cdecl)
1771 # define __acc_cdecl /*empty*/
1773 #if !defined(__acc_cdecl_atexit)
1774 # define __acc_cdecl_atexit /*empty*/
1776 #if !defined(__acc_cdecl_main)
1777 # define __acc_cdecl_main /*empty*/
1779 #if !defined(__acc_cdecl_qsort)
1780 # define __acc_cdecl_qsort /*empty*/
1782 #if !defined(__acc_cdecl_sighandler)
1783 # define __acc_cdecl_sighandler /*empty*/
1785 #if !defined(__acc_cdecl_va)
1786 # define __acc_cdecl_va __acc_cdecl
1788 #if !(ACC_CFG_NO_WINDOWS_H)
1789 #if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
1790 # if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
1791 # elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
1792 # elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
1794 # define ACC_HAVE_WINDOWS_H 1
1798 #if (ACC_ARCH_ALPHA)
1799 # define ACC_OPT_AVOID_UINT_INDEX 1
1800 # define ACC_OPT_AVOID_SHORT 1
1801 # define ACC_OPT_AVOID_USHORT 1
1802 #elif (ACC_ARCH_AMD64)
1803 # define ACC_OPT_AVOID_INT_INDEX 1
1804 # define ACC_OPT_AVOID_UINT_INDEX 1
1805 # define ACC_OPT_UNALIGNED16 1
1806 # define ACC_OPT_UNALIGNED32 1
1807 # define ACC_OPT_UNALIGNED64 1
1808 #elif (ACC_ARCH_ARM && ACC_ARCH_ARM_THUMB)
1809 #elif (ACC_ARCH_ARM)
1810 # define ACC_OPT_AVOID_SHORT 1
1811 # define ACC_OPT_AVOID_USHORT 1
1812 #elif (ACC_ARCH_CRIS)
1813 # define ACC_OPT_UNALIGNED16 1
1814 # define ACC_OPT_UNALIGNED32 1
1815 #elif (ACC_ARCH_I386)
1816 # define ACC_OPT_UNALIGNED16 1
1817 # define ACC_OPT_UNALIGNED32 1
1818 #elif (ACC_ARCH_IA64)
1819 # define ACC_OPT_AVOID_INT_INDEX 1
1820 # define ACC_OPT_AVOID_UINT_INDEX 1
1821 # define ACC_OPT_PREFER_POSTINC 1
1822 #elif (ACC_ARCH_M68K)
1823 # define ACC_OPT_PREFER_POSTINC 1
1824 # define ACC_OPT_PREFER_PREDEC 1
1825 # if defined(__mc68020__) && !defined(__mcoldfire__)
1826 # define ACC_OPT_UNALIGNED16 1
1827 # define ACC_OPT_UNALIGNED32 1
1829 #elif (ACC_ARCH_MIPS)
1830 # define ACC_OPT_AVOID_UINT_INDEX 1
1831 #elif (ACC_ARCH_POWERPC)
1832 # define ACC_OPT_PREFER_PREINC 1
1833 # define ACC_OPT_PREFER_PREDEC 1
1834 # if (ACC_ABI_BIG_ENDIAN)
1835 # define ACC_OPT_UNALIGNED16 1
1836 # define ACC_OPT_UNALIGNED32 1
1838 #elif (ACC_ARCH_S390)
1839 # define ACC_OPT_UNALIGNED16 1
1840 # define ACC_OPT_UNALIGNED32 1
1841 # if (ACC_SIZEOF_SIZE_T == 8)
1842 # define ACC_OPT_UNALIGNED64 1
1845 # define ACC_OPT_PREFER_POSTINC 1
1846 # define ACC_OPT_PREFER_PREDEC 1
1848 #ifndef ACC_CFG_NO_INLINE_ASM
1850 # define ACC_CFG_NO_INLINE_ASM 1
1853 #ifndef ACC_CFG_NO_UNALIGNED
1854 #if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
1855 # define ACC_CFG_NO_UNALIGNED 1
1858 #if (ACC_CFG_NO_UNALIGNED)
1859 # undef ACC_OPT_UNALIGNED16
1860 # undef ACC_OPT_UNALIGNED32
1861 # undef ACC_OPT_UNALIGNED64
1863 #if (ACC_CFG_NO_INLINE_ASM)
1864 #elif (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
1865 # define ACC_ASM_SYNTAX_MSC 1
1866 #elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
1867 #elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
1868 #elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
1869 # define ACC_ASM_SYNTAX_GNUC 1
1870 #elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
1871 # define ACC_ASM_SYNTAX_GNUC 1
1873 #if (ACC_ASM_SYNTAX_GNUC)
1874 #if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
1875 # define __ACC_ASM_CLOBBER "ax"
1876 #elif (ACC_CC_INTELC)
1877 # define __ACC_ASM_CLOBBER "memory"
1879 # define __ACC_ASM_CLOBBER "cc", "memory"
1882 #if defined(__ACC_INFOSTR_MM)
1883 #elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
1884 # define __ACC_INFOSTR_MM ""
1885 #elif defined(ACC_INFO_MM)
1886 # define __ACC_INFOSTR_MM "." ACC_INFO_MM
1888 # define __ACC_INFOSTR_MM ""
1890 #if defined(__ACC_INFOSTR_PM)
1891 #elif defined(ACC_INFO_ABI_PM)
1892 # define __ACC_INFOSTR_PM "." ACC_INFO_ABI_PM
1894 # define __ACC_INFOSTR_PM ""
1896 #if defined(__ACC_INFOSTR_ENDIAN)
1897 #elif defined(ACC_INFO_ABI_ENDIAN)
1898 # define __ACC_INFOSTR_ENDIAN "." ACC_INFO_ABI_ENDIAN
1900 # define __ACC_INFOSTR_ENDIAN ""
1902 #if defined(__ACC_INFOSTR_OSNAME)
1903 #elif defined(ACC_INFO_OS_CONSOLE)
1904 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_CONSOLE
1905 #elif defined(ACC_INFO_OS_POSIX)
1906 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_POSIX
1908 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS
1910 #if defined(__ACC_INFOSTR_LIBC)
1911 #elif defined(ACC_INFO_LIBC)
1912 # define __ACC_INFOSTR_LIBC "." ACC_INFO_LIBC
1914 # define __ACC_INFOSTR_LIBC ""
1916 #if defined(__ACC_INFOSTR_CCVER)
1917 #elif defined(ACC_INFO_CCVER)
1918 # define __ACC_INFOSTR_CCVER " " ACC_INFO_CCVER
1920 # define __ACC_INFOSTR_CCVER ""
1922 #define ACC_INFO_STRING \
1923 ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
1924 " " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
1925 #if (ACC_CFG_NO_CONFIG_HEADER)
1926 #elif defined(ACC_CFG_CONFIG_HEADER)
1928 #if !(ACC_CFG_AUTO_NO_HEADERS)
1929 #if (ACC_LIBC_NAKED)
1930 #elif (ACC_LIBC_FREESTANDING)
1931 # define HAVE_LIMITS_H 1
1932 # define HAVE_STDARG_H 1
1933 # define HAVE_STDDEF_H 1
1934 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
1935 # define HAVE_LIMITS_H 1
1936 # define HAVE_SETJMP_H 1
1937 # define HAVE_STDARG_H 1
1938 # define HAVE_STDDEF_H 1
1939 # define HAVE_STDIO_H 1
1940 # define HAVE_STRING_H 1
1942 #define STDC_HEADERS 1
1943 #define HAVE_ASSERT_H 1
1944 #define HAVE_CTYPE_H 1
1945 #define HAVE_DIRENT_H 1
1946 #define HAVE_ERRNO_H 1
1947 #define HAVE_FCNTL_H 1
1948 #define HAVE_FLOAT_H 1
1949 #define HAVE_LIMITS_H 1
1950 #define HAVE_MALLOC_H 1
1951 #define HAVE_MEMORY_H 1
1952 #define HAVE_SETJMP_H 1
1953 #define HAVE_SIGNAL_H 1
1954 #define HAVE_STDARG_H 1
1955 #define HAVE_STDDEF_H 1
1956 #define HAVE_STDIO_H 1
1957 #define HAVE_STDLIB_H 1
1958 #define HAVE_STRING_H 1
1959 #define HAVE_TIME_H 1
1960 #define HAVE_UNISTD_H 1
1961 #define HAVE_UTIME_H 1
1962 #define HAVE_SYS_STAT_H 1
1963 #define HAVE_SYS_TIME_H 1
1964 #define HAVE_SYS_TYPES_H 1
1966 # if (ACC_OS_POSIX_AIX)
1967 # define HAVE_SYS_RESOURCE_H 1
1968 # elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
1969 # define HAVE_STRINGS_H 1
1970 # undef HAVE_MALLOC_H
1971 # elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
1972 # define HAVE_ALLOCA_H 1
1973 # elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
1974 # undef HAVE_SYS_TIME_H
1975 # undef HAVE_SYS_TYPES_H
1976 # elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
1977 # define HAVE_ALLOCA_H 1
1979 # if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
1980 # define HAVE_STRINGS_H 1
1981 # define HAVE_SYS_MMAN_H 1
1982 # define HAVE_SYS_RESOURCE_H 1
1983 # define HAVE_SYS_WAIT_H 1
1985 # if (ACC_LIBC_NEWLIB)
1986 # undef HAVE_STRINGS_H
1988 #elif (ACC_OS_CYGWIN)
1989 # define HAVE_IO_H 1
1991 # define HAVE_ALLOCA_H 1
1992 # define HAVE_IO_H 1
1993 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
1994 # if !defined(__MINT__)
1995 # undef HAVE_MALLOC_H
1997 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
1998 # undef HAVE_DIRENT_H
1999 # undef HAVE_FCNTL_H
2000 # undef HAVE_MALLOC_H
2001 # undef HAVE_MEMORY_H
2002 # undef HAVE_UNISTD_H
2003 # undef HAVE_UTIME_H
2004 # undef HAVE_SYS_STAT_H
2005 # undef HAVE_SYS_TIME_H
2006 # undef HAVE_SYS_TYPES_H
2008 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
2009 #define HAVE_CONIO_H 1
2010 #define HAVE_DIRECT_H 1
2011 #define HAVE_DOS_H 1
2013 #define HAVE_SHARE_H 1
2015 # undef HAVE_CONIO_H
2016 # undef HAVE_DIRECT_H
2017 # undef HAVE_DIRENT_H
2018 # undef HAVE_MALLOC_H
2019 # undef HAVE_SHARE_H
2020 # undef HAVE_UNISTD_H
2021 # undef HAVE_UTIME_H
2022 # undef HAVE_SYS_STAT_H
2023 # undef HAVE_SYS_TIME_H
2024 # undef HAVE_SYS_TYPES_H
2025 #elif (ACC_CC_BORLANDC)
2026 # undef HAVE_UNISTD_H
2027 # undef HAVE_SYS_TIME_H
2028 # if (ACC_OS_WIN32 || ACC_OS_WIN64)
2029 # undef HAVE_DIRENT_H
2031 # if (__BORLANDC__ < 0x0400)
2032 # undef HAVE_DIRENT_H
2033 # undef HAVE_UTIME_H
2036 # undef HAVE_DIRENT_H
2037 # undef HAVE_UNISTD_H
2038 # define HAVE_SYS_DIRENT_H 1
2039 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
2040 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
2041 # define HAVE_ALLOCA_H 1
2042 # undef HAVE_DIRENT_H
2043 # undef HAVE_UNISTD_H
2044 #elif (ACC_CC_IBMC && ACC_OS_OS2)
2046 # undef HAVE_DIRENT_H
2047 # undef HAVE_UNISTD_H
2048 # undef HAVE_UTIME_H
2049 # undef HAVE_SYS_TIME_H
2050 # define HAVE_SYS_UTIME_H 1
2051 #elif (ACC_CC_INTELC || ACC_CC_MSC)
2052 # undef HAVE_DIRENT_H
2053 # undef HAVE_UNISTD_H
2054 # undef HAVE_UTIME_H
2055 # undef HAVE_SYS_TIME_H
2056 # define HAVE_SYS_UTIME_H 1
2057 #elif (ACC_CC_LCCWIN32)
2058 # undef HAVE_DIRENT_H
2060 # undef HAVE_UNISTD_H
2061 # undef HAVE_SYS_TIME_H
2062 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
2063 # undef HAVE_UTIME_H
2064 # define HAVE_SYS_UTIME_H 1
2065 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
2066 # define HAVE_ALLOCA_H 1
2068 # undef HAVE_SHARE_H
2069 # undef HAVE_SYS_TIME_H
2071 # undef HAVE_DIRENT_H
2073 # undef HAVE_UNISTD_H
2074 # undef HAVE_UTIME_H
2075 # undef HAVE_SYS_TIME_H
2076 #elif (ACC_CC_PACIFICC)
2077 # undef HAVE_DIRECT_H
2078 # undef HAVE_DIRENT_H
2079 # undef HAVE_FCNTL_H
2081 # undef HAVE_MALLOC_H
2082 # undef HAVE_MEMORY_H
2083 # undef HAVE_SHARE_H
2084 # undef HAVE_UNISTD_H
2085 # undef HAVE_UTIME_H
2086 # undef HAVE_SYS_STAT_H
2087 # undef HAVE_SYS_TIME_H
2088 # undef HAVE_SYS_TYPES_H
2089 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
2090 # undef HAVE_DIRENT_H
2092 # undef HAVE_MALLOC_H
2093 # undef HAVE_SHARE_H
2094 # undef HAVE_UNISTD_H
2095 # undef HAVE_UTIME_H
2096 # undef HAVE_SYS_TIME_H
2097 # if (__POCC__ < 280)
2099 # define HAVE_SYS_UTIME_H 1
2101 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
2102 # undef HAVE_UTIME_H
2103 # define HAVE_SYS_UTIME_H 1
2104 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2105 #elif (ACC_CC_SYMANTECC)
2106 # undef HAVE_DIRENT_H
2107 # undef HAVE_UNISTD_H
2108 # if (__SC__ < 0x700)
2109 # undef HAVE_UTIME_H
2110 # undef HAVE_SYS_TIME_H
2112 #elif (ACC_CC_TOPSPEEDC)
2113 # undef HAVE_DIRENT_H
2114 # undef HAVE_UNISTD_H
2115 # undef HAVE_UTIME_H
2116 # undef HAVE_SYS_STAT_H
2117 # undef HAVE_SYS_TIME_H
2118 # undef HAVE_SYS_TYPES_H
2119 #elif (ACC_CC_TURBOC)
2120 # undef HAVE_UNISTD_H
2121 # undef HAVE_SYS_TIME_H
2122 # undef HAVE_SYS_TYPES_H
2123 # if (ACC_OS_WIN32 || ACC_OS_WIN64)
2124 # undef HAVE_DIRENT_H
2126 # if (__TURBOC__ < 0x0200)
2127 # undef HAVE_SIGNAL_H
2129 # if (__TURBOC__ < 0x0400)
2130 # undef HAVE_DIRECT_H
2131 # undef HAVE_DIRENT_H
2132 # undef HAVE_MALLOC_H
2133 # undef HAVE_MEMORY_H
2134 # undef HAVE_UTIME_H
2136 #elif (ACC_CC_WATCOMC)
2137 # undef HAVE_DIRENT_H
2138 # undef HAVE_UTIME_H
2139 # undef HAVE_SYS_TIME_H
2140 # define HAVE_SYS_UTIME_H 1
2141 # if (__WATCOMC__ < 950)
2142 # undef HAVE_UNISTD_H
2144 #elif (ACC_CC_ZORTECHC)
2145 # undef HAVE_DIRENT_H
2146 # undef HAVE_MEMORY_H
2147 # undef HAVE_UNISTD_H
2148 # undef HAVE_UTIME_H
2149 # undef HAVE_SYS_TIME_H
2152 #if (ACC_OS_CONSOLE)
2153 # undef HAVE_DIRENT_H
2155 #if (ACC_OS_EMBEDDED)
2156 # undef HAVE_DIRENT_H
2158 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
2159 # undef HAVE_DIRENT_H
2160 # undef HAVE_FCNTL_H
2161 # undef HAVE_MALLOC_H
2162 # undef HAVE_UNISTD_H
2163 # undef HAVE_UTIME_H
2164 # undef HAVE_SYS_STAT_H
2165 # undef HAVE_SYS_TIME_H
2166 # undef HAVE_SYS_TYPES_H
2168 #if (ACC_LIBC_GLIBC >= 0x020100ul)
2169 # define HAVE_STDINT_H 1
2170 #elif (ACC_LIBC_DIETLIBC)
2171 # undef HAVE_STDINT_H
2172 #elif (ACC_LIBC_UCLIBC)
2173 # define HAVE_STDINT_H 1
2174 #elif (ACC_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
2175 # undef HAVE_STDINT_H
2176 #elif (ACC_CC_DMC) && (__DMC__ >= 0x825)
2177 # define HAVE_STDINT_H 1
2179 #if (HAVE_SYS_TIME_H && HAVE_TIME_H)
2180 # define TIME_WITH_SYS_TIME 1
2184 #if !(ACC_CFG_AUTO_NO_FUNCTIONS)
2185 #if (ACC_LIBC_NAKED)
2186 #elif (ACC_LIBC_FREESTANDING)
2187 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
2188 # define HAVE_LONGJMP 1
2189 # define HAVE_MEMCMP 1
2190 # define HAVE_MEMCPY 1
2191 # define HAVE_MEMMOVE 1
2192 # define HAVE_MEMSET 1
2193 # define HAVE_SETJMP 1
2195 #define HAVE_ACCESS 1
2196 #define HAVE_ALLOCA 1
2197 #define HAVE_ATEXIT 1
2200 #define HAVE_CHMOD 1
2201 #define HAVE_CHOWN 1
2202 #define HAVE_CTIME 1
2203 #define HAVE_DIFFTIME 1
2204 #define HAVE_FILENO 1
2205 #define HAVE_FSTAT 1
2206 #define HAVE_GETENV 1
2207 #define HAVE_GETTIMEOFDAY 1
2208 #define HAVE_GMTIME 1
2209 #define HAVE_ISATTY 1
2210 #define HAVE_LOCALTIME 1
2211 #define HAVE_LONGJMP 1
2212 #define HAVE_LSTAT 1
2213 #define HAVE_MEMCMP 1
2214 #define HAVE_MEMCPY 1
2215 #define HAVE_MEMMOVE 1
2216 #define HAVE_MEMSET 1
2217 #define HAVE_MKDIR 1
2218 #define HAVE_MKTIME 1
2219 #define HAVE_QSORT 1
2220 #define HAVE_RAISE 1
2221 #define HAVE_RMDIR 1
2222 #define HAVE_SETJMP 1
2223 #define HAVE_SIGNAL 1
2224 #define HAVE_SNPRINTF 1
2226 #define HAVE_STRCHR 1
2227 #define HAVE_STRDUP 1
2228 #define HAVE_STRERROR 1
2229 #define HAVE_STRFTIME 1
2230 #define HAVE_STRRCHR 1
2231 #define HAVE_STRSTR 1
2233 #define HAVE_UMASK 1
2234 #define HAVE_UTIME 1
2235 #define HAVE_VSNPRINTF 1
2236 #if (ACC_OS_BEOS || ACC_OS_CYGWIN || ACC_OS_POSIX || ACC_OS_QNX || ACC_OS_VMS)
2237 # define HAVE_STRCASECMP 1
2238 # define HAVE_STRNCASECMP 1
2239 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2240 # define HAVE_STRCASECMP 1
2241 # define HAVE_STRNCASECMP 1
2243 # define HAVE_STRICMP 1
2244 # define HAVE_STRNICMP 1
2247 # if (ACC_OS_POSIX_AIX)
2248 # define HAVE_GETRUSAGE 1
2249 # elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
2252 # elif (ACC_OS_POSIX_UNICOS)
2254 # undef HAVE_SNPRINTF
2255 # undef HAVE_VSNPRINTF
2260 # if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
2261 # define HAVE_GETRUSAGE 1
2262 # define HAVE_GETPAGESIZE 1
2263 # define HAVE_MMAP 1
2264 # define HAVE_MPROTECT 1
2265 # define HAVE_MUNMAP 1
2267 #elif (ACC_OS_CYGWIN)
2268 # if (ACC_CC_GNUC < 0x025a00ul)
2269 # undef HAVE_GETTIMEOFDAY
2272 # if (ACC_CC_GNUC < 0x025f00ul)
2273 # undef HAVE_SNPRINTF
2274 # undef HAVE_VSNPRINTF
2279 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
2280 # if !defined(__MINT__)
2281 # undef HAVE_SNPRINTF
2282 # undef HAVE_VSNPRINTF
2284 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
2290 # undef HAVE_GETTIMEOFDAY
2292 # undef HAVE_SNPRINTF
2295 # undef HAVE_VSNPRINTF
2297 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
2299 #undef HAVE_GETTIMEOFDAY
2304 # undef HAVE_DIFFTIME
2307 # undef HAVE_SNPRINTF
2309 # undef HAVE_VSNPRINTF
2310 #elif (ACC_CC_BORLANDC)
2311 # if (__BORLANDC__ < 0x0400)
2315 # if ((__BORLANDC__ < 0x0410) && ACC_OS_WIN16)
2318 # if (__BORLANDC__ < 0x0550)
2319 # undef HAVE_SNPRINTF
2320 # undef HAVE_VSNPRINTF
2326 # define snprintf _snprintf
2327 # define vsnprintf _vsnprintf
2328 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
2329 # undef HAVE_SNPRINTF
2330 # undef HAVE_VSNPRINTF
2331 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
2332 # undef HAVE_SNPRINTF
2333 # undef HAVE_VSNPRINTF
2335 # undef HAVE_SNPRINTF
2336 # undef HAVE_VSNPRINTF
2337 #elif (ACC_CC_INTELC)
2339 # define snprintf _snprintf
2342 # define vsnprintf _vsnprintf
2344 #elif (ACC_CC_LCCWIN32)
2345 # define utime _utime
2347 # if (_MSC_VER < 600)
2348 # undef HAVE_STRFTIME
2350 # if (_MSC_VER < 700)
2351 # undef HAVE_SNPRINTF
2352 # undef HAVE_VSNPRINTF
2353 # elif (_MSC_VER < 1500)
2355 # define snprintf _snprintf
2358 # define vsnprintf _vsnprintf
2362 # define snprintf _snprintf
2365 # if ((_MSC_VER < 800) && ACC_OS_WIN16)
2368 # if (ACC_ARCH_I086) && defined(__cplusplus)
2369 # undef HAVE_LONGJMP
2372 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
2373 # if (ACC_CC_GNUC < 0x025f00ul)
2374 # undef HAVE_SNPRINTF
2375 # undef HAVE_VSNPRINTF
2377 # define snprintf _snprintf
2378 # define vsnprintf _vsnprintf
2380 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
2381 # if (__MSL__ < 0x8000ul)
2386 # undef HAVE_SNPRINTF
2387 # undef HAVE_STRNICMP
2389 # undef HAVE_VSNPRINTF
2390 # if defined(__cplusplus)
2393 #elif (ACC_CC_PACIFICC)
2397 # undef HAVE_DIFFTIME
2401 # undef HAVE_SNPRINTF
2402 # undef HAVE_STRFTIME
2404 # undef HAVE_VSNPRINTF
2405 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
2406 # if (__POCC__ < 280)
2407 # define alloca _alloca
2410 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
2411 # define snprintf _snprintf
2412 # define vsnprintf _vsnprintf
2413 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2414 # undef HAVE_SNPRINTF
2415 # undef HAVE_VSNPRINTF
2416 #elif (ACC_CC_SYMANTECC)
2417 # if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
2420 # if (__SC__ < 0x600)
2421 # undef HAVE_SNPRINTF
2422 # undef HAVE_VSNPRINTF
2424 # define snprintf _snprintf
2425 # define vsnprintf _vsnprintf
2427 # if (__SC__ < 0x700)
2428 # undef HAVE_DIFFTIME
2431 #elif (ACC_CC_TOPSPEEDC)
2432 # undef HAVE_SNPRINTF
2433 # undef HAVE_VSNPRINTF
2434 #elif (ACC_CC_TURBOC)
2436 # undef HAVE_SNPRINTF
2437 # undef HAVE_VSNPRINTF
2438 # if (__TURBOC__ < 0x0200)
2442 # if (__TURBOC__ < 0x0295)
2444 # undef HAVE_STRFTIME
2446 # if (__TURBOC__ < 0x0400)
2449 #elif (ACC_CC_WATCOMC)
2450 # if (__WATCOMC__ < 1100)
2451 # undef HAVE_SNPRINTF
2452 # undef HAVE_VSNPRINTF
2453 # elif (__WATCOMC__ < 1200)
2454 # define snprintf _snprintf
2455 # define vsnprintf _vsnprintf
2457 #elif (ACC_CC_ZORTECHC)
2458 # if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
2461 # undef HAVE_DIFFTIME
2462 # undef HAVE_SNPRINTF
2464 # undef HAVE_VSNPRINTF
2467 #if (ACC_OS_CONSOLE)
2471 # undef HAVE_GETTIMEOFDAY
2477 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
2482 # undef HAVE_GETTIMEOFDAY
2493 # undef HAVE_STRICMP
2494 # undef HAVE_STRNICMP
2499 #if !(ACC_CFG_AUTO_NO_SIZES)
2500 #if !defined(SIZEOF_SHORT) && defined(ACC_SIZEOF_SHORT)
2501 # define SIZEOF_SHORT ACC_SIZEOF_SHORT
2503 #if !defined(SIZEOF_INT) && defined(ACC_SIZEOF_INT)
2504 # define SIZEOF_INT ACC_SIZEOF_INT
2506 #if !defined(SIZEOF_LONG) && defined(ACC_SIZEOF_LONG)
2507 # define SIZEOF_LONG ACC_SIZEOF_LONG
2509 #if !defined(SIZEOF_LONG_LONG) && defined(ACC_SIZEOF_LONG_LONG)
2510 # define SIZEOF_LONG_LONG ACC_SIZEOF_LONG_LONG
2512 #if !defined(SIZEOF___INT32) && defined(ACC_SIZEOF___INT32)
2513 # define SIZEOF___INT32 ACC_SIZEOF___INT32
2515 #if !defined(SIZEOF___INT64) && defined(ACC_SIZEOF___INT64)
2516 # define SIZEOF___INT64 ACC_SIZEOF___INT64
2518 #if !defined(SIZEOF_VOID_P) && defined(ACC_SIZEOF_VOID_P)
2519 # define SIZEOF_VOID_P ACC_SIZEOF_VOID_P
2521 #if !defined(SIZEOF_SIZE_T) && defined(ACC_SIZEOF_SIZE_T)
2522 # define SIZEOF_SIZE_T ACC_SIZEOF_SIZE_T
2524 #if !defined(SIZEOF_PTRDIFF_T) && defined(ACC_SIZEOF_PTRDIFF_T)
2525 # define SIZEOF_PTRDIFF_T ACC_SIZEOF_PTRDIFF_T
2528 #if (HAVE_SIGNAL) && !defined(RETSIGTYPE)
2529 # define RETSIGTYPE void
2532 #if (ACC_CFG_NO_ACC_TYPE_H)
2534 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
2535 __acc_gnuc_extension__
typedef long long acc_llong_t
;
2536 __acc_gnuc_extension__
typedef unsigned long long acc_ullong_t
;
2538 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
2539 # error "missing defines for sizes"
2541 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
2542 # error "missing defines for sizes"
2544 #if !defined(acc_int16e_t)
2545 #if (ACC_SIZEOF_LONG == 2)
2546 # define acc_int16e_t long
2547 # define acc_uint16e_t unsigned long
2548 #elif (ACC_SIZEOF_INT == 2)
2549 # define acc_int16e_t int
2550 # define acc_uint16e_t unsigned int
2551 #elif (ACC_SIZEOF_SHORT == 2)
2552 # define acc_int16e_t short int
2553 # define acc_uint16e_t unsigned short int
2554 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
2555 typedef int __acc_int16e_hi_t
__attribute__((__mode__(__HI__
)));
2556 typedef unsigned int __acc_uint16e_hi_t
__attribute__((__mode__(__HI__
)));
2557 # define acc_int16e_t __acc_int16e_hi_t
2558 # define acc_uint16e_t __acc_uint16e_hi_t
2559 #elif (ACC_SIZEOF___INT16 == 2)
2560 # define acc_int16e_t __int16
2561 # define acc_uint16e_t unsigned __int16
2565 #if defined(acc_int16e_t)
2566 # define ACC_SIZEOF_ACC_INT16E_T 2
2568 #if !defined(acc_int32e_t)
2569 #if (ACC_SIZEOF_LONG == 4)
2570 # define acc_int32e_t long int
2571 # define acc_uint32e_t unsigned long int
2572 #elif (ACC_SIZEOF_INT == 4)
2573 # define acc_int32e_t int
2574 # define acc_uint32e_t unsigned int
2575 #elif (ACC_SIZEOF_SHORT == 4)
2576 # define acc_int32e_t short int
2577 # define acc_uint32e_t unsigned short int
2578 #elif (ACC_SIZEOF_LONG_LONG == 4)
2579 # define acc_int32e_t acc_llong_t
2580 # define acc_uint32e_t acc_ullong_t
2581 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
2582 typedef int __acc_int32e_si_t
__attribute__((__mode__(__SI__
)));
2583 typedef unsigned int __acc_uint32e_si_t
__attribute__((__mode__(__SI__
)));
2584 # define acc_int32e_t __acc_int32e_si_t
2585 # define acc_uint32e_t __acc_uint32e_si_t
2586 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
2587 typedef int __acc_int32e_si_t
__attribute__((__mode__(__SI__
)));
2588 typedef unsigned int __acc_uint32e_si_t
__attribute__((__mode__(__SI__
)));
2589 # define acc_int32e_t __acc_int32e_si_t
2590 # define acc_uint32e_t __acc_uint32e_si_t
2591 # define ACC_INT32_C(c) c##LL
2592 # define ACC_UINT32_C(c) c##ULL
2593 #elif (ACC_SIZEOF___INT32 == 4)
2594 # define acc_int32e_t __int32
2595 # define acc_uint32e_t unsigned __int32
2599 #if defined(acc_int32e_t)
2600 # define ACC_SIZEOF_ACC_INT32E_T 4
2602 #if !defined(acc_int64e_t)
2603 #if (ACC_SIZEOF___INT64 == 8)
2604 # if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
2605 # define ACC_CFG_TYPE_PREFER___INT64 1
2608 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2609 # define acc_int64e_t int
2610 # define acc_uint64e_t unsigned int
2611 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
2612 #elif (ACC_SIZEOF_LONG == 8)
2613 # define acc_int64e_t long int
2614 # define acc_uint64e_t unsigned long int
2615 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
2616 #elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
2617 # define acc_int64e_t acc_llong_t
2618 # define acc_uint64e_t acc_ullong_t
2619 # if (ACC_CC_BORLANDC)
2620 # define ACC_INT64_C(c) ((c) + 0ll)
2621 # define ACC_UINT64_C(c) ((c) + 0ull)
2623 # define ACC_INT64_C(c) c##LL
2624 # define ACC_UINT64_C(c) c##ULL
2626 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
2627 #elif (ACC_SIZEOF___INT64 == 8)
2628 # define acc_int64e_t __int64
2629 # define acc_uint64e_t unsigned __int64
2630 # if (ACC_CC_BORLANDC)
2631 # define ACC_INT64_C(c) ((c) + 0i64)
2632 # define ACC_UINT64_C(c) ((c) + 0ui64)
2634 # define ACC_INT64_C(c) c##i64
2635 # define ACC_UINT64_C(c) c##ui64
2637 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
2641 #if !defined(acc_int32l_t)
2642 #if defined(acc_int32e_t)
2643 # define acc_int32l_t acc_int32e_t
2644 # define acc_uint32l_t acc_uint32e_t
2645 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
2646 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2647 # define acc_int32l_t int
2648 # define acc_uint32l_t unsigned int
2649 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
2650 #elif (ACC_SIZEOF_LONG >= 4)
2651 # define acc_int32l_t long int
2652 # define acc_uint32l_t unsigned long int
2653 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
2655 # error "acc_int32l_t"
2658 #if !defined(acc_int64l_t)
2659 #if defined(acc_int64e_t)
2660 # define acc_int64l_t acc_int64e_t
2661 # define acc_uint64l_t acc_uint64e_t
2662 # define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
2666 #if !defined(acc_int32f_t)
2667 #if (ACC_SIZEOF_SIZE_T >= 8)
2668 # define acc_int32f_t acc_int64l_t
2669 # define acc_uint32f_t acc_uint64l_t
2670 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
2672 # define acc_int32f_t acc_int32l_t
2673 # define acc_uint32f_t acc_uint32l_t
2674 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
2677 #if !defined(acc_intptr_t)
2678 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
2679 # define __ACC_INTPTR_T_IS_POINTER 1
2680 typedef char* acc_intptr_t
;
2681 typedef char* acc_uintptr_t
;
2682 # define acc_intptr_t acc_intptr_t
2683 # define acc_uintptr_t acc_uintptr_t
2684 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
2685 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
2686 typedef __w64
int acc_intptr_t
;
2687 typedef __w64
unsigned int acc_uintptr_t
;
2688 # define acc_intptr_t acc_intptr_t
2689 # define acc_uintptr_t acc_uintptr_t
2690 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
2691 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
2692 # define acc_intptr_t short
2693 # define acc_uintptr_t unsigned short
2694 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
2695 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2696 # define acc_intptr_t int
2697 # define acc_uintptr_t unsigned int
2698 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
2699 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
2700 # define acc_intptr_t long
2701 # define acc_uintptr_t unsigned long
2702 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
2703 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
2704 # define acc_intptr_t acc_int64l_t
2705 # define acc_uintptr_t acc_uint64l_t
2706 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
2708 # error "acc_intptr_t"
2711 #if !defined(acc_word_t)
2712 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
2713 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
2714 # define acc_word_t acc_uintptr_t
2715 # define acc_sword_t acc_intptr_t
2716 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
2717 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
2718 # define acc_word_t unsigned long
2719 # define acc_sword_t long
2720 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
2721 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
2722 # define acc_word_t unsigned int
2723 # define acc_sword_t int
2724 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
2725 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
2726 # define acc_word_t unsigned short
2727 # define acc_sword_t short
2728 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
2729 #elif (ACC_WORDSIZE == 1)
2730 # define acc_word_t unsigned char
2731 # define acc_sword_t signed char
2732 # define ACC_SIZEOF_ACC_WORD_T 1
2733 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
2734 # define acc_word_t acc_uint64l_t
2735 # define acc_sword_t acc_int64l_t
2736 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
2737 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
2739 typedef unsigned acc_word_t
__attribute__((__mode__(__V16QI__
)));
2740 typedef int acc_sword_t
__attribute__((__mode__(__V16QI__
)));
2741 # define acc_word_t acc_word_t
2742 # define acc_sword_t acc_sword_t
2743 # define ACC_SIZEOF_ACC_WORD_T 16
2746 # error "acc_word_t"
2750 #if !defined(ACC_INT16_C)
2751 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
2752 # define ACC_INT16_C(c) ((c) + 0)
2753 # define ACC_UINT16_C(c) ((c) + 0U)
2754 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
2755 # define ACC_INT16_C(c) ((c) + 0L)
2756 # define ACC_UINT16_C(c) ((c) + 0UL)
2757 # elif (ACC_SIZEOF_INT >= 2)
2758 # define ACC_INT16_C(c) c
2759 # define ACC_UINT16_C(c) c##U
2760 # elif (ACC_SIZEOF_LONG >= 2)
2761 # define ACC_INT16_C(c) c##L
2762 # define ACC_UINT16_C(c) c##UL
2764 # error "ACC_INT16_C"
2767 #if !defined(ACC_INT32_C)
2768 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
2769 # define ACC_INT32_C(c) ((c) + 0)
2770 # define ACC_UINT32_C(c) ((c) + 0U)
2771 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
2772 # define ACC_INT32_C(c) ((c) + 0L)
2773 # define ACC_UINT32_C(c) ((c) + 0UL)
2774 # elif (ACC_SIZEOF_INT >= 4)
2775 # define ACC_INT32_C(c) c
2776 # define ACC_UINT32_C(c) c##U
2777 # elif (ACC_SIZEOF_LONG >= 4)
2778 # define ACC_INT32_C(c) c##L
2779 # define ACC_UINT32_C(c) c##UL
2780 # elif (ACC_SIZEOF_LONG_LONG >= 4)
2781 # define ACC_INT32_C(c) c##LL
2782 # define ACC_UINT32_C(c) c##ULL
2784 # error "ACC_INT32_C"
2787 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
2788 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
2789 # define ACC_INT64_C(c) ((c) + 0)
2790 # define ACC_UINT64_C(c) ((c) + 0U)
2791 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
2792 # define ACC_INT64_C(c) ((c) + 0L)
2793 # define ACC_UINT64_C(c) ((c) + 0UL)
2794 # elif (ACC_SIZEOF_INT >= 8)
2795 # define ACC_INT64_C(c) c
2796 # define ACC_UINT64_C(c) c##U
2797 # elif (ACC_SIZEOF_LONG >= 8)
2798 # define ACC_INT64_C(c) c##L
2799 # define ACC_UINT64_C(c) c##UL
2801 # error "ACC_INT64_C"
2804 #if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
2805 # define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
2807 #if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
2808 # define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
2810 #if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
2811 # define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
2813 #if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
2814 # define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
2816 #if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
2817 # define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
2819 #if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
2820 # define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
2822 #if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
2823 # define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
2825 #if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
2826 # define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
2828 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
2829 # define acc_signo_t acc_int32e_t
2831 #if !defined(acc_signo_t)
2832 # define acc_signo_t int
2834 #if defined(__cplusplus)
2837 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
2838 typedef void __acc_cdecl_sighandler (*acc_sighandler_t
)(acc_signo_t
);
2839 #elif defined(RETSIGTYPE)
2840 typedef RETSIGTYPE (__acc_cdecl_sighandler
*acc_sighandler_t
)(acc_signo_t
);
2842 typedef void (__acc_cdecl_sighandler
*acc_sighandler_t
)(acc_signo_t
);
2844 #if defined(__cplusplus)
2847 # if (ACC_CFG_NO_ACC_UA_H)
2849 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
2850 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
2851 #elif (ACC_CC_INTELC) && defined(_WIN32)
2852 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
2854 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
2855 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
2856 typedef struct { __acc_ua_volatile acc_uint16e_t v
__attribute__((__packed__
)); } __acc_ua16_t
;
2857 # define __acc_ua16_t __acc_ua16_t
2859 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
2860 typedef struct { __acc_ua_volatile acc_uint32e_t v
__attribute__((__packed__
)); } __acc_ua32_t
;
2861 # define __acc_ua32_t __acc_ua32_t
2863 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
2864 typedef struct { __acc_ua_volatile acc_uint64l_t v
__attribute__((__packed__
)); } __acc_ua64_t
;
2865 # define __acc_ua64_t __acc_ua64_t
2868 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
2869 #define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
2870 #define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
2871 #if (ACC_ABI_BIG_ENDIAN)
2872 # define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
2873 # define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
2874 #elif (ACC_ABI_LITTLE_ENDIAN)
2875 # define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
2876 # define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
2878 #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
2879 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
2880 #if !defined(ACC_UA_GET_LE16)
2881 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile
const void* pp
);
2882 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile
const void* pp
) {
2883 __acc_ua_volatile
const acc_uint16e_t
* p
= (__acc_ua_volatile
const acc_uint16e_t
*) pp
;
2885 __asm__
__volatile__("lhbrx %0,0,%1" : "=r" (v
) : "r" (p
), "m" (*p
));
2888 #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
2890 #if !defined(ACC_UA_SET_LE16)
2891 extern __acc_forceinline
void __ACC_UA_SET_LE16(__acc_ua_volatile
void* pp
, unsigned long v
);
2892 extern __acc_forceinline
void __ACC_UA_SET_LE16(__acc_ua_volatile
void* pp
, unsigned long v
) {
2893 __acc_ua_volatile acc_uint16e_t
* p
= (__acc_ua_volatile acc_uint16e_t
*) pp
;
2894 __asm__
__volatile__("sthbrx %2,0,%1" : "=m" (*p
) : "r" (p
), "r" (v
));
2896 #define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
2900 #if !defined(ACC_UA_COPY16)
2901 # define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
2904 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
2905 #define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
2906 #define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
2907 #if (ACC_ABI_BIG_ENDIAN)
2908 # define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
2909 # define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
2910 #elif (ACC_ABI_LITTLE_ENDIAN)
2911 # define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
2912 # define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
2914 #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
2915 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
2916 #if !defined(ACC_UA_GET_LE32)
2917 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile
const void* pp
);
2918 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile
const void* pp
) {
2919 __acc_ua_volatile
const acc_uint32e_t
* p
= (__acc_ua_volatile
const acc_uint32e_t
*) pp
;
2921 __asm__
__volatile__("lwbrx %0,0,%1" : "=r" (v
) : "r" (p
), "m" (*p
));
2924 #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
2926 #if !defined(ACC_UA_SET_LE32)
2927 extern __acc_forceinline
void __ACC_UA_SET_LE32(__acc_ua_volatile
void* pp
, unsigned long v
);
2928 extern __acc_forceinline
void __ACC_UA_SET_LE32(__acc_ua_volatile
void* pp
, unsigned long v
) {
2929 __acc_ua_volatile acc_uint32e_t
* p
= (__acc_ua_volatile acc_uint32e_t
*) pp
;
2930 __asm__
__volatile__("stwbrx %2,0,%1" : "=m" (*p
) : "r" (p
), "r" (v
));
2932 #define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
2936 #if !defined(ACC_UA_COPY32)
2937 # define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
2940 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
2941 #define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
2942 #define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
2943 #if (ACC_ABI_BIG_ENDIAN)
2944 # define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
2945 # define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
2946 #elif (ACC_ABI_LITTLE_ENDIAN)
2947 # define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
2948 # define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
2950 #if !defined(ACC_UA_COPY64)
2951 # define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
2957 #if defined(ACC_WANT_ACC_TYPE_H)
2958 # undef ACC_WANT_ACC_TYPE_H
2959 # if defined(ACC_CFG_NO_ACC_TYPE_H)
2960 # error "ACC_WANT_ACC_TYPE_H with ACC_CFG_NO_ACC_TYPE_H"
2962 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
2963 __acc_gnuc_extension__
typedef long long acc_llong_t
;
2964 __acc_gnuc_extension__
typedef unsigned long long acc_ullong_t
;
2966 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
2967 # error "missing defines for sizes"
2969 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
2970 # error "missing defines for sizes"
2972 #if !defined(acc_int16e_t)
2973 #if (ACC_SIZEOF_LONG == 2)
2974 # define acc_int16e_t long
2975 # define acc_uint16e_t unsigned long
2976 #elif (ACC_SIZEOF_INT == 2)
2977 # define acc_int16e_t int
2978 # define acc_uint16e_t unsigned int
2979 #elif (ACC_SIZEOF_SHORT == 2)
2980 # define acc_int16e_t short int
2981 # define acc_uint16e_t unsigned short int
2982 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
2983 typedef int __acc_int16e_hi_t
__attribute__((__mode__(__HI__
)));
2984 typedef unsigned int __acc_uint16e_hi_t
__attribute__((__mode__(__HI__
)));
2985 # define acc_int16e_t __acc_int16e_hi_t
2986 # define acc_uint16e_t __acc_uint16e_hi_t
2987 #elif (ACC_SIZEOF___INT16 == 2)
2988 # define acc_int16e_t __int16
2989 # define acc_uint16e_t unsigned __int16
2993 #if defined(acc_int16e_t)
2994 # define ACC_SIZEOF_ACC_INT16E_T 2
2996 #if !defined(acc_int32e_t)
2997 #if (ACC_SIZEOF_LONG == 4)
2998 # define acc_int32e_t long int
2999 # define acc_uint32e_t unsigned long int
3000 #elif (ACC_SIZEOF_INT == 4)
3001 # define acc_int32e_t int
3002 # define acc_uint32e_t unsigned int
3003 #elif (ACC_SIZEOF_SHORT == 4)
3004 # define acc_int32e_t short int
3005 # define acc_uint32e_t unsigned short int
3006 #elif (ACC_SIZEOF_LONG_LONG == 4)
3007 # define acc_int32e_t acc_llong_t
3008 # define acc_uint32e_t acc_ullong_t
3009 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
3010 typedef int __acc_int32e_si_t
__attribute__((__mode__(__SI__
)));
3011 typedef unsigned int __acc_uint32e_si_t
__attribute__((__mode__(__SI__
)));
3012 # define acc_int32e_t __acc_int32e_si_t
3013 # define acc_uint32e_t __acc_uint32e_si_t
3014 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
3015 typedef int __acc_int32e_si_t
__attribute__((__mode__(__SI__
)));
3016 typedef unsigned int __acc_uint32e_si_t
__attribute__((__mode__(__SI__
)));
3017 # define acc_int32e_t __acc_int32e_si_t
3018 # define acc_uint32e_t __acc_uint32e_si_t
3019 # define ACC_INT32_C(c) c##LL
3020 # define ACC_UINT32_C(c) c##ULL
3021 #elif (ACC_SIZEOF___INT32 == 4)
3022 # define acc_int32e_t __int32
3023 # define acc_uint32e_t unsigned __int32
3027 #if defined(acc_int32e_t)
3028 # define ACC_SIZEOF_ACC_INT32E_T 4
3030 #if !defined(acc_int64e_t)
3031 #if (ACC_SIZEOF___INT64 == 8)
3032 # if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
3033 # define ACC_CFG_TYPE_PREFER___INT64 1
3036 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3037 # define acc_int64e_t int
3038 # define acc_uint64e_t unsigned int
3039 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
3040 #elif (ACC_SIZEOF_LONG == 8)
3041 # define acc_int64e_t long int
3042 # define acc_uint64e_t unsigned long int
3043 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
3044 #elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
3045 # define acc_int64e_t acc_llong_t
3046 # define acc_uint64e_t acc_ullong_t
3047 # if (ACC_CC_BORLANDC)
3048 # define ACC_INT64_C(c) ((c) + 0ll)
3049 # define ACC_UINT64_C(c) ((c) + 0ull)
3051 # define ACC_INT64_C(c) c##LL
3052 # define ACC_UINT64_C(c) c##ULL
3054 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
3055 #elif (ACC_SIZEOF___INT64 == 8)
3056 # define acc_int64e_t __int64
3057 # define acc_uint64e_t unsigned __int64
3058 # if (ACC_CC_BORLANDC)
3059 # define ACC_INT64_C(c) ((c) + 0i64)
3060 # define ACC_UINT64_C(c) ((c) + 0ui64)
3062 # define ACC_INT64_C(c) c##i64
3063 # define ACC_UINT64_C(c) c##ui64
3065 # define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
3069 #if !defined(acc_int32l_t)
3070 #if defined(acc_int32e_t)
3071 # define acc_int32l_t acc_int32e_t
3072 # define acc_uint32l_t acc_uint32e_t
3073 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
3074 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3075 # define acc_int32l_t int
3076 # define acc_uint32l_t unsigned int
3077 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
3078 #elif (ACC_SIZEOF_LONG >= 4)
3079 # define acc_int32l_t long int
3080 # define acc_uint32l_t unsigned long int
3081 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
3083 # error "acc_int32l_t"
3086 #if !defined(acc_int64l_t)
3087 #if defined(acc_int64e_t)
3088 # define acc_int64l_t acc_int64e_t
3089 # define acc_uint64l_t acc_uint64e_t
3090 # define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
3094 #if !defined(acc_int32f_t)
3095 #if (ACC_SIZEOF_SIZE_T >= 8)
3096 # define acc_int32f_t acc_int64l_t
3097 # define acc_uint32f_t acc_uint64l_t
3098 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
3100 # define acc_int32f_t acc_int32l_t
3101 # define acc_uint32f_t acc_uint32l_t
3102 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
3105 #if !defined(acc_intptr_t)
3106 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
3107 # define __ACC_INTPTR_T_IS_POINTER 1
3108 typedef char* acc_intptr_t
;
3109 typedef char* acc_uintptr_t
;
3110 # define acc_intptr_t acc_intptr_t
3111 # define acc_uintptr_t acc_uintptr_t
3112 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
3113 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
3114 typedef __w64
int acc_intptr_t
;
3115 typedef __w64
unsigned int acc_uintptr_t
;
3116 # define acc_intptr_t acc_intptr_t
3117 # define acc_uintptr_t acc_uintptr_t
3118 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3119 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
3120 # define acc_intptr_t short
3121 # define acc_uintptr_t unsigned short
3122 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
3123 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3124 # define acc_intptr_t int
3125 # define acc_uintptr_t unsigned int
3126 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3127 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
3128 # define acc_intptr_t long
3129 # define acc_uintptr_t unsigned long
3130 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
3131 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
3132 # define acc_intptr_t acc_int64l_t
3133 # define acc_uintptr_t acc_uint64l_t
3134 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
3136 # error "acc_intptr_t"
3139 #if !defined(acc_word_t)
3140 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
3141 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
3142 # define acc_word_t acc_uintptr_t
3143 # define acc_sword_t acc_intptr_t
3144 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
3145 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
3146 # define acc_word_t unsigned long
3147 # define acc_sword_t long
3148 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
3149 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
3150 # define acc_word_t unsigned int
3151 # define acc_sword_t int
3152 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
3153 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
3154 # define acc_word_t unsigned short
3155 # define acc_sword_t short
3156 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
3157 #elif (ACC_WORDSIZE == 1)
3158 # define acc_word_t unsigned char
3159 # define acc_sword_t signed char
3160 # define ACC_SIZEOF_ACC_WORD_T 1
3161 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
3162 # define acc_word_t acc_uint64l_t
3163 # define acc_sword_t acc_int64l_t
3164 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
3165 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
3167 typedef unsigned acc_word_t
__attribute__((__mode__(__V16QI__
)));
3168 typedef int acc_sword_t
__attribute__((__mode__(__V16QI__
)));
3169 # define acc_word_t acc_word_t
3170 # define acc_sword_t acc_sword_t
3171 # define ACC_SIZEOF_ACC_WORD_T 16
3174 # error "acc_word_t"
3178 #if !defined(ACC_INT16_C)
3179 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
3180 # define ACC_INT16_C(c) ((c) + 0)
3181 # define ACC_UINT16_C(c) ((c) + 0U)
3182 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
3183 # define ACC_INT16_C(c) ((c) + 0L)
3184 # define ACC_UINT16_C(c) ((c) + 0UL)
3185 # elif (ACC_SIZEOF_INT >= 2)
3186 # define ACC_INT16_C(c) c
3187 # define ACC_UINT16_C(c) c##U
3188 # elif (ACC_SIZEOF_LONG >= 2)
3189 # define ACC_INT16_C(c) c##L
3190 # define ACC_UINT16_C(c) c##UL
3192 # error "ACC_INT16_C"
3195 #if !defined(ACC_INT32_C)
3196 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
3197 # define ACC_INT32_C(c) ((c) + 0)
3198 # define ACC_UINT32_C(c) ((c) + 0U)
3199 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
3200 # define ACC_INT32_C(c) ((c) + 0L)
3201 # define ACC_UINT32_C(c) ((c) + 0UL)
3202 # elif (ACC_SIZEOF_INT >= 4)
3203 # define ACC_INT32_C(c) c
3204 # define ACC_UINT32_C(c) c##U
3205 # elif (ACC_SIZEOF_LONG >= 4)
3206 # define ACC_INT32_C(c) c##L
3207 # define ACC_UINT32_C(c) c##UL
3208 # elif (ACC_SIZEOF_LONG_LONG >= 4)
3209 # define ACC_INT32_C(c) c##LL
3210 # define ACC_UINT32_C(c) c##ULL
3212 # error "ACC_INT32_C"
3215 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
3216 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
3217 # define ACC_INT64_C(c) ((c) + 0)
3218 # define ACC_UINT64_C(c) ((c) + 0U)
3219 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
3220 # define ACC_INT64_C(c) ((c) + 0L)
3221 # define ACC_UINT64_C(c) ((c) + 0UL)
3222 # elif (ACC_SIZEOF_INT >= 8)
3223 # define ACC_INT64_C(c) c
3224 # define ACC_UINT64_C(c) c##U
3225 # elif (ACC_SIZEOF_LONG >= 8)
3226 # define ACC_INT64_C(c) c##L
3227 # define ACC_UINT64_C(c) c##UL
3229 # error "ACC_INT64_C"
3232 #if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
3233 # define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
3235 #if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
3236 # define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
3238 #if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
3239 # define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
3241 #if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
3242 # define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
3244 #if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
3245 # define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
3247 #if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
3248 # define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
3250 #if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
3251 # define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
3253 #if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
3254 # define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
3256 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
3257 # define acc_signo_t acc_int32e_t
3259 #if !defined(acc_signo_t)
3260 # define acc_signo_t int
3262 #if defined(__cplusplus)
3265 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
3266 typedef void __acc_cdecl_sighandler (*acc_sighandler_t
)(acc_signo_t
);
3267 #elif defined(RETSIGTYPE)
3268 typedef RETSIGTYPE (__acc_cdecl_sighandler
*acc_sighandler_t
)(acc_signo_t
);
3270 typedef void (__acc_cdecl_sighandler
*acc_sighandler_t
)(acc_signo_t
);
3272 #if defined(__cplusplus)
3275 # if !defined(ACC_CFG_NO_ACC_UA_H)
3276 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
3277 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
3278 #elif (ACC_CC_INTELC) && defined(_WIN32)
3279 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
3281 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
3282 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3283 typedef struct { __acc_ua_volatile acc_uint16e_t v
__attribute__((__packed__
)); } __acc_ua16_t
;
3284 # define __acc_ua16_t __acc_ua16_t
3286 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3287 typedef struct { __acc_ua_volatile acc_uint32e_t v
__attribute__((__packed__
)); } __acc_ua32_t
;
3288 # define __acc_ua32_t __acc_ua32_t
3290 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
3291 typedef struct { __acc_ua_volatile acc_uint64l_t v
__attribute__((__packed__
)); } __acc_ua64_t
;
3292 # define __acc_ua64_t __acc_ua64_t
3295 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3296 #define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
3297 #define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
3298 #if (ACC_ABI_BIG_ENDIAN)
3299 # define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
3300 # define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
3301 #elif (ACC_ABI_LITTLE_ENDIAN)
3302 # define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
3303 # define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
3305 #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
3306 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
3307 #if !defined(ACC_UA_GET_LE16)
3308 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile
const void* pp
);
3309 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile
const void* pp
) {
3310 __acc_ua_volatile
const acc_uint16e_t
* p
= (__acc_ua_volatile
const acc_uint16e_t
*) pp
;
3312 __asm__
__volatile__("lhbrx %0,0,%1" : "=r" (v
) : "r" (p
), "m" (*p
));
3315 #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
3317 #if !defined(ACC_UA_SET_LE16)
3318 extern __acc_forceinline
void __ACC_UA_SET_LE16(__acc_ua_volatile
void* pp
, unsigned long v
);
3319 extern __acc_forceinline
void __ACC_UA_SET_LE16(__acc_ua_volatile
void* pp
, unsigned long v
) {
3320 __acc_ua_volatile acc_uint16e_t
* p
= (__acc_ua_volatile acc_uint16e_t
*) pp
;
3321 __asm__
__volatile__("sthbrx %2,0,%1" : "=m" (*p
) : "r" (p
), "r" (v
));
3323 #define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
3327 #if !defined(ACC_UA_COPY16)
3328 # define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
3331 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3332 #define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
3333 #define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
3334 #if (ACC_ABI_BIG_ENDIAN)
3335 # define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
3336 # define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
3337 #elif (ACC_ABI_LITTLE_ENDIAN)
3338 # define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
3339 # define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
3341 #if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
3342 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
3343 #if !defined(ACC_UA_GET_LE32)
3344 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile
const void* pp
);
3345 extern __acc_forceinline
unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile
const void* pp
) {
3346 __acc_ua_volatile
const acc_uint32e_t
* p
= (__acc_ua_volatile
const acc_uint32e_t
*) pp
;
3348 __asm__
__volatile__("lwbrx %0,0,%1" : "=r" (v
) : "r" (p
), "m" (*p
));
3351 #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
3353 #if !defined(ACC_UA_SET_LE32)
3354 extern __acc_forceinline
void __ACC_UA_SET_LE32(__acc_ua_volatile
void* pp
, unsigned long v
);
3355 extern __acc_forceinline
void __ACC_UA_SET_LE32(__acc_ua_volatile
void* pp
, unsigned long v
) {
3356 __acc_ua_volatile acc_uint32e_t
* p
= (__acc_ua_volatile acc_uint32e_t
*) pp
;
3357 __asm__
__volatile__("stwbrx %2,0,%1" : "=m" (*p
) : "r" (p
), "r" (v
));
3359 #define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
3363 #if !defined(ACC_UA_COPY32)
3364 # define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
3367 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
3368 #define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
3369 #define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
3370 #if (ACC_ABI_BIG_ENDIAN)
3371 # define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
3372 # define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
3373 #elif (ACC_ABI_LITTLE_ENDIAN)
3374 # define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
3375 # define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
3377 #if !defined(ACC_UA_COPY64)
3378 # define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
3383 #if defined(ACC_WANT_ACC_INCD_H)
3384 # undef ACC_WANT_ACC_INCD_H
3385 #ifndef __ACC_INCD_H_INCLUDED
3386 #define __ACC_INCD_H_INCLUDED 1
3387 #if (ACC_LIBC_NAKED)
3388 #ifndef __ACC_FALLBACK_STDDEF_H_INCLUDED
3389 #define __ACC_FALLBACK_STDDEF_H_INCLUDED 1
3390 #if defined(__PTRDIFF_TYPE__)
3391 typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t
;
3392 #elif defined(__MIPS_PSX2__)
3393 typedef int acc_fallback_ptrdiff_t
;
3395 typedef long acc_fallback_ptrdiff_t
;
3397 #if defined(__SIZE_TYPE__)
3398 typedef __SIZE_TYPE__ acc_fallback_size_t
;
3399 #elif defined(__MIPS_PSX2__)
3400 typedef unsigned int acc_fallback_size_t
;
3402 typedef unsigned long acc_fallback_size_t
;
3404 #if !defined(ptrdiff_t)
3405 typedef acc_fallback_ptrdiff_t
ptrdiff_t;
3406 #ifndef _PTRDIFF_T_DEFINED
3407 #define _PTRDIFF_T_DEFINED 1
3410 #if !defined(size_t)
3411 typedef acc_fallback_size_t
size_t;
3412 #ifndef _SIZE_T_DEFINED
3413 #define _SIZE_T_DEFINED 1
3416 #if !defined(__cplusplus) && !defined(wchar_t)
3417 typedef unsigned short wchar_t;
3418 #ifndef _WCHAR_T_DEFINED
3419 #define _WCHAR_T_DEFINED 1
3423 #if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
3425 #elif defined(__cplusplus)
3428 #define NULL ((void*)0)
3432 #define offsetof(s,m) ((size_t)((ptrdiff_t)&(((s*)0)->m)))
3435 #elif (ACC_LIBC_FREESTANDING)
3437 # include <stddef.h>
3440 # include <stdint.h>
3442 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
3447 # include <stddef.h>
3450 # include <stdint.h>
3454 #if (HAVE_TIME_H) && defined(__MSL__) && defined(__cplusplus)
3457 #if HAVE_SYS_TYPES_H
3458 # include <sys/types.h>
3461 # include <sys/stat.h>
3464 # include <stdlib.h>
3465 # include <stddef.h>
3468 # include <stdlib.h>
3472 # if !STDC_HEADERS && HAVE_MEMORY_H
3473 # include <memory.h>
3475 # include <string.h>
3478 # include <strings.h>
3481 # include <inttypes.h>
3484 # include <stdint.h>
3488 # include <unistd.h>
3493 #if defined(ACC_WANT_ACC_INCE_H)
3494 # undef ACC_WANT_ACC_INCE_H
3495 #ifndef __ACC_INCE_H_INCLUDED
3496 #define __ACC_INCE_H_INCLUDED 1
3497 #if (ACC_LIBC_NAKED)
3498 #elif (ACC_LIBC_FREESTANDING)
3499 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
3500 # if (HAVE_SETJMP_H)
3501 # include <setjmp.h>
3505 # include <stdarg.h>
3514 # include <malloc.h>
3517 # include <alloca.h>
3523 # include <dirent.h>
3526 # include <setjmp.h>
3529 # include <signal.h>
3531 #if (TIME_WITH_SYS_TIME)
3532 # include <sys/time.h>
3539 #elif (HAVE_SYS_UTIME_H)
3540 # include <sys/utime.h>
3549 # include <direct.h>
3557 #if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
3563 #if defined(ACC_WANT_ACC_INCI_H)
3564 # undef ACC_WANT_ACC_INCI_H
3565 #ifndef __ACC_INCI_H_INCLUDED
3566 #define __ACC_INCI_H_INCLUDED 1
3567 #if (ACC_LIBC_NAKED)
3568 #elif (ACC_LIBC_FREESTANDING)
3569 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
3571 #if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3573 #elif (ACC_HAVE_WINDOWS_H)
3574 # if 1 && !defined(WIN32_LEAN_AND_MEAN)
3575 # define WIN32_LEAN_AND_MEAN 1
3577 # if 1 && !defined(_WIN32_WINNT)
3578 # define _WIN32_WINNT 0x0400
3580 # include <windows.h>
3581 # if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
3584 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_WIN16)
3585 # if (ACC_CC_AZTECC)
3588 # elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
3591 # elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3592 # include <sys/exceptn.h>
3593 # elif (ACC_CC_PACIFICC)
3594 # include <unixio.h>
3597 # elif (ACC_CC_WATCOMC)
3600 #elif (ACC_OS_OS216)
3601 # if (ACC_CC_WATCOMC)
3605 #if (HAVE_SYS_MMAN_H)
3606 # include <sys/mman.h>
3608 #if (HAVE_SYS_RESOURCE_H)
3609 # include <sys/resource.h>
3611 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
3612 # if defined(FP_OFF)
3613 # define ACC_PTR_FP_OFF(x) FP_OFF(x)
3614 # elif defined(_FP_OFF)
3615 # define ACC_PTR_FP_OFF(x) _FP_OFF(x)
3617 # define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
3619 # if defined(FP_SEG)
3620 # define ACC_PTR_FP_SEG(x) FP_SEG(x)
3621 # elif defined(_FP_SEG)
3622 # define ACC_PTR_FP_SEG(x) _FP_SEG(x)
3624 # define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
3627 # define ACC_PTR_MK_FP(s,o) MK_FP(s,o)
3628 # elif defined(_MK_FP)
3629 # define ACC_PTR_MK_FP(s,o) _MK_FP(s,o)
3631 # define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
3634 # undef ACC_PTR_FP_OFF
3635 # undef ACC_PTR_FP_SEG
3636 # undef ACC_PTR_MK_FP
3637 # define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
3638 # define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
3639 # define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
3645 #if defined(ACC_WANT_ACC_LIB_H)
3646 # undef ACC_WANT_ACC_LIB_H
3647 #ifndef __ACC_LIB_H_INCLUDED
3648 #define __ACC_LIB_H_INCLUDED 1
3649 #if !defined(__ACCLIB_FUNCNAME)
3650 # define __ACCLIB_FUNCNAME(f) f
3652 #if !defined(ACCLIB_EXTERN)
3653 # define ACCLIB_EXTERN(r,f) extern r __ACCLIB_FUNCNAME(f)
3655 #if !defined(ACCLIB_EXTERN_NOINLINE)
3656 # if defined(__acc_noinline)
3657 # define ACCLIB_EXTERN_NOINLINE(r,f) extern __acc_noinline r __ACCLIB_FUNCNAME(f)
3659 # define ACCLIB_EXTERN_NOINLINE(r,f) extern r __ACCLIB_FUNCNAME(f)
3662 #if !defined(__ACCLIB_CONST_CAST_RETURN)
3663 #if 1 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
3664 # define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (acc_uintptr_t) (var);
3665 #elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
3666 # define __ACCLIB_CONST_CAST_RETURN(type,var) \
3667 { union { type a; const type b; } u; u.b = (var); return u.a; }
3669 # define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (var);
3673 # define acclib_handle_t acc_int64l_t
3674 # define acclib_uhandle_t acc_uint64l_t
3675 #elif (ACC_ARCH_I386 && ACC_CC_MSC && (_MSC_VER >= 1300))
3676 typedef __w64
long acclib_handle_t
;
3677 typedef __w64
unsigned long acclib_uhandle_t
;
3678 # define acclib_handle_t acclib_handle_t
3679 # define acclib_uhandle_t acclib_uhandle_t
3681 # define acclib_handle_t long
3682 # define acclib_uhandle_t unsigned long
3685 ACCLIB_EXTERN(int, acc_ascii_digit
) (int);
3686 ACCLIB_EXTERN(int, acc_ascii_islower
) (int);
3687 ACCLIB_EXTERN(int, acc_ascii_isupper
) (int);
3688 ACCLIB_EXTERN(int, acc_ascii_tolower
) (int);
3689 ACCLIB_EXTERN(int, acc_ascii_toupper
) (int);
3690 ACCLIB_EXTERN(int, acc_ascii_utolower
) (int);
3691 ACCLIB_EXTERN(int, acc_ascii_utoupper
) (int);
3693 #define acc_ascii_isdigit(c) (((unsigned)(c) - 48) < 10)
3694 #define acc_ascii_islower(c) (((unsigned)(c) - 97) < 26)
3695 #define acc_ascii_isupper(c) (((unsigned)(c) - 65) < 26)
3696 #define acc_ascii_tolower(c) ((int)(c) + (acc_ascii_isupper(c) << 5))
3697 #define acc_ascii_toupper(c) ((int)(c) - (acc_ascii_islower(c) << 5))
3698 #define acc_ascii_utolower(c) acc_ascii_tolower((unsigned char)(c))
3699 #define acc_ascii_utoupper(c) acc_ascii_toupper((unsigned char)(c))
3701 #if (ACC_HAVE_MM_HUGE_PTR)
3702 # define acc_hsize_t unsigned long
3703 # define acc_hvoid_p void __huge *
3704 # define acc_hchar_p char __huge *
3705 # define acc_hchar_pp char __huge * __huge *
3706 # define acc_hbyte_p unsigned char __huge *
3708 # define acc_hsize_t size_t
3709 # define acc_hvoid_p void *
3710 # define acc_hchar_p char *
3711 # define acc_hchar_pp char **
3712 # define acc_hbyte_p unsigned char *
3715 ACCLIB_EXTERN(acc_hvoid_p
, acc_halloc
) (acc_hsize_t
);
3716 ACCLIB_EXTERN(void, acc_hfree
) (acc_hvoid_p
);
3717 #if (ACC_OS_DOS16 || ACC_OS_OS216)
3718 ACCLIB_EXTERN(void __far
*, acc_dos_alloc
) (unsigned long);
3719 ACCLIB_EXTERN(int, acc_dos_free
) (void __far
*);
3721 ACCLIB_EXTERN(int, acc_hmemcmp
) (const acc_hvoid_p
, const acc_hvoid_p
, acc_hsize_t
);
3722 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemcpy
) (acc_hvoid_p
, const acc_hvoid_p
, acc_hsize_t
);
3723 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemmove
) (acc_hvoid_p
, const acc_hvoid_p
, acc_hsize_t
);
3724 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemset
) (acc_hvoid_p
, int, acc_hsize_t
);
3725 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrlen
) (const acc_hchar_p
);
3726 ACCLIB_EXTERN(int, acc_hstrcmp
) (const acc_hchar_p
, const acc_hchar_p
);
3727 ACCLIB_EXTERN(int, acc_hstrncmp
)(const acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3728 ACCLIB_EXTERN(int, acc_ascii_hstricmp
) (const acc_hchar_p
, const acc_hchar_p
);
3729 ACCLIB_EXTERN(int, acc_ascii_hstrnicmp
)(const acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3730 ACCLIB_EXTERN(int, acc_ascii_hmemicmp
) (const acc_hvoid_p
, const acc_hvoid_p
, acc_hsize_t
);
3731 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrstr
) (const acc_hchar_p
, const acc_hchar_p
);
3732 ACCLIB_EXTERN(acc_hchar_p
, acc_ascii_hstristr
) (const acc_hchar_p
, const acc_hchar_p
);
3733 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemmem
) (const acc_hvoid_p
, acc_hsize_t
, const acc_hvoid_p
, acc_hsize_t
);
3734 ACCLIB_EXTERN(acc_hvoid_p
, acc_ascii_hmemimem
) (const acc_hvoid_p
, acc_hsize_t
, const acc_hvoid_p
, acc_hsize_t
);
3735 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrcpy
) (acc_hchar_p
, const acc_hchar_p
);
3736 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrcat
) (acc_hchar_p
, const acc_hchar_p
);
3737 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrlcpy
) (acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3738 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrlcat
) (acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3739 ACCLIB_EXTERN(int, acc_hstrscpy
) (acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3740 ACCLIB_EXTERN(int, acc_hstrscat
) (acc_hchar_p
, const acc_hchar_p
, acc_hsize_t
);
3741 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrccpy
) (acc_hchar_p
, const acc_hchar_p
, int);
3742 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemccpy
) (acc_hvoid_p
, const acc_hvoid_p
, int, acc_hsize_t
);
3743 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrchr
) (const acc_hchar_p
, int);
3744 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrrchr
) (const acc_hchar_p
, int);
3745 ACCLIB_EXTERN(acc_hchar_p
, acc_ascii_hstrichr
) (const acc_hchar_p
, int);
3746 ACCLIB_EXTERN(acc_hchar_p
, acc_ascii_hstrrichr
) (const acc_hchar_p
, int);
3747 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemchr
) (const acc_hvoid_p
, int, acc_hsize_t
);
3748 ACCLIB_EXTERN(acc_hvoid_p
, acc_hmemrchr
) (const acc_hvoid_p
, int, acc_hsize_t
);
3749 ACCLIB_EXTERN(acc_hvoid_p
, acc_ascii_hmemichr
) (const acc_hvoid_p
, int, acc_hsize_t
);
3750 ACCLIB_EXTERN(acc_hvoid_p
, acc_ascii_hmemrichr
) (const acc_hvoid_p
, int, acc_hsize_t
);
3751 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrspn
) (const acc_hchar_p
, const acc_hchar_p
);
3752 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrrspn
) (const acc_hchar_p
, const acc_hchar_p
);
3753 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrcspn
) (const acc_hchar_p
, const acc_hchar_p
);
3754 ACCLIB_EXTERN(acc_hsize_t
, acc_hstrrcspn
) (const acc_hchar_p
, const acc_hchar_p
);
3755 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrpbrk
) (const acc_hchar_p
, const acc_hchar_p
);
3756 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrrpbrk
) (const acc_hchar_p
, const acc_hchar_p
);
3757 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrsep
) (acc_hchar_pp
, const acc_hchar_p
);
3758 ACCLIB_EXTERN(acc_hchar_p
, acc_hstrrsep
) (acc_hchar_pp
, const acc_hchar_p
);
3759 ACCLIB_EXTERN(acc_hchar_p
, acc_ascii_hstrlwr
) (acc_hchar_p
);
3760 ACCLIB_EXTERN(acc_hchar_p
, acc_ascii_hstrupr
) (acc_hchar_p
);
3761 ACCLIB_EXTERN(acc_hvoid_p
, acc_ascii_hmemlwr
) (acc_hvoid_p
, acc_hsize_t
);
3762 ACCLIB_EXTERN(acc_hvoid_p
, acc_ascii_hmemupr
) (acc_hvoid_p
, acc_hsize_t
);
3763 ACCLIB_EXTERN(acc_hsize_t
, acc_hfread
) (void *, acc_hvoid_p
, acc_hsize_t
);
3764 ACCLIB_EXTERN(acc_hsize_t
, acc_hfwrite
) (void *, const acc_hvoid_p
, acc_hsize_t
);
3765 #if (ACC_HAVE_MM_HUGE_PTR)
3766 ACCLIB_EXTERN(long, acc_hread
) (int, acc_hvoid_p
, long);
3767 ACCLIB_EXTERN(long, acc_hwrite
) (int, const acc_hvoid_p
, long);
3769 ACCLIB_EXTERN(long, acc_safe_hread
) (int, acc_hvoid_p
, long);
3770 ACCLIB_EXTERN(long, acc_safe_hwrite
) (int, const acc_hvoid_p
, long);
3771 ACCLIB_EXTERN(unsigned, acc_ua_get_be16
) (const acc_hvoid_p
);
3772 ACCLIB_EXTERN(acc_uint32l_t
, acc_ua_get_be24
) (const acc_hvoid_p
);
3773 ACCLIB_EXTERN(acc_uint32l_t
, acc_ua_get_be32
) (const acc_hvoid_p
);
3774 ACCLIB_EXTERN(void, acc_ua_set_be16
) (acc_hvoid_p
, unsigned);
3775 ACCLIB_EXTERN(void, acc_ua_set_be24
) (acc_hvoid_p
, acc_uint32l_t
);
3776 ACCLIB_EXTERN(void, acc_ua_set_be32
) (acc_hvoid_p
, acc_uint32l_t
);
3777 ACCLIB_EXTERN(unsigned, acc_ua_get_le16
) (const acc_hvoid_p
);
3778 ACCLIB_EXTERN(acc_uint32l_t
, acc_ua_get_le24
) (const acc_hvoid_p
);
3779 ACCLIB_EXTERN(acc_uint32l_t
, acc_ua_get_le32
) (const acc_hvoid_p
);
3780 ACCLIB_EXTERN(void, acc_ua_set_le16
) (acc_hvoid_p
, unsigned);
3781 ACCLIB_EXTERN(void, acc_ua_set_le24
) (acc_hvoid_p
, acc_uint32l_t
);
3782 ACCLIB_EXTERN(void, acc_ua_set_le32
) (acc_hvoid_p
, acc_uint32l_t
);
3783 #if defined(acc_int64l_t)
3784 ACCLIB_EXTERN(acc_uint64l_t
, acc_ua_get_be64
) (const acc_hvoid_p
);
3785 ACCLIB_EXTERN(void, acc_ua_set_be64
) (acc_hvoid_p
, acc_uint64l_t
);
3786 ACCLIB_EXTERN(acc_uint64l_t
, acc_ua_get_le64
) (const acc_hvoid_p
);
3787 ACCLIB_EXTERN(void, acc_ua_set_le64
) (acc_hvoid_p
, acc_uint64l_t
);
3789 ACCLIB_EXTERN_NOINLINE(short, acc_vget_short
) (short, int);
3790 ACCLIB_EXTERN_NOINLINE(int, acc_vget_int
) (int, int);
3791 ACCLIB_EXTERN_NOINLINE(long, acc_vget_long
) (long, int);
3792 #if defined(acc_int64l_t)
3793 ACCLIB_EXTERN_NOINLINE(acc_int64l_t
, acc_vget_acc_int64l_t
) (acc_int64l_t
, int);
3795 ACCLIB_EXTERN_NOINLINE(acc_hsize_t
, acc_vget_acc_hsize_t
) (acc_hsize_t
, int);
3796 #if !(ACC_CFG_NO_FLOAT)
3797 ACCLIB_EXTERN_NOINLINE(float, acc_vget_float
) (float, int);
3799 #if !(ACC_CFG_NO_DOUBLE)
3800 ACCLIB_EXTERN_NOINLINE(double, acc_vget_double
) (double, int);
3802 ACCLIB_EXTERN_NOINLINE(acc_hvoid_p
, acc_vget_acc_hvoid_p
) (acc_hvoid_p
, int);
3803 ACCLIB_EXTERN_NOINLINE(const acc_hvoid_p
, acc_vget_acc_hvoid_cp
) (const acc_hvoid_p
, int);
3804 #if !defined(ACC_FN_PATH_MAX)
3805 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
3806 # define ACC_FN_PATH_MAX 143
3807 #elif (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN32 || ACC_OS_WIN64)
3808 # define ACC_FN_PATH_MAX 259
3810 # define ACC_FN_PATH_MAX 259
3813 #if !defined(ACC_FN_PATH_MAX)
3814 # define ACC_FN_PATH_MAX 1023
3816 #if !defined(ACC_FN_NAME_MAX)
3817 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
3818 # define ACC_FN_NAME_MAX 12
3819 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3820 # define ACC_FN_NAME_MAX 12
3821 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3822 #elif (ACC_OS_DOS32)
3823 # define ACC_FN_NAME_MAX 12
3826 #if !defined(ACC_FN_NAME_MAX)
3827 # define ACC_FN_NAME_MAX ACC_FN_PATH_MAX
3829 #define ACC_FNMATCH_NOESCAPE 1
3830 #define ACC_FNMATCH_PATHNAME 2
3831 #define ACC_FNMATCH_PATHSTAR 4
3832 #define ACC_FNMATCH_PERIOD 8
3833 #define ACC_FNMATCH_ASCII_CASEFOLD 16
3834 ACCLIB_EXTERN(int, acc_fnmatch
) (const acc_hchar_p
, const acc_hchar_p
, int);
3835 #undef __ACCLIB_USE_OPENDIR
3836 #if (HAVE_DIRENT_H || ACC_CC_WATCOMC)
3837 # define __ACCLIB_USE_OPENDIR 1
3838 # if (ACC_OS_DOS32 && defined(__BORLANDC__))
3839 # elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3840 # elif (ACC_OS_OS2 || ACC_OS_OS216)
3841 # elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
3842 # elif (ACC_OS_WIN32 && !(ACC_HAVE_WINDOWS_H))
3843 # elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
3844 # undef __ACCLIB_USE_OPENDIR
3849 #if defined(__ACCLIB_USE_OPENDIR)
3851 # if (ACC_CC_WATCOMC)
3852 unsigned short f_time
;
3853 unsigned short f_date
;
3854 unsigned long f_size
;
3856 char f_name
[ACC_FN_NAME_MAX
+1];
3857 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
3858 acclib_handle_t u_handle
;
3860 unsigned f_size_low
;
3861 unsigned f_size_high
;
3862 char f_name
[ACC_FN_NAME_MAX
+1];
3863 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_TOS || ACC_OS_WIN16)
3865 unsigned char f_attr
;
3866 unsigned short f_time
;
3867 unsigned short f_date
;
3868 unsigned short f_size_low
;
3869 unsigned short f_size_high
;
3870 char f_name
[ACC_FN_NAME_MAX
+1];
3874 char f_name
[ACC_FN_NAME_MAX
+1];
3878 #define acc_dir_p acc_dir_t *
3880 ACCLIB_EXTERN(int, acc_opendir
) (acc_dir_p
, const char*);
3881 ACCLIB_EXTERN(int, acc_readdir
) (acc_dir_p
);
3882 ACCLIB_EXTERN(int, acc_closedir
) (acc_dir_p
);
3883 #if (ACC_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
3884 # define acc_alloca(x) __builtin_alloca((x))
3885 #elif (ACC_CC_GNUC) && (ACC_OS_CONSOLE_PS2)
3886 # define acc_alloca(x) __builtin_alloca((x))
3887 #elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
3889 # define acc_alloca(x) ((void *) (alloca((x))))
3891 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3892 # define acc_stackavail() stackavail()
3893 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
3894 # define acc_stackavail() stackavail()
3895 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
3896 # if (ACC_OS_WIN16) && (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
3898 # define acc_stackavail() stackavail()
3900 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_DMC || ACC_CC_SYMANTECC))
3901 # define acc_stackavail() stackavail()
3902 #elif ((ACC_ARCH_I086) && ACC_CC_MSC && (_MSC_VER >= 700))
3903 # define acc_stackavail() _stackavail()
3904 #elif ((ACC_ARCH_I086) && ACC_CC_MSC)
3905 # define acc_stackavail() stackavail()
3906 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && ACC_CC_TURBOC && (__TURBOC__ >= 0x0450))
3907 # define acc_stackavail() stackavail()
3908 #elif (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ >= 0x0400))
3909 ACC_EXTERN_C
size_t __cdecl
stackavail(void);
3910 # define acc_stackavail() stackavail()
3911 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_WATCOMC))
3912 # define acc_stackavail() stackavail()
3913 #elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
3914 # define acc_stackavail() _chkstack()
3916 ACCLIB_EXTERN(acclib_handle_t
, acc_get_osfhandle
) (int);
3917 ACCLIB_EXTERN(const char *, acc_getenv
) (const char *);
3918 ACCLIB_EXTERN(int, acc_isatty
) (int);
3919 ACCLIB_EXTERN(int, acc_mkdir
) (const char*, unsigned);
3920 ACCLIB_EXTERN(int, acc_rmdir
) (const char*);
3921 ACCLIB_EXTERN(int, acc_response
) (int*, char***);
3922 ACCLIB_EXTERN(int, acc_set_binmode
) (int, int);
3923 #if defined(acc_int32e_t)
3924 ACCLIB_EXTERN(acc_int32e_t
, acc_muldiv32s
) (acc_int32e_t
, acc_int32e_t
, acc_int32e_t
);
3925 ACCLIB_EXTERN(acc_uint32e_t
, acc_muldiv32u
) (acc_uint32e_t
, acc_uint32e_t
, acc_uint32e_t
);
3927 ACCLIB_EXTERN(void, acc_wildargv
) (int*, char***);
3928 ACCLIB_EXTERN_NOINLINE(void, acc_debug_break
) (void);
3929 ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop
) (void);
3930 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query
) (void);
3931 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable
) (int);
3932 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu
) (void);
3933 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind
) (void);
3934 #if !defined(acc_int64l_t) || (ACC_CFG_NO_DOUBLE)
3935 # undef __ACCLIB_PCLOCK_USE_RDTSC
3936 # undef __ACCLIB_PCLOCK_USE_PERFCTR
3937 # undef __ACCLIB_UCLOCK_USE_RDTSC
3938 # undef __ACCLIB_UCLOCK_USE_PERFCTR
3943 double tsc_to_seconds
;
3944 unsigned cpu_type
, cpu_features
, cpu_khz
, cpu_nrctrs
;
3945 const char* cpu_name
;
3946 } acc_perfctr_handle_t
;
3949 #if (ACC_OS_POSIX_LINUX)
3950 acc_uint64l_t pmc
[18];
3952 acc_uint64l_t pmc
[1];
3954 } acc_perfctr_clock_t
;
3955 #ifndef acc_perfctr_handle_p
3956 #define acc_perfctr_handle_p acc_perfctr_handle_t *
3958 #ifndef acc_perfctr_clock_p
3959 #define acc_perfctr_clock_p acc_perfctr_clock_t *
3961 ACCLIB_EXTERN(int, acc_perfctr_open
) (acc_perfctr_handle_p
);
3962 ACCLIB_EXTERN(int, acc_perfctr_close
) (acc_perfctr_handle_p
);
3963 ACCLIB_EXTERN(void, acc_perfctr_read
) (acc_perfctr_handle_p
, acc_perfctr_clock_p
);
3964 #if !(ACC_CFG_NO_DOUBLE)
3965 ACCLIB_EXTERN(double, acc_perfctr_get_elapsed
) (acc_perfctr_handle_p
, const acc_perfctr_clock_p
, const acc_perfctr_clock_p
);
3966 ACCLIB_EXTERN(double, acc_perfctr_get_elapsed_tsc
) (acc_perfctr_handle_p
, acc_uint64l_t
);
3968 ACCLIB_EXTERN(int, acc_perfctr_flush_cpu_cache
) (acc_perfctr_handle_p
, unsigned);
3970 #if defined(acc_int32e_t)
3971 ACCLIB_EXTERN(int, acc_tsc_read
) (acc_uint32e_t
*);
3973 # undef __ACCLIB_PCLOCK_USE_RDTSC
3974 # undef __ACCLIB_UCLOCK_USE_RDTSC
3976 struct acc_pclock_handle_t
;
3977 struct acc_pclock_t
;
3978 typedef struct acc_pclock_handle_t acc_pclock_handle_t
;
3979 typedef struct acc_pclock_t acc_pclock_t
;
3980 #ifndef acc_pclock_handle_p
3981 #define acc_pclock_handle_p acc_pclock_handle_t *
3983 #ifndef acc_pclock_p
3984 #define acc_pclock_p acc_pclock_t *
3986 #define ACC_PCLOCK_REALTIME 0
3987 #define ACC_PCLOCK_MONOTONIC 1
3988 #define ACC_PCLOCK_PROCESS_CPUTIME_ID 2
3989 #define ACC_PCLOCK_THREAD_CPUTIME_ID 3
3990 struct acc_pclock_handle_t
{
3995 int (*gettime
) (acc_pclock_handle_p
, acc_pclock_p
);
3996 #if defined(acc_int64l_t)
3997 acc_uint64l_t ticks_base
;
3999 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
4000 acc_perfctr_handle_t pch
;
4003 struct acc_pclock_t
{
4004 #if defined(acc_int64l_t)
4005 acc_int64l_t tv_sec
;
4007 acc_int32l_t tv_sec_high
;
4008 acc_uint32l_t tv_sec_low
;
4010 acc_uint32l_t tv_nsec
;
4012 ACCLIB_EXTERN(int, acc_pclock_open
) (acc_pclock_handle_p
, int);
4013 ACCLIB_EXTERN(int, acc_pclock_open_default
) (acc_pclock_handle_p
);
4014 ACCLIB_EXTERN(int, acc_pclock_close
) (acc_pclock_handle_p
);
4015 ACCLIB_EXTERN(void, acc_pclock_read
) (acc_pclock_handle_p
, acc_pclock_p
);
4016 #if !(ACC_CFG_NO_DOUBLE)
4017 ACCLIB_EXTERN(double, acc_pclock_get_elapsed
) (acc_pclock_handle_p
, const acc_pclock_p
, const acc_pclock_p
);
4019 ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache
) (acc_pclock_handle_p
, unsigned);
4020 #if !defined(acc_int64l_t) || (ACC_CFG_NO_DOUBLE)
4021 # undef __ACCLIB_UCLOCK_USE_QPC
4022 #elif (ACC_OS_CYGWIN || ACC_OS_EMX || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
4023 # define __ACCLIB_UCLOCK_USE_QPC 1
4025 # undef __ACCLIB_UCLOCK_USE_QPC
4032 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
4033 acc_perfctr_handle_t pch
;
4035 #if (__ACCLIB_UCLOCK_USE_QPC)
4038 } acc_uclock_handle_t
;
4042 #if !(ACC_OS_DOS16 || ACC_OS_WIN16)
4043 # if !(ACC_CFG_NO_DOUBLE)
4046 # if defined(acc_int64l_t)
4051 #if (__ACCLIB_UCLOCK_USE_RDTSC)
4054 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
4055 acc_perfctr_clock_t pcc
;
4057 #if (__ACCLIB_UCLOCK_USE_QPC)
4061 #ifndef acc_uclock_handle_p
4062 #define acc_uclock_handle_p acc_uclock_handle_t *
4064 #ifndef acc_uclock_p
4065 #define acc_uclock_p acc_uclock_t *
4067 ACCLIB_EXTERN(int, acc_uclock_open
) (acc_uclock_handle_p
);
4068 ACCLIB_EXTERN(int, acc_uclock_close
) (acc_uclock_handle_p
);
4069 ACCLIB_EXTERN(void, acc_uclock_read
) (acc_uclock_handle_p
, acc_uclock_p
);
4070 #if !(ACC_CFG_NO_DOUBLE)
4071 ACCLIB_EXTERN(double, acc_uclock_get_elapsed
) (acc_uclock_handle_p
, const acc_uclock_p
, const acc_uclock_p
);
4073 ACCLIB_EXTERN(int, acc_uclock_flush_cpu_cache
) (acc_uclock_handle_p
, unsigned);
4074 struct acc_getopt_t
;
4075 typedef struct acc_getopt_t acc_getopt_t
;
4076 #ifndef acc_getopt_p
4077 #define acc_getopt_p acc_getopt_t *
4079 struct acc_getopt_longopt_t
;
4080 typedef struct acc_getopt_longopt_t acc_getopt_longopt_t
;
4081 #ifndef acc_getopt_longopt_p
4082 #define acc_getopt_longopt_p acc_getopt_longopt_t *
4084 struct acc_getopt_longopt_t
{
4090 struct acc_getopt_t
{
4092 const char *progname
;
4095 void (*opterr
)(acc_getopt_p
, const char*, void *);
4099 int argc
; char** argv
;
4100 int eof
; int shortpos
;
4101 int pending_rotate_first
, pending_rotate_middle
;
4103 enum { ACC_GETOPT_NO_ARG
, ACC_GETOPT_REQUIRED_ARG
, ACC_GETOPT_OPTIONAL_ARG
, ACC_GETOPT_EXACT_ARG
= 0x10 };
4104 enum { ACC_GETOPT_PERMUTE
, ACC_GETOPT_RETURN_IN_ORDER
, ACC_GETOPT_REQUIRE_ORDER
};
4105 ACCLIB_EXTERN(void, acc_getopt_init
) (acc_getopt_p g
,
4106 int start_argc
, int argc
, char** argv
);
4107 ACCLIB_EXTERN(int, acc_getopt
) (acc_getopt_p g
,
4108 const char* shortopts
,
4109 const acc_getopt_longopt_p longopts
,
4114 #ifndef acc_rand31_p
4115 #define acc_rand31_p acc_rand31_t *
4117 ACCLIB_EXTERN(void, acc_srand31
) (acc_rand31_p
, acc_uint32l_t
);
4118 ACCLIB_EXTERN(acc_uint32l_t
, acc_rand31
) (acc_rand31_p
);
4119 #if defined(acc_int64l_t)
4123 #ifndef acc_rand48_p
4124 #define acc_rand48_p acc_rand48_t *
4126 ACCLIB_EXTERN(void, acc_srand48
) (acc_rand48_p
, acc_uint32l_t
);
4127 ACCLIB_EXTERN(acc_uint32l_t
, acc_rand48
) (acc_rand48_p
);
4128 ACCLIB_EXTERN(acc_uint32l_t
, acc_rand48_r32
) (acc_rand48_p
);
4130 #if defined(acc_int64l_t)
4134 #ifndef acc_rand64_p
4135 #define acc_rand64_p acc_rand64_t *
4137 ACCLIB_EXTERN(void, acc_srand64
) (acc_rand64_p
, acc_uint64l_t
);
4138 ACCLIB_EXTERN(acc_uint32l_t
, acc_rand64
) (acc_rand64_p
);
4139 ACCLIB_EXTERN(acc_uint32l_t
, acc_rand64_r32
) (acc_rand64_p
);
4143 acc_uint32l_t s
[624];
4145 #ifndef acc_randmt_p
4146 #define acc_randmt_p acc_randmt_t *
4148 ACCLIB_EXTERN(void, acc_srandmt
) (acc_randmt_p
, acc_uint32l_t
);
4149 ACCLIB_EXTERN(acc_uint32l_t
, acc_randmt
) (acc_randmt_p
);
4150 ACCLIB_EXTERN(acc_uint32l_t
, acc_randmt_r32
) (acc_randmt_p
);
4151 #if defined(acc_int64l_t)
4154 acc_uint64l_t s
[312];
4156 #ifndef acc_randmt64_p
4157 #define acc_randmt64_p acc_randmt64_t *
4159 ACCLIB_EXTERN(void, acc_srandmt64
) (acc_randmt64_p
, acc_uint64l_t
);
4160 ACCLIB_EXTERN(acc_uint64l_t
, acc_randmt64_r64
) (acc_randmt64_p
);
4162 #define ACC_SPAWN_P_WAIT 0
4163 #define ACC_SPAWN_P_NOWAIT 1
4164 ACCLIB_EXTERN(int, acc_spawnv
) (int mode
, const char* fn
, const char* const * argv
);
4165 ACCLIB_EXTERN(int, acc_spawnvp
) (int mode
, const char* fn
, const char* const * argv
);
4166 ACCLIB_EXTERN(int, acc_spawnve
) (int mode
, const char* fn
, const char* const * argv
, const char * const envp
);
4169 #if defined(ACC_WANT_ACC_CXX_H)
4170 # undef ACC_WANT_ACC_CXX_H
4171 #ifndef __ACC_CXX_H_INCLUDED
4172 #define __ACC_CXX_H_INCLUDED 1
4173 #if defined(__cplusplus)
4174 #if defined(ACC_CXX_NOTHROW)
4175 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
4176 #elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
4177 #elif (ACC_CC_HIGHC)
4178 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
4180 #elif (ACC_CC_TURBOC)
4181 #elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
4182 #elif (ACC_CC_ZORTECHC)
4184 # define ACC_CXX_NOTHROW throw()
4186 #if !defined(ACC_CXX_NOTHROW)
4187 # define ACC_CXX_NOTHROW /*empty*/
4189 #if defined(__ACC_CXX_DO_NEW)
4190 #elif (ACC_CC_NDPC || ACC_CC_PGI)
4191 # define __ACC_CXX_DO_NEW { return 0; }
4192 #elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
4193 # define __ACC_CXX_DO_NEW { return 0; }
4195 # define __ACC_CXX_DO_NEW ;
4197 #if defined(__ACC_CXX_DO_DELETE)
4198 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
4199 # define __ACC_CXX_DO_DELETE { }
4201 # define __ACC_CXX_DO_DELETE ACC_CXX_NOTHROW { }
4203 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
4204 #elif (ACC_CC_MSC && ACC_MM_HUGE)
4205 # define ACC_CXX_DISABLE_NEW_DELETE private:
4206 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
4208 #elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
4209 #elif (ACC_CC_TURBOC)
4210 #elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
4212 # define __ACC_CXX_HAVE_ARRAY_NEW 1
4214 #if (__ACC_CXX_HAVE_ARRAY_NEW)
4215 # define __ACC_CXX_HAVE_PLACEMENT_NEW 1
4217 #if (__ACC_CXX_HAVE_PLACEMENT_NEW)
4218 # if (ACC_CC_GNUC >= 0x030000ul)
4219 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4220 # elif (ACC_CC_INTELC)
4221 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4222 # elif (ACC_CC_MSC && (_MSC_VER >= 1200))
4223 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4224 # elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
4225 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4227 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4230 #if defined(ACC_CXX_DISABLE_NEW_DELETE)
4231 #elif defined(new) || defined(delete)
4232 # define ACC_CXX_DISABLE_NEW_DELETE private:
4233 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025b00ul))
4234 # define ACC_CXX_DISABLE_NEW_DELETE private:
4235 #elif (ACC_CC_HIGHC)
4236 # define ACC_CXX_DISABLE_NEW_DELETE private:
4237 #elif !(__ACC_CXX_HAVE_ARRAY_NEW)
4238 # define ACC_CXX_DISABLE_NEW_DELETE \
4239 protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
4240 protected: static void* operator new(size_t) __ACC_CXX_DO_NEW \
4243 # define ACC_CXX_DISABLE_NEW_DELETE \
4244 protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
4245 static void operator delete[](void*) __ACC_CXX_DO_DELETE \
4246 private: static void* operator new(size_t) __ACC_CXX_DO_NEW \
4247 static void* operator new[](size_t) __ACC_CXX_DO_NEW
4249 #if defined(ACC_CXX_TRIGGER_FUNCTION)
4251 # define ACC_CXX_TRIGGER_FUNCTION \
4252 protected: virtual const void* acc_cxx_trigger_function() const; \
4255 #if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
4257 # define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
4258 const void* klass::acc_cxx_trigger_function() const { return 0; }
4263 #if defined(ACC_WANT_ACC_CHK_CH)
4264 # undef ACC_WANT_ACC_CHK_CH
4265 #if !defined(ACCCHK_ASSERT)
4266 # define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
4268 #if !defined(ACCCHK_ASSERT_SIGN_T)
4269 # define ACCCHK_ASSERT_SIGN_T(type,relop) \
4270 ACCCHK_ASSERT( (type) (-1) relop (type) 0 ) \
4271 ACCCHK_ASSERT( (type) (~(type)0) relop (type) 0 ) \
4272 ACCCHK_ASSERT( (type) (~(type)0) == (type) (-1) )
4274 #if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
4275 # define ACCCHK_ASSERT_IS_SIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,<)
4277 #if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
4278 # if (ACC_BROKEN_INTEGRAL_PROMOTION)
4279 # define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
4280 ACCCHK_ASSERT( (type) (-1) > (type) 0 )
4282 # define ACCCHK_ASSERT_IS_UNSIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,>)
4285 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
4286 # pragma option push -w-8055
4287 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
4288 # pragma option push -w-osh
4290 #if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
4291 # error "preprocessor error 1"
4293 #if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
4294 # error "preprocessor error 2"
4296 #define ACCCHK_VAL 1
4297 #define ACCCHK_TMP1 ACCCHK_VAL
4299 #define ACCCHK_VAL 2
4300 #define ACCCHK_TMP2 ACCCHK_VAL
4301 #if (ACCCHK_TMP1 != 2)
4302 # error "preprocessor error 3a"
4304 #if (ACCCHK_TMP2 != 2)
4305 # error "preprocessor error 3b"
4309 # error "preprocessor error 3c"
4311 #if (ACCCHK_TMP2 + 0 != 0)
4312 # error "preprocessor error 3d"
4316 #if 0 || defined(ACCCHK_CFG_PEDANTIC)
4317 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZINT)
4318 ACCCHK_ASSERT((_MIPS_SZINT
) == 8 * sizeof(int))
4320 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZLONG)
4321 ACCCHK_ASSERT((_MIPS_SZLONG
) == 8 * sizeof(long))
4323 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZPTR)
4324 ACCCHK_ASSERT((_MIPS_SZPTR
) == 8 * sizeof(void *))
4327 ACCCHK_ASSERT(1 == 1)
4328 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
4329 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
4330 #if (SIZEOF_INT >= 2)
4331 ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
4332 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU
)
4334 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL
)
4336 #if (SIZEOF_INT >= 4)
4337 ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
4338 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU
)
4340 #if (SIZEOF_LONG >= 4)
4341 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL
)
4343 #if (SIZEOF_LONG >= 8)
4344 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL
)
4346 #if !(ACC_BROKEN_INTEGRAL_PROMOTION)
4347 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,SIZEOF_INT
*8) == ~0u)
4348 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,SIZEOF_LONG
*8) == ~0ul)
4350 #if !(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
4351 ACCCHK_ASSERT(((-1) >> 7) == -1)
4353 ACCCHK_ASSERT(((1) >> 7) == 0)
4354 ACCCHK_ASSERT((~0l & ~0) == ~0l)
4355 ACCCHK_ASSERT((~0l & ~0u) == ~0u)
4356 ACCCHK_ASSERT((~0ul & ~0) == ~0ul)
4357 ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
4358 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4359 #elif (SIZEOF_INT == 2)
4360 ACCCHK_ASSERT((~0l & ~0u) == 0xffffU
)
4361 ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU
)
4362 #elif (SIZEOF_INT == 4)
4363 ACCCHK_ASSERT((~0l & ~0u) == 0xffffffffU
)
4364 ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU
)
4366 ACCCHK_ASSERT_IS_SIGNED_T(signed char)
4367 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
4368 ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
4369 ACCCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
4370 ACCCHK_ASSERT(sizeof(char) == 1)
4371 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
4373 ACCCHK_ASSERT(sizeof(char) == sizeof((char)0))
4375 #if defined(__cplusplus)
4376 ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
4380 ACCCHK_ASSERT(sizeof('\0') == sizeof(int))
4383 #if defined(__acc_alignof)
4384 ACCCHK_ASSERT(__acc_alignof(char) == 1)
4385 ACCCHK_ASSERT(__acc_alignof(signed char) == 1)
4386 ACCCHK_ASSERT(__acc_alignof(unsigned char) == 1)
4387 #if defined(acc_int16e_t)
4388 ACCCHK_ASSERT(__acc_alignof(acc_int16e_t
) >= 1)
4389 ACCCHK_ASSERT(__acc_alignof(acc_int16e_t
) <= 2)
4391 #if defined(acc_int32e_t)
4392 ACCCHK_ASSERT(__acc_alignof(acc_int32e_t
) >= 1)
4393 ACCCHK_ASSERT(__acc_alignof(acc_int32e_t
) <= 4)
4396 ACCCHK_ASSERT_IS_SIGNED_T(short)
4397 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
4398 ACCCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
4399 #if !(ACC_ABI_I8LP16)
4400 ACCCHK_ASSERT(sizeof(short) >= 2)
4402 ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
4403 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
4405 ACCCHK_ASSERT(sizeof(short) == sizeof((short)0))
4407 #if (SIZEOF_SHORT > 0)
4408 ACCCHK_ASSERT(sizeof(short) == SIZEOF_SHORT
)
4410 ACCCHK_ASSERT_IS_SIGNED_T(int)
4411 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
4412 ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
4413 #if !(ACC_ABI_I8LP16)
4414 ACCCHK_ASSERT(sizeof(int) >= 2)
4416 ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
4417 ACCCHK_ASSERT(sizeof(int) == sizeof(0))
4418 ACCCHK_ASSERT(sizeof(int) == sizeof((int)0))
4419 #if (SIZEOF_INT > 0)
4420 ACCCHK_ASSERT(sizeof(int) == SIZEOF_INT
)
4422 ACCCHK_ASSERT(sizeof(0) == sizeof(int))
4423 ACCCHK_ASSERT_IS_SIGNED_T(long)
4424 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
4425 ACCCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
4426 #if !(ACC_ABI_I8LP16)
4427 ACCCHK_ASSERT(sizeof(long) >= 4)
4429 ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
4430 ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
4431 ACCCHK_ASSERT(sizeof(long) == sizeof((long)0))
4432 #if (SIZEOF_LONG > 0)
4433 ACCCHK_ASSERT(sizeof(long) == SIZEOF_LONG
)
4435 ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
4436 ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
4437 ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
4438 ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
4439 #if (SIZEOF_SIZE_T > 0)
4440 ACCCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T
)
4442 ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
4443 ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
4444 ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
4445 #if !(ACC_BROKEN_SIZEOF)
4446 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof((char*)0 - (char*)0))
4447 # if (ACC_HAVE_MM_HUGE_PTR)
4448 ACCCHK_ASSERT(4 == sizeof((char __huge
*)0 - (char __huge
*)0))
4451 #if (SIZEOF_PTRDIFF_T > 0)
4452 ACCCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T
)
4454 ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
4455 #if (SIZEOF_VOID_P > 0)
4456 ACCCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P
)
4457 ACCCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P
)
4459 #if (ACC_HAVE_MM_HUGE_PTR)
4460 ACCCHK_ASSERT(4 == sizeof(void __huge
*))
4461 ACCCHK_ASSERT(4 == sizeof(char __huge
*))
4463 #if (ACC_ABI_I8LP16)
4464 ACCCHK_ASSERT((((1u << 7) + 1) >> 7) == 1)
4465 ACCCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
4467 ACCCHK_ASSERT((((1u << 15) + 1) >> 15) == 1)
4468 ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
4470 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4471 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4473 ACCCHK_ASSERT((1 << (8*SIZEOF_INT
-1)) < 0)
4475 ACCCHK_ASSERT((1u << (8*SIZEOF_INT
-1)) > 0)
4476 #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4478 ACCCHK_ASSERT((1l << (8*SIZEOF_LONG
-1)) < 0)
4480 ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG
-1)) > 0)
4481 #if defined(acc_int16e_t)
4482 ACCCHK_ASSERT(sizeof(acc_int16e_t
) == 2)
4483 ACCCHK_ASSERT(sizeof(acc_int16e_t
) == SIZEOF_ACC_INT16E_T
)
4484 ACCCHK_ASSERT(sizeof(acc_uint16e_t
) == 2)
4485 ACCCHK_ASSERT(sizeof(acc_int16e_t
) == sizeof(acc_uint16e_t
))
4486 ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t
)
4487 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t
)
4488 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4490 ACCCHK_ASSERT(((acc_uint16e_t
)(~(acc_uint16e_t
)0ul) >> 15) == 1)
4492 ACCCHK_ASSERT( (acc_int16e_t
) (1 + ~(acc_int16e_t
)0) == 0)
4493 #if defined(ACCCHK_CFG_PEDANTIC)
4494 ACCCHK_ASSERT( (acc_uint16e_t
)(1 + ~(acc_uint16e_t
)0) == 0)
4497 #if defined(acc_int32e_t)
4498 ACCCHK_ASSERT(sizeof(acc_int32e_t
) == 4)
4499 ACCCHK_ASSERT(sizeof(acc_int32e_t
) == SIZEOF_ACC_INT32E_T
)
4500 ACCCHK_ASSERT(sizeof(acc_uint32e_t
) == 4)
4501 ACCCHK_ASSERT(sizeof(acc_int32e_t
) == sizeof(acc_uint32e_t
))
4502 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t
)
4503 ACCCHK_ASSERT(((( (acc_int32e_t
)1 << 30) + 1) >> 30) == 1)
4504 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t
)
4505 ACCCHK_ASSERT(((( (acc_uint32e_t
)1 << 31) + 1) >> 31) == 1)
4506 ACCCHK_ASSERT(((acc_uint32e_t
)(~(acc_uint32e_t
)0ul) >> 31) == 1)
4507 ACCCHK_ASSERT( (acc_int32e_t
) (1 + ~(acc_int32e_t
)0) == 0)
4508 #if defined(ACCCHK_CFG_PEDANTIC)
4509 ACCCHK_ASSERT( (acc_uint32e_t
)(1 + ~(acc_uint32e_t
)0) == 0)
4512 #if defined(acc_int32e_t)
4513 ACCCHK_ASSERT(sizeof(acc_int32l_t
) >= sizeof(acc_int32e_t
))
4515 ACCCHK_ASSERT(sizeof(acc_int32l_t
) >= 4)
4516 ACCCHK_ASSERT(sizeof(acc_int32l_t
) == SIZEOF_ACC_INT32L_T
)
4517 ACCCHK_ASSERT(sizeof(acc_uint32l_t
) >= 4)
4518 ACCCHK_ASSERT(sizeof(acc_int32l_t
) == sizeof(acc_uint32l_t
))
4519 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t
)
4520 ACCCHK_ASSERT(((( (acc_int32l_t
)1 << 30) + 1) >> 30) == 1)
4521 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t
)
4522 ACCCHK_ASSERT(((( (acc_uint32l_t
)1 << 31) + 1) >> 31) == 1)
4523 ACCCHK_ASSERT(sizeof(acc_int32f_t
) >= sizeof(int))
4524 #if defined(acc_int32e_t)
4525 ACCCHK_ASSERT(sizeof(acc_int32f_t
) >= sizeof(acc_int32e_t
))
4527 ACCCHK_ASSERT(sizeof(acc_int32f_t
) >= sizeof(acc_int32l_t
))
4528 ACCCHK_ASSERT(sizeof(acc_int32f_t
) >= 4)
4529 ACCCHK_ASSERT(sizeof(acc_int32f_t
) >= sizeof(acc_int32l_t
))
4530 ACCCHK_ASSERT(sizeof(acc_int32f_t
) == SIZEOF_ACC_INT32F_T
)
4531 ACCCHK_ASSERT(sizeof(acc_uint32f_t
) >= 4)
4532 ACCCHK_ASSERT(sizeof(acc_uint32f_t
) >= sizeof(acc_uint32l_t
))
4533 ACCCHK_ASSERT(sizeof(acc_int32f_t
) == sizeof(acc_uint32f_t
))
4534 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t
)
4535 ACCCHK_ASSERT(((( (acc_int32f_t
)1 << 30) + 1) >> 30) == 1)
4536 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t
)
4537 ACCCHK_ASSERT(((( (acc_uint32f_t
)1 << 31) + 1) >> 31) == 1)
4538 #if defined(acc_int64e_t)
4539 ACCCHK_ASSERT(sizeof(acc_int64e_t
) == 8)
4540 ACCCHK_ASSERT(sizeof(acc_int64e_t
) == SIZEOF_ACC_INT64E_T
)
4541 ACCCHK_ASSERT(sizeof(acc_uint64e_t
) == 8)
4542 ACCCHK_ASSERT(sizeof(acc_int64e_t
) == sizeof(acc_uint64e_t
))
4543 ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t
)
4544 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
4546 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t
)
4549 #if defined(acc_int64l_t)
4550 #if defined(acc_int64e_t)
4551 ACCCHK_ASSERT(sizeof(acc_int64l_t
) >= sizeof(acc_int64e_t
))
4553 ACCCHK_ASSERT(sizeof(acc_int64l_t
) >= 8)
4554 ACCCHK_ASSERT(sizeof(acc_int64l_t
) == SIZEOF_ACC_INT64L_T
)
4555 ACCCHK_ASSERT(sizeof(acc_uint64l_t
) >= 8)
4556 ACCCHK_ASSERT(sizeof(acc_int64l_t
) == sizeof(acc_uint64l_t
))
4557 ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t
)
4558 ACCCHK_ASSERT(((( (acc_int64l_t
)1 << 62) + 1) >> 62) == 1)
4559 ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
4560 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
4562 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t
)
4563 ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615) > 0)
4565 ACCCHK_ASSERT(((( (acc_uint64l_t
)1 << 63) + 1) >> 63) == 1)
4566 ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
4567 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
4568 ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > ACC_INT64_C(0))
4570 ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > 0)
4572 ACCCHK_ASSERT(ACC_INT64_C(-9223372036854775807) - 1 < 0)
4573 ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483629) == 721)
4574 ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483647) == 1)
4575 ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
4576 ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
4578 #if !defined(__ACC_INTPTR_T_IS_POINTER)
4579 ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t
)
4580 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t
)
4582 ACCCHK_ASSERT(sizeof(acc_intptr_t
) >= sizeof(void *))
4583 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == SIZEOF_ACC_INTPTR_T
)
4584 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(acc_uintptr_t
))
4585 #if defined(acc_word_t)
4586 ACCCHK_ASSERT(ACC_WORDSIZE
== SIZEOF_ACC_WORD_T
)
4587 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t
)
4588 ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t
)
4589 ACCCHK_ASSERT(sizeof(acc_word_t
) == SIZEOF_ACC_WORD_T
)
4590 ACCCHK_ASSERT(sizeof(acc_word_t
) == sizeof(acc_sword_t
))
4592 #if defined(ACC_INT16_C)
4593 ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
4594 ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
4595 ACCCHK_ASSERT((ACC_UINT16_C(0xffff) >> 15) == 1)
4597 #if defined(ACC_INT32_C)
4598 ACCCHK_ASSERT(sizeof(ACC_INT32_C(0)) >= 4)
4599 ACCCHK_ASSERT(sizeof(ACC_UINT32_C(0)) >= 4)
4600 ACCCHK_ASSERT((ACC_UINT32_C(0xffffffff) >> 31) == 1)
4602 #if defined(ACC_INT64_C)
4603 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0560))
4605 ACCCHK_ASSERT(sizeof(ACC_INT64_C(0)) >= 8)
4606 ACCCHK_ASSERT(sizeof(ACC_UINT64_C(0)) >= 8)
4608 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
4609 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0) == ACC_UINT64_C(0xffffffffffffffff))
4610 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
4611 #if (SIZEOF_INT == 4)
4612 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
4614 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0u) == 0xffffffffu
)
4617 #if (SIZEOF_LONG == 4)
4618 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
4620 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0ul) == 0xfffffffful
)
4624 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
4625 ACCCHK_ASSERT(sizeof(void*) == 2)
4626 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 2)
4627 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
4628 ACCCHK_ASSERT(sizeof(void*) == 4)
4630 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_COMPACT)
4631 ACCCHK_ASSERT(sizeof(void (*)(void)) == 2)
4632 #elif (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE)
4633 ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
4636 ACCCHK_ASSERT(sizeof(int) == 4)
4637 ACCCHK_ASSERT(sizeof(long) == 4)
4638 ACCCHK_ASSERT(sizeof(void*) == 4)
4639 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4640 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4641 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4644 ACCCHK_ASSERT(sizeof(int) == 8)
4645 ACCCHK_ASSERT(sizeof(long) == 8)
4646 ACCCHK_ASSERT(sizeof(void*) == 8)
4647 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4648 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4649 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4651 #if (ACC_ABI_IP32L64)
4652 ACCCHK_ASSERT(sizeof(int) == 4)
4653 ACCCHK_ASSERT(sizeof(long) == 8)
4654 ACCCHK_ASSERT(sizeof(void*) == 4)
4655 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4656 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4657 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4660 ACCCHK_ASSERT(sizeof(int) == 4)
4661 ACCCHK_ASSERT(sizeof(long) == 4)
4662 ACCCHK_ASSERT(sizeof(void*) == 8)
4663 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4664 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4665 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4668 ACCCHK_ASSERT(sizeof(int) == 2)
4669 ACCCHK_ASSERT(sizeof(long) == 4)
4670 ACCCHK_ASSERT(sizeof(void*) == 4)
4671 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4674 ACCCHK_ASSERT(sizeof(int) == 4)
4675 ACCCHK_ASSERT(sizeof(long) == 8)
4676 ACCCHK_ASSERT(sizeof(void*) == 8)
4677 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4678 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4679 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4682 ACCCHK_ASSERT(sizeof(size_t) == 2)
4683 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4684 #elif (ACC_ARCH_I386 || ACC_ARCH_M68K)
4685 ACCCHK_ASSERT(sizeof(size_t) == 4)
4686 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
4687 ACCCHK_ASSERT(sizeof(acc_intptr_t
) == sizeof(void *))
4689 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32)
4690 ACCCHK_ASSERT(sizeof(size_t) == 4)
4691 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
4692 ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
4693 #elif (ACC_OS_WIN64)
4694 ACCCHK_ASSERT(sizeof(size_t) == 8)
4695 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 8)
4696 ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
4699 #elif (SIZEOF_INT > 1)
4700 ACCCHK_ASSERT( (int) ((unsigned char) ((signed char) -1)) == 255)
4704 #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
4705 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4706 #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
4707 ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
4709 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
4713 #if defined(ACC_WANT_ACCLIB_UA)
4714 # undef ACC_WANT_ACCLIB_UA
4715 #define __ACCLIB_UA_CH_INCLUDED 1
4716 #if !defined(ACCLIB_PUBLIC)
4717 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
4719 ACCLIB_PUBLIC(unsigned, acc_ua_get_be16
) (const acc_hvoid_p p
)
4721 #if defined(ACC_UA_GET_BE16)
4722 return ACC_UA_GET_BE16(p
);
4724 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4725 return ((unsigned)b
[1]) | ((unsigned)b
[0] << 8);
4728 ACCLIB_PUBLIC(acc_uint32l_t
, acc_ua_get_be24
) (const acc_hvoid_p p
)
4730 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4731 return ((acc_uint32l_t
)b
[2]) | ((acc_uint32l_t
)b
[1] << 8) | ((acc_uint32l_t
)b
[0] << 16);
4733 ACCLIB_PUBLIC(acc_uint32l_t
, acc_ua_get_be32
) (const acc_hvoid_p p
)
4735 #if defined(ACC_UA_GET_BE32)
4736 return ACC_UA_GET_BE32(p
);
4738 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4739 return ((acc_uint32l_t
)b
[3]) | ((acc_uint32l_t
)b
[2] << 8) | ((acc_uint32l_t
)b
[1] << 16) | ((acc_uint32l_t
)b
[0] << 24);
4742 ACCLIB_PUBLIC(void, acc_ua_set_be16
) (acc_hvoid_p p
, unsigned v
)
4744 #if defined(ACC_UA_SET_BE16)
4745 ACC_UA_SET_BE16(p
, v
);
4747 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4748 b
[1] = (unsigned char) ((v
>> 0) & 0xff);
4749 b
[0] = (unsigned char) ((v
>> 8) & 0xff);
4752 ACCLIB_PUBLIC(void, acc_ua_set_be24
) (acc_hvoid_p p
, acc_uint32l_t v
)
4754 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4755 b
[2] = (unsigned char) ((v
>> 0) & 0xff);
4756 b
[1] = (unsigned char) ((v
>> 8) & 0xff);
4757 b
[0] = (unsigned char) ((v
>> 16) & 0xff);
4759 ACCLIB_PUBLIC(void, acc_ua_set_be32
) (acc_hvoid_p p
, acc_uint32l_t v
)
4761 #if defined(ACC_UA_SET_BE32)
4762 ACC_UA_SET_BE32(p
, v
);
4764 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4765 b
[3] = (unsigned char) ((v
>> 0) & 0xff);
4766 b
[2] = (unsigned char) ((v
>> 8) & 0xff);
4767 b
[1] = (unsigned char) ((v
>> 16) & 0xff);
4768 b
[0] = (unsigned char) ((v
>> 24) & 0xff);
4771 ACCLIB_PUBLIC(unsigned, acc_ua_get_le16
) (const acc_hvoid_p p
)
4773 #if defined(ACC_UA_GET_LE16)
4774 return ACC_UA_GET_LE16(p
);
4776 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4777 return ((unsigned)b
[0]) | ((unsigned)b
[1] << 8);
4780 ACCLIB_PUBLIC(acc_uint32l_t
, acc_ua_get_le24
) (const acc_hvoid_p p
)
4782 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4783 return ((acc_uint32l_t
)b
[0]) | ((acc_uint32l_t
)b
[1] << 8) | ((acc_uint32l_t
)b
[2] << 16);
4785 ACCLIB_PUBLIC(acc_uint32l_t
, acc_ua_get_le32
) (const acc_hvoid_p p
)
4787 #if defined(ACC_UA_GET_LE32)
4788 return ACC_UA_GET_LE32(p
);
4790 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4791 return ((acc_uint32l_t
)b
[0]) | ((acc_uint32l_t
)b
[1] << 8) | ((acc_uint32l_t
)b
[2] << 16) | ((acc_uint32l_t
)b
[3] << 24);
4794 ACCLIB_PUBLIC(void, acc_ua_set_le16
) (acc_hvoid_p p
, unsigned v
)
4796 #if defined(ACC_UA_SET_LE16)
4797 ACC_UA_SET_LE16(p
, v
);
4799 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4800 b
[0] = (unsigned char) ((v
>> 0) & 0xff);
4801 b
[1] = (unsigned char) ((v
>> 8) & 0xff);
4804 ACCLIB_PUBLIC(void, acc_ua_set_le24
) (acc_hvoid_p p
, acc_uint32l_t v
)
4806 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4807 b
[0] = (unsigned char) ((v
>> 0) & 0xff);
4808 b
[1] = (unsigned char) ((v
>> 8) & 0xff);
4809 b
[2] = (unsigned char) ((v
>> 16) & 0xff);
4811 ACCLIB_PUBLIC(void, acc_ua_set_le32
) (acc_hvoid_p p
, acc_uint32l_t v
)
4813 #if defined(ACC_UA_SET_LE32)
4814 ACC_UA_SET_LE32(p
, v
);
4816 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4817 b
[0] = (unsigned char) ((v
>> 0) & 0xff);
4818 b
[1] = (unsigned char) ((v
>> 8) & 0xff);
4819 b
[2] = (unsigned char) ((v
>> 16) & 0xff);
4820 b
[3] = (unsigned char) ((v
>> 24) & 0xff);
4823 #if defined(acc_int64l_t)
4824 ACCLIB_PUBLIC(acc_uint64l_t
, acc_ua_get_be64
) (const acc_hvoid_p p
)
4826 #if defined(ACC_UA_GET_BE64)
4827 return ACC_UA_GET_BE64(p
);
4828 #elif defined(ACC_UA_GET_BE32)
4829 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4830 acc_uint32e_t v0
, v1
;
4831 v1
= ACC_UA_GET_BE32(b
+ 0);
4832 v0
= ACC_UA_GET_BE32(b
+ 4);
4833 return ((acc_uint64l_t
)v0
) | ((acc_uint64l_t
)v1
<< 32);
4834 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4835 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4836 return ((acc_uint64l_t
)b
[7]) | ((acc_uint64l_t
)b
[6] << 8) | ((acc_uint64l_t
)b
[5] << 16) | ((acc_uint64l_t
)b
[4] << 24) | ((acc_uint64l_t
)b
[3] << 32) | ((acc_uint64l_t
)b
[2] << 40) | ((acc_uint64l_t
)b
[1] << 48) | ((acc_uint64l_t
)b
[0] << 56);
4838 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4839 acc_uint32l_t v0
, v1
;
4840 v1
= ((acc_uint32l_t
)b
[3]) | ((acc_uint32l_t
)b
[2] << 8) | ((acc_uint32l_t
)b
[1] << 16) | ((acc_uint32l_t
)b
[0] << 24);
4842 v0
= ((acc_uint32l_t
)b
[3]) | ((acc_uint32l_t
)b
[2] << 8) | ((acc_uint32l_t
)b
[1] << 16) | ((acc_uint32l_t
)b
[0] << 24);
4843 return ((acc_uint64l_t
)v0
) | ((acc_uint64l_t
)v1
<< 32);
4846 ACCLIB_PUBLIC(void, acc_ua_set_be64
) (acc_hvoid_p p
, acc_uint64l_t v
)
4848 #if defined(ACC_UA_SET_BE64)
4849 ACC_UA_SET_BE64(p
, v
);
4850 #elif defined(ACC_UA_SET_BE32)
4851 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4852 ACC_UA_SET_BE32(b
+ 4, (v
>> 0));
4853 ACC_UA_SET_BE32(b
+ 0, (v
>> 32));
4854 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4855 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4856 b
[7] = (unsigned char) ((v
>> 0) & 0xff);
4857 b
[6] = (unsigned char) ((v
>> 8) & 0xff);
4858 b
[5] = (unsigned char) ((v
>> 16) & 0xff);
4859 b
[4] = (unsigned char) ((v
>> 24) & 0xff);
4860 b
[3] = (unsigned char) ((v
>> 32) & 0xff);
4861 b
[2] = (unsigned char) ((v
>> 40) & 0xff);
4862 b
[1] = (unsigned char) ((v
>> 48) & 0xff);
4863 b
[0] = (unsigned char) ((v
>> 56) & 0xff);
4865 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4867 x
= (acc_uint32l_t
) (v
>> 0);
4868 b
[7] = (unsigned char) ((x
>> 0) & 0xff);
4869 b
[6] = (unsigned char) ((x
>> 8) & 0xff);
4870 b
[5] = (unsigned char) ((x
>> 16) & 0xff);
4871 b
[4] = (unsigned char) ((x
>> 24) & 0xff);
4872 x
= (acc_uint32l_t
) (v
>> 32);
4873 b
[3] = (unsigned char) ((x
>> 0) & 0xff);
4874 b
[2] = (unsigned char) ((x
>> 8) & 0xff);
4875 b
[1] = (unsigned char) ((x
>> 16) & 0xff);
4876 b
[0] = (unsigned char) ((x
>> 24) & 0xff);
4880 #if defined(acc_int64l_t)
4881 ACCLIB_PUBLIC(acc_uint64l_t
, acc_ua_get_le64
) (const acc_hvoid_p p
)
4883 #if defined(ACC_UA_GET_LE64)
4884 return ACC_UA_GET_LE64(p
);
4885 #elif defined(ACC_UA_GET_LE32)
4886 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4887 acc_uint32e_t v0
, v1
;
4888 v0
= ACC_UA_GET_LE32(b
+ 0);
4889 v1
= ACC_UA_GET_LE32(b
+ 4);
4890 return ((acc_uint64l_t
)v0
) | ((acc_uint64l_t
)v1
<< 32);
4891 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4892 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4893 return ((acc_uint64l_t
)b
[0]) | ((acc_uint64l_t
)b
[1] << 8) | ((acc_uint64l_t
)b
[2] << 16) | ((acc_uint64l_t
)b
[3] << 24) | ((acc_uint64l_t
)b
[4] << 32) | ((acc_uint64l_t
)b
[5] << 40) | ((acc_uint64l_t
)b
[6] << 48) | ((acc_uint64l_t
)b
[7] << 56);
4895 const acc_hbyte_p b
= (const acc_hbyte_p
) p
;
4896 acc_uint32l_t v0
, v1
;
4897 v0
= ((acc_uint32l_t
)b
[0]) | ((acc_uint32l_t
)b
[1] << 8) | ((acc_uint32l_t
)b
[2] << 16) | ((acc_uint32l_t
)b
[3] << 24);
4899 v1
= ((acc_uint32l_t
)b
[0]) | ((acc_uint32l_t
)b
[1] << 8) | ((acc_uint32l_t
)b
[2] << 16) | ((acc_uint32l_t
)b
[3] << 24);
4900 return ((acc_uint64l_t
)v0
) | ((acc_uint64l_t
)v1
<< 32);
4903 ACCLIB_PUBLIC(void, acc_ua_set_le64
) (acc_hvoid_p p
, acc_uint64l_t v
)
4905 #if defined(ACC_UA_SET_LE64)
4906 ACC_UA_SET_LE64(p
, v
);
4907 #elif defined(ACC_UA_SET_LE32)
4908 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4909 ACC_UA_SET_LE32(b
+ 0, (v
>> 0));
4910 ACC_UA_SET_LE32(b
+ 4, (v
>> 32));
4911 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4912 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4913 b
[0] = (unsigned char) ((v
>> 0) & 0xff);
4914 b
[1] = (unsigned char) ((v
>> 8) & 0xff);
4915 b
[2] = (unsigned char) ((v
>> 16) & 0xff);
4916 b
[3] = (unsigned char) ((v
>> 24) & 0xff);
4917 b
[4] = (unsigned char) ((v
>> 32) & 0xff);
4918 b
[5] = (unsigned char) ((v
>> 40) & 0xff);
4919 b
[6] = (unsigned char) ((v
>> 48) & 0xff);
4920 b
[7] = (unsigned char) ((v
>> 56) & 0xff);
4922 acc_hbyte_p b
= (acc_hbyte_p
) p
;
4924 x
= (acc_uint32l_t
) (v
>> 0);
4925 b
[0] = (unsigned char) ((x
>> 0) & 0xff);
4926 b
[1] = (unsigned char) ((x
>> 8) & 0xff);
4927 b
[2] = (unsigned char) ((x
>> 16) & 0xff);
4928 b
[3] = (unsigned char) ((x
>> 24) & 0xff);
4929 x
= (acc_uint32l_t
) (v
>> 32);
4930 b
[4] = (unsigned char) ((x
>> 0) & 0xff);
4931 b
[5] = (unsigned char) ((x
>> 8) & 0xff);
4932 b
[6] = (unsigned char) ((x
>> 16) & 0xff);
4933 b
[7] = (unsigned char) ((x
>> 24) & 0xff);
4938 #if defined(ACC_WANT_ACCLIB_VGET)
4939 # undef ACC_WANT_ACCLIB_VGET
4940 #define __ACCLIB_VGET_CH_INCLUDED 1
4941 #if !defined(ACCLIB_PUBLIC)
4942 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
4944 #if !defined(ACCLIB_PUBLIC_NOINLINE)
4945 # if !defined(__acc_noinline)
4946 # define ACCLIB_PUBLIC_NOINLINE(r,f) r __ACCLIB_FUNCNAME(f)
4947 # elif (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
4948 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
4950 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
4953 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
4954 extern void* volatile __acc_vget_ptr
;
4955 void* volatile __attribute__((__used__
)) __acc_vget_ptr
= (void *) 0;
4957 extern void* volatile __acc_vget_ptr
;
4958 void* volatile __acc_vget_ptr
= (void *) 0;
4960 #ifndef __ACCLIB_VGET_BODY
4961 #define __ACCLIB_VGET_BODY(T) \
4962 if __acc_unlikely(__acc_vget_ptr) { \
4963 * (T *) __acc_vget_ptr = v; \
4964 * (int *) __acc_vget_ptr = expr; \
4965 v = * (T *) __acc_vget_ptr; \
4969 ACCLIB_PUBLIC_NOINLINE(short, acc_vget_short
) (short v
, int expr
)
4971 __ACCLIB_VGET_BODY(short)
4973 ACCLIB_PUBLIC_NOINLINE(int, acc_vget_int
) (int v
, int expr
)
4975 __ACCLIB_VGET_BODY(int)
4977 ACCLIB_PUBLIC_NOINLINE(long, acc_vget_long
) (long v
, int expr
)
4979 __ACCLIB_VGET_BODY(long)
4981 #if defined(acc_int64l_t)
4982 ACCLIB_PUBLIC_NOINLINE(acc_int64l_t
, acc_vget_acc_int64l_t
) (acc_int64l_t v
, int expr
)
4984 __ACCLIB_VGET_BODY(acc_int64l_t
)
4987 ACCLIB_PUBLIC_NOINLINE(acc_hsize_t
, acc_vget_acc_hsize_t
) (acc_hsize_t v
, int expr
)
4989 __ACCLIB_VGET_BODY(acc_hsize_t
)
4991 #if !(ACC_CFG_NO_FLOAT)
4992 ACCLIB_PUBLIC_NOINLINE(float, acc_vget_float
) (float v
, int expr
)
4994 __ACCLIB_VGET_BODY(float)
4997 #if !(ACC_CFG_NO_DOUBLE)
4998 ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double
) (double v
, int expr
)
5000 __ACCLIB_VGET_BODY(double)
5003 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p
, acc_vget_acc_hvoid_p
) (acc_hvoid_p v
, int expr
)
5005 __ACCLIB_VGET_BODY(acc_hvoid_p
)
5007 #if (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
5008 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p
, acc_vget_acc_hvoid_cp
) (const acc_hvoid_p vv
, int expr
)
5010 acc_hvoid_p v
= (acc_hvoid_p
) vv
;
5011 __ACCLIB_VGET_BODY(acc_hvoid_p
)
5014 ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p
, acc_vget_acc_hvoid_cp
) (const acc_hvoid_p v
, int expr
)
5016 __ACCLIB_VGET_BODY(const acc_hvoid_p
)
5020 #if defined(ACC_WANT_ACCLIB_HMEMCPY)
5021 # undef ACC_WANT_ACCLIB_HMEMCPY
5022 #define __ACCLIB_HMEMCPY_CH_INCLUDED 1
5023 #if !defined(ACCLIB_PUBLIC)
5024 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5026 ACCLIB_PUBLIC(int, acc_hmemcmp
) (const acc_hvoid_p s1
, const acc_hvoid_p s2
, acc_hsize_t len
)
5028 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP)
5029 const acc_hbyte_p p1
= (const acc_hbyte_p
) s1
;
5030 const acc_hbyte_p p2
= (const acc_hbyte_p
) s2
;
5031 if __acc_likely(len
> 0) do
5037 } while __acc_likely(--len
> 0);
5040 return memcmp(s1
, s2
, len
);
5043 ACCLIB_PUBLIC(acc_hvoid_p
, acc_hmemcpy
) (acc_hvoid_p dest
, const acc_hvoid_p src
, acc_hsize_t len
)
5045 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY)
5046 acc_hbyte_p p1
= (acc_hbyte_p
) dest
;
5047 const acc_hbyte_p p2
= (const acc_hbyte_p
) src
;
5048 if (!(len
> 0) || p1
== p2
)
5052 while __acc_likely(--len
> 0);
5055 return memcpy(dest
, src
, len
);
5058 ACCLIB_PUBLIC(acc_hvoid_p
, acc_hmemmove
) (acc_hvoid_p dest
, const acc_hvoid_p src
, acc_hsize_t len
)
5060 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE)
5061 acc_hbyte_p p1
= (acc_hbyte_p
) dest
;
5062 const acc_hbyte_p p2
= (const acc_hbyte_p
) src
;
5063 if (!(len
> 0) || p1
== p2
)
5069 while __acc_likely(--len
> 0);
5077 while __acc_likely(--len
> 0);
5081 return memmove(dest
, src
, len
);
5084 ACCLIB_PUBLIC(acc_hvoid_p
, acc_hmemset
) (acc_hvoid_p s
, int c
, acc_hsize_t len
)
5086 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET)
5087 acc_hbyte_p p
= (acc_hbyte_p
) s
;
5088 if __acc_likely(len
> 0) do
5089 *p
++ = (unsigned char) c
;
5090 while __acc_likely(--len
> 0);
5093 return memset(s
, c
, len
);
5097 #if defined(ACC_WANT_ACCLIB_RAND)
5098 # undef ACC_WANT_ACCLIB_RAND
5099 #define __ACCLIB_RAND_CH_INCLUDED 1
5100 #if !defined(ACCLIB_PUBLIC)
5101 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5103 ACCLIB_PUBLIC(void, acc_srand31
) (acc_rand31_p r
, acc_uint32l_t seed
)
5105 r
->seed
= seed
& ACC_UINT32_C(0xffffffff);
5107 ACCLIB_PUBLIC(acc_uint32l_t
, acc_rand31
) (acc_rand31_p r
)
5109 r
->seed
= r
->seed
* ACC_UINT32_C(1103515245) + 12345;
5110 r
->seed
&= ACC_UINT32_C(0x7fffffff);
5113 #if defined(acc_int64l_t)
5114 ACCLIB_PUBLIC(void, acc_srand48
) (acc_rand48_p r
, acc_uint32l_t seed
)
5116 r
->seed
= seed
& ACC_UINT32_C(0xffffffff);
5117 r
->seed
<<= 16; r
->seed
|= 0x330e;
5119 ACCLIB_PUBLIC(acc_uint32l_t
, acc_rand48
) (acc_rand48_p r
)
5121 r
->seed
= r
->seed
* ACC_UINT64_C(25214903917) + 11;
5122 r
->seed
&= ACC_UINT64_C(0xffffffffffff);
5123 return (acc_uint32l_t
) (r
->seed
>> 17);
5125 ACCLIB_PUBLIC(acc_uint32l_t
, acc_rand48_r32
) (acc_rand48_p r
)
5127 r
->seed
= r
->seed
* ACC_UINT64_C(25214903917) + 11;
5128 r
->seed
&= ACC_UINT64_C(0xffffffffffff);
5129 return (acc_uint32l_t
) (r
->seed
>> 16);
5132 #if defined(acc_int64l_t)
5133 ACCLIB_PUBLIC(void, acc_srand64
) (acc_rand64_p r
, acc_uint64l_t seed
)
5135 r
->seed
= seed
& ACC_UINT64_C(0xffffffffffffffff);
5137 ACCLIB_PUBLIC(acc_uint32l_t
, acc_rand64
) (acc_rand64_p r
)
5139 r
->seed
= r
->seed
* ACC_UINT64_C(6364136223846793005) + 1;
5140 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
5141 r
->seed
&= ACC_UINT64_C(0xffffffffffffffff);
5143 return (acc_uint32l_t
) (r
->seed
>> 33);
5145 ACCLIB_PUBLIC(acc_uint32l_t
, acc_rand64_r32
) (acc_rand64_p r
)
5147 r
->seed
= r
->seed
* ACC_UINT64_C(6364136223846793005) + 1;
5148 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
5149 r
->seed
&= ACC_UINT64_C(0xffffffffffffffff);
5151 return (acc_uint32l_t
) (r
->seed
>> 32);
5154 ACCLIB_PUBLIC(void, acc_srandmt
) (acc_randmt_p r
, acc_uint32l_t seed
)
5158 r
->s
[i
++] = (seed
&= ACC_UINT32_C(0xffffffff));
5160 seed
= seed
* ACC_UINT32_C(0x6c078965) + i
;
5164 ACCLIB_PUBLIC(acc_uint32l_t
, acc_randmt
) (acc_randmt_p r
)
5166 return (__ACCLIB_FUNCNAME(acc_randmt_r32
)(r
)) >> 1;
5168 ACCLIB_PUBLIC(acc_uint32l_t
, acc_randmt_r32
) (acc_randmt_p r
)
5171 if __acc_unlikely(r
->n
== 624) {
5175 j
= i
- 623; if ((int) j
< 0) j
+= 624;
5176 v
= (r
->s
[i
] & ACC_UINT32_C(0x80000000)) ^ (r
->s
[j
] & ACC_UINT32_C(0x7fffffff));
5177 j
= i
- 227; if ((int) j
< 0) j
+= 624;
5178 r
->s
[i
] = r
->s
[j
] ^ (v
>> 1);
5179 if (v
& 1) r
->s
[i
] ^= ACC_UINT32_C(0x9908b0df);
5180 } while (++i
!= 624);
5183 v
^= v
>> 11; v
^= (v
& ACC_UINT32_C(0x013a58ad)) << 7;
5184 v
^= (v
& ACC_UINT32_C(0x0001df8c)) << 15; v
^= v
>> 18;
5187 #if defined(acc_int64l_t)
5188 ACCLIB_PUBLIC(void, acc_srandmt64
) (acc_randmt64_p r
, acc_uint64l_t seed
)
5192 r
->s
[i
++] = (seed
&= ACC_UINT64_C(0xffffffffffffffff));
5194 seed
= seed
* ACC_UINT64_C(0x5851f42d4c957f2d) + i
;
5199 ACCLIB_PUBLIC(acc_uint32l_t
, acc_randmt64
) (acc_randmt64_p r
)
5202 v
= (__ACCLIB_FUNCNAME(acc_randmt64_r64
)(r
)) >> 33;
5203 return (acc_uint32l_t
) v
;
5206 ACCLIB_PUBLIC(acc_uint64l_t
, acc_randmt64_r64
) (acc_randmt64_p r
)
5209 if __acc_unlikely(r
->n
== 312) {
5213 j
= i
- 311; if ((int) j
< 0) j
+= 312;
5214 v
= (r
->s
[i
] & ACC_UINT64_C(0xffffffff80000000)) ^ (r
->s
[j
] & ACC_UINT64_C(0x7fffffff));
5215 j
= i
- 156; if ((int) j
< 0) j
+= 312;
5216 r
->s
[i
] = r
->s
[j
] ^ (v
>> 1);
5217 if (v
& 1) r
->s
[i
] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
5218 } while (++i
!= 312);
5221 v
^= (v
& ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
5222 v
^= (v
& ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
5223 v
^= (v
& ACC_UINT64_C(0x7ffbf77)) << 37;
5224 return v
^ (v
>> 43);
5228 #if defined(ACC_WANT_ACCLIB_RDTSC)
5229 # undef ACC_WANT_ACCLIB_RDTSC
5230 #define __ACCLIB_RDTSC_CH_INCLUDED 1
5231 #if !defined(ACCLIB_PUBLIC)
5232 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5234 #if defined(acc_int32e_t)
5235 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
5237 # pragma warn(disable:2007)
5239 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
5240 #if (ACC_ARCH_AMD64 && ACC_CC_PATHSCALE)
5241 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "rax", "rdx"
5242 #elif (ACC_ARCH_AMD64 && ACC_CC_INTELC)
5243 # define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "rax", "rdx"
5244 #elif (ACC_ARCH_AMD64)
5245 # define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "rax", "rdx"
5246 #elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
5247 # define __ACCLIB_RDTSC_REGS : : "r" (t) : "ax", "dx"
5248 #elif (ACC_ARCH_I386 && ACC_CC_INTELC)
5249 # define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "eax", "edx"
5250 #elif (ACC_ARCH_I386 && ACC_CC_PATHSCALE)
5251 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "eax", "edx"
5253 # define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "eax", "edx"
5256 ACCLIB_PUBLIC(int, acc_tsc_read
) (acc_uint32e_t
* t
)
5258 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
5259 __asm__
__volatile__(
5260 "clc \n" ".byte 0x0f,0x31\n"
5261 "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
5265 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
5270 # if (ACC_CC_MSC && (_MSC_VER < 1200))
5281 t
[0] = t
[1] = 0; return -1;
5284 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
5289 #if defined(ACC_WANT_ACCLIB_DOSALLOC)
5290 # undef ACC_WANT_ACCLIB_DOSALLOC
5291 #define __ACCLIB_DOSALLOC_CH_INCLUDED 1
5292 #if !defined(ACCLIB_PUBLIC)
5293 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5296 ACC_EXTERN_C
unsigned short __far __pascal
DosAllocHuge(unsigned short, unsigned short, unsigned short __far
*, unsigned short, unsigned short);
5297 ACC_EXTERN_C
unsigned short __far __pascal
DosFreeSeg(unsigned short);
5299 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
5300 #if !(ACC_CC_AZTECC)
5301 ACCLIB_PUBLIC(void __far
*, acc_dos_alloc
) (unsigned long size
)
5305 if ((long)size
<= 0)
5307 size
= (size
+ 15) >> 4;
5311 ri
.x
.bx
= (unsigned short) size
;
5312 int86(0x21, &ri
, &ro
);
5313 if ((ro
.x
.cflag
& 1) == 0)
5314 p
= (void __far
*) ACC_PTR_MK_FP(ro
.x
.ax
, 0);
5317 ACCLIB_PUBLIC(int, acc_dos_free
) (void __far
* p
)
5323 if (ACC_PTR_FP_OFF(p
) != 0)
5327 rs
.es
= ACC_PTR_FP_SEG(p
);
5328 int86x(0x21, &ri
, &ro
, &rs
);
5336 ACCLIB_PUBLIC(void __far
*, acc_dos_alloc
) (unsigned long size
)
5339 unsigned short sel
= 0;
5340 if ((long)size
<= 0)
5342 if (DosAllocHuge((unsigned short)(size
>> 16), (unsigned short)size
, &sel
, 0, 0) == 0)
5343 p
= (void __far
*) ACC_PTR_MK_FP(sel
, 0);
5346 ACCLIB_PUBLIC(int, acc_dos_free
) (void __far
* p
)
5350 if (ACC_PTR_FP_OFF(p
) != 0)
5352 if (DosFreeSeg(ACC_PTR_FP_SEG(p
)) != 0)
5358 #if defined(ACC_WANT_ACCLIB_GETOPT)
5359 # undef ACC_WANT_ACCLIB_GETOPT
5360 #define __ACCLIB_GETOPT_CH_INCLUDED 1
5361 #if !defined(ACCLIB_PUBLIC)
5362 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5364 ACCLIB_PUBLIC(void, acc_getopt_init
) (acc_getopt_p g
,
5365 int start_argc
, int argc
, char** argv
)
5367 memset(g
, 0, sizeof(*g
));
5368 g
->optind
= start_argc
;
5369 g
->argc
= argc
; g
->argv
= argv
;
5372 static int __ACCLIB_FUNCNAME(acc_getopt_rotate
) (char** p
, int first
, int middle
, int last
)
5374 int i
= middle
, n
= middle
- first
;
5375 if (first
>= middle
|| middle
>= last
) return 0;
5378 char* t
= p
[first
]; p
[first
] = p
[i
]; p
[i
] = t
;
5379 if (++first
== middle
)
5381 if (++i
== last
) break;
5384 else if (++i
== last
)
5389 static int __ACCLIB_FUNCNAME(acc_getopt_perror
) (acc_getopt_p g
, int ret
, const char* f
, ...)
5394 struct { va_list ap
; } s
;
5396 g
->opterr(g
, f
, &s
);
5399 g
->opterr(g
, f
, NULL
);
5405 ACCLIB_PUBLIC(int, acc_getopt
) (acc_getopt_p g
,
5406 const char* shortopts
,
5407 const acc_getopt_longopt_p longopts
,
5410 #define pe __ACCLIB_FUNCNAME(acc_getopt_perror)
5411 int ordering
= ACC_GETOPT_PERMUTE
;
5412 int missing_arg_ret
= g
->bad_option
;
5416 if (*shortopts
== '-' || *shortopts
== '+')
5417 ordering
= *shortopts
++ == '-' ? ACC_GETOPT_RETURN_IN_ORDER
: ACC_GETOPT_REQUIRE_ORDER
;
5418 if (*shortopts
== ':')
5419 missing_arg_ret
= *shortopts
++;
5422 if (g
->optopt
== -1)
5423 g
->optopt
= g
->bad_option
;
5429 goto acc_label_next_shortopt
;
5430 g
->optind
-= __ACCLIB_FUNCNAME(acc_getopt_rotate
)(g
->argv
, g
->pending_rotate_first
, g
->pending_rotate_middle
, g
->optind
);
5431 g
->pending_rotate_first
= g
->pending_rotate_middle
= g
->optind
;
5432 if (ordering
== ACC_GETOPT_PERMUTE
)
5434 while (g
->optind
< g
->argc
&& !(g
->argv
[g
->optind
][0] == '-' && g
->argv
[g
->optind
][1]))
5436 g
->pending_rotate_middle
= g
->optind
;
5438 if (g
->optind
>= g
->argc
)
5440 g
->optind
= g
->pending_rotate_first
;
5443 a
= g
->argv
[g
->optind
];
5444 if (a
[0] == '-' && a
[1] == '-')
5447 const acc_getopt_longopt_p o
;
5448 const acc_getopt_longopt_p o1
= NULL
;
5449 const acc_getopt_longopt_p o2
= NULL
;
5454 for (a
+= 2; a
[l
] && a
[l
] != '=' && a
[l
] != '#'; )
5456 for (o
= longopts
; l
&& o
&& o
->name
; ++o
)
5458 if (strncmp(a
, o
->name
, l
) != 0)
5461 goto acc_label_found_o
;
5462 need_exact
|= o
->has_arg
& ACC_GETOPT_EXACT_ARG
;
5466 if (!o1
|| need_exact
)
5467 return pe(g
, g
->bad_option
, "unrecognized option '--%s'", a
);
5469 return pe(g
, g
->bad_option
, "option '--%s' is ambiguous (could be '--%s' or '--%s')", a
, o1
->name
, o2
->name
);
5473 switch (o
->has_arg
& 0x2f)
5475 case ACC_GETOPT_OPTIONAL_ARG
:
5479 case ACC_GETOPT_REQUIRED_ARG
:
5482 else if (g
->optind
< g
->argc
)
5483 g
->optarg
= g
->argv
[g
->optind
++];
5485 return pe(g
, missing_arg_ret
, "option '--%s' requires an argument", o
->name
);
5487 case ACC_GETOPT_REQUIRED_ARG
| 0x20:
5491 return pe(g
, missing_arg_ret
, "option '--%s=' requires an argument", o
->name
);
5495 return pe(g
, g
->bad_option
, "option '--%s' doesn't allow an argument", o
->name
);
5499 *longind
= (int) (o
- longopts
);
5507 if (a
[0] == '-' && a
[1])
5511 acc_label_next_shortopt
:
5512 a
= g
->argv
[g
->optind
] + ++g
->shortpos
;
5513 c
= (unsigned char) *a
++; s
= NULL
;
5514 if (c
!= ':' && shortopts
)
5515 s
= strchr(shortopts
, c
);
5516 if (!s
|| s
[1] != ':')
5519 ++g
->optind
, g
->shortpos
= 0;
5523 return pe(g
, g
->bad_option
, "invalid option '-%c'", c
);
5528 ++g
->optind
, g
->shortpos
= 0;
5531 else if (s
[2] != ':')
5533 if (g
->optind
< g
->argc
)
5534 g
->optarg
= g
->argv
[g
->optind
++];
5538 return pe(g
, missing_arg_ret
, "option '-%c' requires an argument", c
);
5544 if (ordering
== ACC_GETOPT_RETURN_IN_ORDER
)
5551 g
->optind
-= __ACCLIB_FUNCNAME(acc_getopt_rotate
)(g
->argv
, g
->pending_rotate_first
, g
->pending_rotate_middle
, g
->optind
);
5552 g
->pending_rotate_first
= g
->pending_rotate_middle
= g
->optind
;
5558 #if defined(ACC_WANT_ACCLIB_HALLOC)
5559 # undef ACC_WANT_ACCLIB_HALLOC
5560 #define __ACCLIB_HALLOC_CH_INCLUDED 1
5561 #if !defined(ACCLIB_PUBLIC)
5562 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5564 #if (ACC_HAVE_MM_HUGE_PTR)
5565 #if 1 && (ACC_OS_DOS16 && defined(BLX286))
5566 # define __ACCLIB_HALLOC_USE_DAH 1
5567 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
5568 # define __ACCLIB_HALLOC_USE_DAH 1
5569 #elif 1 && (ACC_OS_OS216)
5570 # define __ACCLIB_HALLOC_USE_DAH 1
5571 #elif 1 && (ACC_OS_WIN16)
5572 # define __ACCLIB_HALLOC_USE_GA 1
5573 #elif 1 && (ACC_OS_DOS16) && (ACC_CC_BORLANDC) && defined(__DPMI16__)
5574 # define __ACCLIB_HALLOC_USE_GA 1
5577 #if (__ACCLIB_HALLOC_USE_DAH)
5578 #if 0 && (ACC_OS_OS216)
5581 ACC_EXTERN_C
unsigned short __far __pascal
DosAllocHuge(unsigned short, unsigned short, unsigned short __far
*, unsigned short, unsigned short);
5582 ACC_EXTERN_C
unsigned short __far __pascal
DosFreeSeg(unsigned short);
5585 #if (__ACCLIB_HALLOC_USE_GA)
5588 #include <windows.h>
5590 ACC_EXTERN_C
const void __near
* __far __pascal
GlobalAlloc(unsigned, unsigned long);
5591 ACC_EXTERN_C
const void __near
* __far __pascal
GlobalFree(const void __near
*);
5592 ACC_EXTERN_C
unsigned long __far __pascal
GlobalHandle(unsigned);
5593 ACC_EXTERN_C
void __far
* __far __pascal
GlobalLock(const void __near
*);
5594 ACC_EXTERN_C
int __far __pascal
GlobalUnlock(const void __near
*);
5597 ACCLIB_PUBLIC(acc_hvoid_p
, acc_halloc
) (acc_hsize_t size
)
5602 #if 0 && defined(__palmos__)
5603 p
= MemPtrNew(size
);
5604 #elif !(ACC_HAVE_MM_HUGE_PTR)
5605 if (size
< (size_t) -1)
5606 p
= malloc((size_t) size
);
5608 if ((long)size
<= 0)
5611 #if (__ACCLIB_HALLOC_USE_DAH)
5612 unsigned short sel
= 0;
5613 if (DosAllocHuge((unsigned short)(size
>> 16), (unsigned short)size
, &sel
, 0, 0) == 0)
5614 p
= (acc_hvoid_p
) ACC_PTR_MK_FP(sel
, 0);
5615 #elif (__ACCLIB_HALLOC_USE_GA)
5616 const void __near
* h
= GlobalAlloc(2, size
);
5619 if (p
&& ACC_PTR_FP_OFF(p
) != 0) {
5626 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
5627 p
= _halloc(size
, 1);
5628 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
5629 p
= halloc(size
, 1);
5630 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
5631 p
= farmalloc(size
);
5632 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
5633 p
= farmalloc(size
);
5634 #elif (ACC_CC_AZTECC)
5637 if (size
< (size_t) -1)
5638 p
= malloc((size_t) size
);
5644 ACCLIB_PUBLIC(void, acc_hfree
) (acc_hvoid_p p
)
5648 #if 0 && defined(__palmos__)
5650 #elif !(ACC_HAVE_MM_HUGE_PTR)
5653 #if (__ACCLIB_HALLOC_USE_DAH)
5654 if (ACC_PTR_FP_OFF(p
) == 0)
5655 DosFreeSeg((unsigned short) ACC_PTR_FP_SEG(p
));
5656 #elif (__ACCLIB_HALLOC_USE_GA)
5657 if (ACC_PTR_FP_OFF(p
) == 0) {
5658 const void __near
* h
= (const void __near
*) (unsigned) GlobalHandle(ACC_PTR_FP_SEG(p
));
5664 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
5666 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
5668 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
5669 farfree((void __far
*) p
);
5670 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
5671 farfree((void __far
*) p
);
5672 #elif (ACC_CC_AZTECC)
5680 #if defined(ACC_WANT_ACCLIB_HFREAD)
5681 # undef ACC_WANT_ACCLIB_HFREAD
5682 #define __ACCLIB_HFREAD_CH_INCLUDED 1
5683 #if !defined(ACCLIB_PUBLIC)
5684 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5686 ACCLIB_PUBLIC(acc_hsize_t
, acc_hfread
) (void* vfp
, acc_hvoid_p buf
, acc_hsize_t size
)
5688 FILE* fp
= (FILE *) vfp
;
5689 #if (ACC_HAVE_MM_HUGE_PTR)
5690 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
5691 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
5692 unsigned char tmp
[512];
5696 size_t n
= size
- l
> sizeof(tmp
) ? sizeof(tmp
) : (size_t) (size
- l
);
5697 n
= fread(tmp
, 1, n
, fp
);
5700 __ACCLIB_FUNCNAME(acc_hmemcpy
)((acc_hbyte_p
)buf
+ l
, tmp
, (acc_hsize_t
)n
);
5704 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
5705 acc_hbyte_p b
= (acc_hbyte_p
) buf
;
5710 n
= ACC_PTR_FP_OFF(b
); n
= (n
<= 1) ? 0x8000u
: (0u - n
);
5711 if ((acc_hsize_t
) n
> size
- l
)
5712 n
= (size_t) (size
- l
);
5713 n
= fread((void __far
*)b
, 1, n
, fp
);
5720 # error "unknown memory model"
5723 return fread(buf
, 1, size
, fp
);
5726 ACCLIB_PUBLIC(acc_hsize_t
, acc_hfwrite
) (void* vfp
, const acc_hvoid_p buf
, acc_hsize_t size
)
5728 FILE* fp
= (FILE *) vfp
;
5729 #if (ACC_HAVE_MM_HUGE_PTR)
5730 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
5731 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
5732 unsigned char tmp
[512];
5736 size_t n
= size
- l
> sizeof(tmp
) ? sizeof(tmp
) : (size_t) (size
- l
);
5737 __ACCLIB_FUNCNAME(acc_hmemcpy
)(tmp
, (const acc_hbyte_p
)buf
+ l
, (acc_hsize_t
)n
);
5738 n
= fwrite(tmp
, 1, n
, fp
);
5744 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
5745 const acc_hbyte_p b
= (const acc_hbyte_p
) buf
;
5750 n
= ACC_PTR_FP_OFF(b
); n
= (n
<= 1) ? 0x8000u
: (0u - n
);
5751 if ((acc_hsize_t
) n
> size
- l
)
5752 n
= (size_t) (size
- l
);
5753 n
= fwrite((void __far
*)b
, 1, n
, fp
);
5760 # error "unknown memory model"
5763 return fwrite(buf
, 1, size
, fp
);
5767 #if defined(ACC_WANT_ACCLIB_HSREAD)
5768 # undef ACC_WANT_ACCLIB_HSREAD
5769 #define __ACCLIB_HSREAD_CH_INCLUDED 1
5770 #if !defined(ACCLIB_PUBLIC)
5771 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5773 ACCLIB_PUBLIC(long, acc_safe_hread
) (int fd
, acc_hvoid_p buf
, long size
)
5775 acc_hbyte_p b
= (acc_hbyte_p
) buf
;
5778 saved_errno
= errno
;
5782 #if (ACC_HAVE_MM_HUGE_PTR)
5783 # define __ACCLIB_REQUIRE_HREAD_CH 1
5784 errno
= 0; n
= acc_hread(fd
, b
, n
);
5785 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
5786 errno
= 0; n
= _read(fd
, b
, n
);
5788 errno
= 0; n
= read(fd
, b
, n
);
5794 if (errno
== (EAGAIN
)) continue;
5797 if (errno
== (EINTR
)) continue;
5799 if (errno
== 0) errno
= 1;
5804 errno
= saved_errno
;
5807 ACCLIB_PUBLIC(long, acc_safe_hwrite
) (int fd
, const acc_hvoid_p buf
, long size
)
5809 const acc_hbyte_p b
= (const acc_hbyte_p
) buf
;
5812 saved_errno
= errno
;
5816 #if (ACC_HAVE_MM_HUGE_PTR)
5817 # define __ACCLIB_REQUIRE_HREAD_CH 1
5818 errno
= 0; n
= acc_hwrite(fd
, b
, n
);
5819 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
5820 errno
= 0; n
= _write(fd
, b
, n
);
5822 errno
= 0; n
= write(fd
, b
, n
);
5828 if (errno
== (EAGAIN
)) continue;
5831 if (errno
== (EINTR
)) continue;
5833 if (errno
== 0) errno
= 1;
5838 errno
= saved_errno
;
5842 #if defined(ACC_WANT_ACCLIB_PCLOCK)
5843 # undef ACC_WANT_ACCLIB_PCLOCK
5844 #define __ACCLIB_PCLOCK_CH_INCLUDED 1
5845 #if !defined(ACCLIB_PUBLIC)
5846 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5848 #if 0 && (ACC_OS_POSIX_LINUX && ACC_ARCH_AMD64 && ACC_ASM_SYNTAX_GNUC)
5849 #ifndef acc_pclock_syscall_clock_gettime
5850 #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
5852 static __acc_noinline
long acc_pclock_syscall_clock_gettime(long clockid
, struct timespec
*ts
)
5855 __asm__
__volatile__("syscall\n" : "=a" (r
) : "0" (228), "D" (clockid
), "S" (ts
) : __ACC_ASM_CLOBBER
);
5859 #if 0 && (ACC_OS_POSIX_LINUX && ACC_ARCH_I386 && ACC_ASM_SYNTAX_GNUC)
5860 #ifndef acc_pclock_syscall_clock_gettime
5861 #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
5863 static __acc_noinline
long acc_pclock_syscall_clock_gettime(long clockid
, struct timespec
*ts
)
5866 __asm__
__volatile__("int $0x80\n" : "=a" (r
) : "0" (265), "b" (clockid
), "c" (ts
) : __ACC_ASM_CLOBBER
);
5870 #if 0 && defined(acc_pclock_syscall_clock_gettime)
5871 #ifndef acc_pclock_read_clock_gettime_r_syscall
5872 #define acc_pclock_read_clock_gettime_r_syscall acc_pclock_read_clock_gettime_r_syscall
5874 static int acc_pclock_read_clock_gettime_r_syscall(acc_pclock_handle_p h
, acc_pclock_p c
)
5877 if (acc_pclock_syscall_clock_gettime(0, &ts
) != 0)
5879 c
->tv_sec
= ts
.tv_sec
;
5880 c
->tv_nsec
= ts
.tv_nsec
;
5881 ACC_UNUSED(h
); return 0;
5884 #if (HAVE_GETTIMEOFDAY)
5885 #ifndef acc_pclock_read_gettimeofday
5886 #define acc_pclock_read_gettimeofday acc_pclock_read_gettimeofday
5888 static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h
, acc_pclock_p c
)
5891 if (gettimeofday(&tv
, 0) != 0)
5893 #if defined(acc_int64l_t)
5894 c
->tv_sec
= tv
.tv_sec
;
5897 c
->tv_sec_low
= tv
.tv_sec
;
5899 c
->tv_nsec
= (acc_uint32l_t
) (tv
.tv_usec
* 1000u);
5900 ACC_UNUSED(h
); return 0;
5903 #if defined(CLOCKS_PER_SEC)
5904 #ifndef acc_pclock_read_clock
5905 #define acc_pclock_read_clock acc_pclock_read_clock
5907 static int acc_pclock_read_clock(acc_pclock_handle_p h
, acc_pclock_p c
)
5911 #if defined(acc_int64l_t)
5912 acc_uint64l_t nsecs
;
5914 secs
= (double)ticks
/ (CLOCKS_PER_SEC
);
5915 nsecs
= (acc_uint64l_t
) (secs
* 1000000000.0);
5916 c
->tv_sec
= (acc_int64l_t
) (nsecs
/ 1000000000ul);
5917 c
->tv_nsec
= (acc_uint32l_t
) (nsecs
% 1000000000ul);
5920 secs
= (double)ticks
/ (CLOCKS_PER_SEC
);
5922 c
->tv_sec_low
= (acc_uint32l_t
) (secs
+ 0.5);
5925 ACC_UNUSED(h
); return 0;
5928 #if 1 && defined(acc_pclock_syscall_clock_gettime)
5929 #ifndef acc_pclock_read_clock_gettime_m_syscall
5930 #define acc_pclock_read_clock_gettime_m_syscall acc_pclock_read_clock_gettime_m_syscall
5932 static int acc_pclock_read_clock_gettime_m_syscall(acc_pclock_handle_p h
, acc_pclock_p c
)
5935 if (acc_pclock_syscall_clock_gettime(1, &ts
) != 0)
5937 c
->tv_sec
= ts
.tv_sec
;
5938 c
->tv_nsec
= ts
.tv_nsec
;
5939 ACC_UNUSED(h
); return 0;
5942 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC)
5943 #ifndef acc_pclock_read_uclock
5944 #define acc_pclock_read_uclock acc_pclock_read_uclock
5946 static int acc_pclock_read_uclock(acc_pclock_handle_p h
, acc_pclock_p c
)
5948 acc_uint64l_t ticks
;
5950 acc_uint64l_t nsecs
;
5952 secs
= (double)ticks
/ (UCLOCKS_PER_SEC
);
5953 nsecs
= (acc_uint64l_t
) (secs
* 1000000000.0);
5954 c
->tv_sec
= nsecs
/ 1000000000ul;
5955 c
->tv_nsec
= (acc_uint32l_t
) (nsecs
% 1000000000ul);
5956 ACC_UNUSED(h
); return 0;
5959 #if 0 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
5960 #ifndef acc_pclock_read_clock_gettime_p_libc
5961 #define acc_pclock_read_clock_gettime_p_libc acc_pclock_read_clock_gettime_p_libc
5963 static int acc_pclock_read_clock_gettime_p_libc(acc_pclock_handle_p h
, acc_pclock_p c
)
5966 if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID
, &ts
) != 0)
5968 c
->tv_sec
= ts
.tv_sec
;
5969 c
->tv_nsec
= ts
.tv_nsec
;
5970 ACC_UNUSED(h
); return 0;
5973 #if 1 && defined(acc_pclock_syscall_clock_gettime)
5974 #ifndef acc_pclock_read_clock_gettime_p_syscall
5975 #define acc_pclock_read_clock_gettime_p_syscall acc_pclock_read_clock_gettime_p_syscall
5977 static int acc_pclock_read_clock_gettime_p_syscall(acc_pclock_handle_p h
, acc_pclock_p c
)
5980 if (acc_pclock_syscall_clock_gettime(2, &ts
) != 0)
5982 c
->tv_sec
= ts
.tv_sec
;
5983 c
->tv_nsec
= ts
.tv_nsec
;
5984 ACC_UNUSED(h
); return 0;
5987 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
5988 #ifndef acc_pclock_read_getprocesstimes
5989 #define acc_pclock_read_getprocesstimes acc_pclock_read_getprocesstimes
5991 static int acc_pclock_read_getprocesstimes(acc_pclock_handle_p h
, acc_pclock_p c
)
5993 FILETIME ct
, et
, kt
, ut
;
5994 acc_uint64l_t ticks
;
5995 if (GetProcessTimes(GetCurrentProcess(), &ct
, &et
, &kt
, &ut
) == 0)
5997 ticks
= ((acc_uint64l_t
)ut
.dwHighDateTime
<< 32) | ut
.dwLowDateTime
;
5998 if __acc_unlikely(h
->ticks_base
== 0)
5999 h
->ticks_base
= ticks
;
6001 ticks
-= h
->ticks_base
;
6002 c
->tv_sec
= (acc_int64l_t
) (ticks
/ 10000000ul);
6003 c
->tv_nsec
= (acc_uint32l_t
)(ticks
% 10000000ul) * 100u;
6004 ACC_UNUSED(h
); return 0;
6007 #if (HAVE_GETRUSAGE) && defined(RUSAGE_SELF)
6008 #ifndef acc_pclock_read_getrusage
6009 #define acc_pclock_read_getrusage acc_pclock_read_getrusage
6011 static int acc_pclock_read_getrusage(acc_pclock_handle_p h
, acc_pclock_p c
)
6014 if (getrusage(RUSAGE_SELF
, &ru
) != 0)
6016 #if defined(acc_int64l_t)
6017 c
->tv_sec
= ru
.ru_utime
.tv_sec
;
6020 c
->tv_sec_low
= ru
.ru_utime
.tv_sec
;
6022 c
->tv_nsec
= (acc_uint32l_t
) (ru
.ru_utime
.tv_usec
* 1000u);
6023 ACC_UNUSED(h
); return 0;
6026 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
6027 #ifndef acc_pclock_read_perfctr
6028 #define acc_pclock_read_perfctr acc_pclock_read_perfctr
6030 static int acc_pclock_read_perfctr(acc_pclock_handle_p h
, acc_pclock_p c
)
6032 acc_perfctr_clock_t pcc
;
6034 acc_uint64l_t nsecs
;
6035 __ACCLIB_FUNCNAME(acc_perfctr_read
)(&h
->pch
, &pcc
);
6036 if __acc_unlikely(h
->ticks_base
== 0)
6037 h
->ticks_base
= pcc
.tsc
;
6039 pcc
.tsc
-= h
->ticks_base
;
6040 secs
= pcc
.tsc
* h
->pch
.tsc_to_seconds
;
6041 nsecs
= (acc_uint64l_t
) (secs
* 1000000000.0);
6042 c
->tv_sec
= nsecs
/ 1000000000ul;
6043 c
->tv_nsec
= (acc_uint32l_t
) (nsecs
% 1000000000ul);
6044 ACC_UNUSED(h
); return 0;
6047 #if 0 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
6048 #ifndef acc_pclock_read_clock_gettime_t_libc
6049 #define acc_pclock_read_clock_gettime_t_libc acc_pclock_read_clock_gettime_t_libc
6051 static int acc_pclock_read_clock_gettime_t_libc(acc_pclock_handle_p h
, acc_pclock_p c
)
6054 if (clock_gettime(CLOCK_THREAD_CPUTIME_ID
, &ts
) != 0)
6056 c
->tv_sec
= ts
.tv_sec
;
6057 c
->tv_nsec
= ts
.tv_nsec
;
6058 ACC_UNUSED(h
); return 0;
6061 #if 1 && defined(acc_pclock_syscall_clock_gettime)
6062 #ifndef acc_pclock_read_clock_gettime_t_syscall
6063 #define acc_pclock_read_clock_gettime_t_syscall acc_pclock_read_clock_gettime_t_syscall
6065 static int acc_pclock_read_clock_gettime_t_syscall(acc_pclock_handle_p h
, acc_pclock_p c
)
6068 if (acc_pclock_syscall_clock_gettime(3, &ts
) != 0)
6070 c
->tv_sec
= ts
.tv_sec
;
6071 c
->tv_nsec
= ts
.tv_nsec
;
6072 ACC_UNUSED(h
); return 0;
6075 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
6076 #ifndef acc_pclock_read_getthreadtimes
6077 #define acc_pclock_read_getthreadtimes acc_pclock_read_getthreadtimes
6079 static int acc_pclock_read_getthreadtimes(acc_pclock_handle_p h
, acc_pclock_p c
)
6081 FILETIME ct
, et
, kt
, ut
;
6082 acc_uint64l_t ticks
;
6083 if (GetThreadTimes(GetCurrentThread(), &ct
, &et
, &kt
, &ut
) == 0)
6085 ticks
= ((acc_uint64l_t
)ut
.dwHighDateTime
<< 32) | ut
.dwLowDateTime
;
6086 if __acc_unlikely(h
->ticks_base
== 0)
6087 h
->ticks_base
= ticks
;
6089 ticks
-= h
->ticks_base
;
6090 c
->tv_sec
= (acc_int64l_t
) (ticks
/ 10000000ul);
6091 c
->tv_nsec
= (acc_uint32l_t
)(ticks
% 10000000ul) * 100;
6092 ACC_UNUSED(h
); return 0;
6095 ACCLIB_PUBLIC(int, acc_pclock_open
) (acc_pclock_handle_p h
, int mode
)
6099 h
->h
= (acclib_handle_t
) 0;
6104 #if defined(acc_int64l_t)
6109 case ACC_PCLOCK_REALTIME
:
6110 # if defined(acc_pclock_read_clock_gettime_r_syscall)
6111 if (acc_pclock_read_clock_gettime_r_syscall(h
, &c
) == 0) {
6112 h
->gettime
= acc_pclock_read_clock_gettime_r_syscall
;
6113 h
->name
= "CLOCK_REALTIME/syscall";
6117 # if defined(acc_pclock_read_gettimeofday)
6118 if (acc_pclock_read_gettimeofday(h
, &c
) == 0) {
6119 h
->gettime
= acc_pclock_read_gettimeofday
;
6120 h
->name
= "gettimeofday";
6125 case ACC_PCLOCK_MONOTONIC
:
6126 # if defined(acc_pclock_read_clock_gettime_m_syscall)
6127 if (acc_pclock_read_clock_gettime_m_syscall(h
, &c
) == 0) {
6128 h
->gettime
= acc_pclock_read_clock_gettime_m_syscall
;
6129 h
->name
= "CLOCK_MONOTONIC/syscall";
6133 # if defined(acc_pclock_read_uclock)
6134 if (acc_pclock_read_uclock(h
, &c
) == 0) {
6135 h
->gettime
= acc_pclock_read_uclock
;
6140 # if defined(acc_pclock_read_clock)
6141 if (acc_pclock_read_clock(h
, &c
) == 0) {
6142 h
->gettime
= acc_pclock_read_clock
;
6148 case ACC_PCLOCK_PROCESS_CPUTIME_ID
:
6149 # if defined(acc_pclock_read_perfctr)
6150 if (__ACCLIB_FUNCNAME(acc_perfctr_open
)(&h
->pch
) == 0) {
6151 h
->gettime
= acc_pclock_read_perfctr
;
6152 h
->name
= "perfctr";
6156 # if defined(acc_pclock_read_getprocesstimes)
6157 if (acc_pclock_read_getprocesstimes(h
, &c
) == 0) {
6158 h
->gettime
= acc_pclock_read_getprocesstimes
;
6159 h
->name
= "GetProcessTimes";
6163 # if defined(acc_pclock_read_clock_gettime_p_syscall)
6164 if (acc_pclock_read_clock_gettime_p_syscall(h
, &c
) == 0) {
6165 h
->gettime
= acc_pclock_read_clock_gettime_p_syscall
;
6166 h
->name
= "CLOCK_PROCESS_CPUTIME_ID/syscall";
6170 # if defined(acc_pclock_read_clock_gettime_p_libc)
6171 if (acc_pclock_read_clock_gettime_p_libc(h
, &c
) == 0) {
6172 h
->gettime
= acc_pclock_read_clock_gettime_p_libc
;
6173 h
->name
= "CLOCK_PROCESS_CPUTIME_ID/libc";
6177 # if defined(acc_pclock_read_getrusage)
6178 if (acc_pclock_read_getrusage(h
, &c
) == 0) {
6179 h
->gettime
= acc_pclock_read_getrusage
;
6180 h
->name
= "getrusage";
6185 case ACC_PCLOCK_THREAD_CPUTIME_ID
:
6186 # if defined(acc_pclock_read_getthreadtimes)
6187 if (acc_pclock_read_getthreadtimes(h
, &c
) == 0) {
6188 h
->gettime
= acc_pclock_read_getthreadtimes
;
6189 h
->name
= "GetThreadTimes";
6192 # if defined(acc_pclock_read_clock_gettime_t_syscall)
6193 if (acc_pclock_read_clock_gettime_t_syscall(h
, &c
) == 0) {
6194 h
->gettime
= acc_pclock_read_clock_gettime_t_syscall
;
6195 h
->name
= "CLOCK_THREAD_CPUTIME_ID/syscall";
6199 # if defined(acc_pclock_read_clock_gettime_t_libc)
6200 if (acc_pclock_read_clock_gettime_t_libc(h
, &c
) == 0) {
6201 h
->gettime
= acc_pclock_read_clock_gettime_t_libc
;
6202 h
->name
= "CLOCK_THREAD_CPUTIME_ID/libc";
6211 h
->h
= (acclib_handle_t
) 1;
6215 h
->name
= "unknown";
6216 for (i
= 0; i
< 10; i
++) {
6217 __ACCLIB_FUNCNAME(acc_pclock_read
)(h
, &c
);
6221 ACCLIB_PUBLIC(int, acc_pclock_open_default
) (acc_pclock_handle_p h
)
6223 if (__ACCLIB_FUNCNAME(acc_pclock_open
)(h
, ACC_PCLOCK_PROCESS_CPUTIME_ID
) == 0)
6225 if (__ACCLIB_FUNCNAME(acc_pclock_open
)(h
, ACC_PCLOCK_MONOTONIC
) == 0)
6227 if (__ACCLIB_FUNCNAME(acc_pclock_open
)(h
, ACC_PCLOCK_REALTIME
) == 0)
6229 if (__ACCLIB_FUNCNAME(acc_pclock_open
)(h
, ACC_PCLOCK_THREAD_CPUTIME_ID
) == 0)
6233 ACCLIB_PUBLIC(int, acc_pclock_close
) (acc_pclock_handle_p h
)
6235 h
->h
= (acclib_handle_t
) 0;
6239 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
6240 __ACCLIB_FUNCNAME(acc_perfctr_close
)(&h
->pch
);
6244 ACCLIB_PUBLIC(void, acc_pclock_read
) (acc_pclock_handle_p h
, acc_pclock_p c
)
6247 if (h
->gettime(h
, c
) == 0)
6251 #if defined(acc_int64l_t)
6259 #if !(ACC_CFG_NO_DOUBLE)
6260 ACCLIB_PUBLIC(double, acc_pclock_get_elapsed
) (acc_pclock_handle_p h
, const acc_pclock_p start
, const acc_pclock_p stop
)
6262 double tstop
, tstart
;
6267 #if defined(acc_int64l_t)
6268 tstop
= stop
->tv_sec
+ stop
->tv_nsec
/ 1000000000.0;
6269 tstart
= start
->tv_sec
+ start
->tv_nsec
/ 1000000000.0;
6271 tstop
= stop
->tv_sec_low
+ stop
->tv_nsec
/ 1000000000.0;
6272 tstart
= start
->tv_sec_low
+ start
->tv_nsec
/ 1000000000.0;
6274 return tstop
- tstart
;
6277 ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache
) (acc_pclock_handle_p h
, unsigned flags
)
6280 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
6281 return __ACCLIB_FUNCNAME(acc_perfctr_flush_cpu_cache
)(&h
->pch
, flags
);
6284 ACC_UNUSED(h
); ACC_UNUSED(flags
);
6287 #if defined(__ACCLIB_PCLOCK_NEED_WARN_POP)
6288 # if (ACC_CC_MSC && (_MSC_VER >= 1200))
6289 # pragma warning(pop)
6291 # error "__ACCLIB_PCLOCK_NEED_WARN_POP"
6293 # undef __ACCLIB_PCLOCK_NEED_WARN_POP
6296 #if defined(ACC_WANT_ACCLIB_UCLOCK)
6297 # undef ACC_WANT_ACCLIB_UCLOCK
6298 #define __ACCLIB_UCLOCK_CH_INCLUDED 1
6299 #if !defined(ACCLIB_PUBLIC)
6300 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6302 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
6303 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
6304 #elif (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
6305 # if ((ACC_CC_DMC && (__DMC__ < 0x838)) || ACC_CC_LCCWIN32)
6306 # define __ACCLIB_UCLOCK_USE_CLOCK 1
6308 # define __ACCLIB_UCLOCK_USE_WINMM 1
6309 # if (ACC_CC_MSC && (_MSC_VER >= 1200))
6310 # pragma warning(push)
6311 # define __ACCLIB_UCLOCK_NEED_WARN_POP 1
6313 # if (ACC_CC_MSC && (_MSC_VER >= 900))
6314 # pragma warning(disable: 4201)
6315 # elif (ACC_CC_MWERKS)
6316 # define LPUINT __ACC_MMSYSTEM_H_LPUINT
6319 # include <mmsystem.h>
6321 # if (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
6322 ACC_EXTERN_C
__declspec(dllimport
) unsigned long __stdcall
timeGetTime(void);
6324 ACC_EXTERN_C
unsigned long __stdcall
timeGetTime(void);
6328 # pragma DMC includelib "winmm.lib"
6329 # elif (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
6330 # pragma comment(lib, "winmm.lib")
6331 # elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3000))
6332 # pragma comment(lib, "winmm.lib")
6333 # elif (ACC_CC_SYMANTECC)
6334 # pragma SC includelib "winmm.lib"
6335 # elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 1050))
6336 # pragma library("winmm.lib")
6339 #elif (ACC_OS_CYGWIN || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN32 || ACC_OS_WIN64)
6340 # define __ACCLIB_UCLOCK_USE_CLOCK 1
6341 #elif (ACC_OS_CONSOLE) && defined(CLOCKS_PER_SEC)
6342 # define __ACCLIB_UCLOCK_USE_CLOCK 1
6343 #elif (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99) && defined(CLOCKS_PER_SEC)
6344 # define __ACCLIB_UCLOCK_USE_CLOCK 1
6346 #if (__ACCLIB_UCLOCK_USE_CLOCK) && !defined(CLOCKS_PER_SEC)
6347 # if defined(CLK_TCK)
6348 # define CLOCKS_PER_SEC CLK_TCK
6350 # undef __ACCLIB_UCLOCK_USE_CLOCK
6353 #if (__ACCLIB_UCLOCK_USE_GETRUSAGE)
6354 # if !defined(RUSAGE_SELF)
6355 # undef __ACCLIB_UCLOCK_USE_GETRUSAGE
6358 ACCLIB_PUBLIC(int, acc_uclock_open
) (acc_uclock_handle_p h
)
6361 #if (__ACCLIB_UCLOCK_USE_QPC)
6364 h
->h
= (acclib_handle_t
) 1;
6368 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
6370 if (h
->mode
== 0 && __ACCLIB_FUNCNAME(acc_perfctr_open
)(&h
->pch
) == 0)
6373 #if (__ACCLIB_UCLOCK_USE_QPC)
6375 if (h
->mode
== 0 && QueryPerformanceFrequency(&li
) != 0) {
6376 double d
= (double) li
.QuadPart
;
6377 if (d
> 0.0 && QueryPerformanceCounter(&li
) != 0) {
6383 for (i
= 0; i
< 10; i
++) {
6385 __ACCLIB_FUNCNAME(acc_uclock_read
)(h
, &c
);
6389 ACCLIB_PUBLIC(int, acc_uclock_close
) (acc_uclock_handle_p h
)
6391 h
->h
= (acclib_handle_t
) 0;
6394 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
6395 __ACCLIB_FUNCNAME(acc_perfctr_close
)(&h
->pch
);
6399 ACCLIB_PUBLIC(void, acc_uclock_read
) (acc_uclock_handle_p h
, acc_uclock_p c
)
6401 #if (__ACCLIB_UCLOCK_USE_RDTSC)
6402 __ACCLIB_FUNCNAME(acc_tsc_read
)((acc_uint32e_t
*) (void*) &c
->tsc
);
6404 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
6406 __ACCLIB_FUNCNAME(acc_perfctr_read
)(&h
->pch
, &c
->pcc
);
6407 if (h
->mode
> 0 && h
->mode
<= 2)
6411 #if (__ACCLIB_UCLOCK_USE_QPC)
6414 if (QueryPerformanceCounter(&li
) != 0) {
6415 c
->qpc
= (acc_int64l_t
) li
.QuadPart
;
6416 if (h
->mode
> 0 && h
->mode
<= 3)
6419 h
->mode
= 0; h
->qpf
= 0.0; c
->qpc
= 0;
6425 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
6426 # if (ACC_CC_AZTECC)
6430 ri
.x
.ax
= 0x2c00; int86(0x21, &ri
, &ro
);
6431 c
->ticks
.t32
= ro
.h
.ch
*60UL*60UL*100UL + ro
.h
.cl
*60UL*100UL + ro
.h
.dh
*100UL + ro
.h
.dl
;
6433 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
6434 c
->ticks
.t64
= uclock();
6435 #elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
6436 c
->ticks
.t64
= clock();
6437 #elif (__ACCLIB_UCLOCK_USE_CLOCK)
6438 c
->ticks
.t32
= clock();
6439 #elif (__ACCLIB_UCLOCK_USE_WINMM)
6440 c
->ticks
.t32
= timeGetTime();
6441 #elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
6443 if (getrusage(RUSAGE_SELF
, &ru
) != 0) c
->ticks
.td
= 0;
6444 else c
->ticks
.td
= ru
.ru_utime
.tv_sec
+ ru
.ru_utime
.tv_usec
/ 1000000.0;
6445 #elif (HAVE_GETTIMEOFDAY)
6447 if (gettimeofday(&tv
, 0) != 0) c
->ticks
.td
= 0;
6448 else c
->ticks
.td
= tv
.tv_sec
+ tv
.tv_usec
/ 1000000.0;
6455 ACCLIB_PUBLIC(double, acc_uclock_get_elapsed
) (acc_uclock_handle_p h
, const acc_uclock_p start
, const acc_uclock_p stop
)
6462 #if (__ACCLIB_UCLOCK_USE_RDTSC)
6464 if (!h
->name
) h
->name
= "rdtsc";
6465 d
= (double) ((acc_int64l_t
)stop
->tsc
- (acc_int64l_t
)start
->tsc
);
6466 return d
/ 1000000000.0;
6469 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
6470 if (h
->pch
.h
&& h
->mode
== 2) {
6471 if (!h
->name
) h
->name
= "perfctr";
6472 return __ACCLIB_FUNCNAME(acc_perfctr_get_elapsed
)(&h
->pch
, &start
->pcc
, &stop
->pcc
);
6475 #if (__ACCLIB_UCLOCK_USE_QPC)
6476 if (h
->qpf
> 0.0 && h
->mode
== 3) {
6477 if (!h
->name
) h
->name
= "qpc";
6478 if (start
->qpc
== 0 || stop
->qpc
== 0) return 0.0;
6479 return (double) (stop
->qpc
- start
->qpc
) / h
->qpf
;
6482 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
6484 if (!h
->name
) h
->name
= "uclock";
6485 d
= (double) (stop
->ticks
.t32
- start
->ticks
.t32
) / 100.0;
6486 if (d
< 0.0) d
+= 86400.0;
6487 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
6489 if (!h
->name
) h
->name
= "uclock";
6490 d
= (double) (stop
->ticks
.t64
- start
->ticks
.t64
) / (UCLOCKS_PER_SEC
);
6491 #elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
6493 if (!h
->name
) h
->name
= "clock";
6496 t
= stop
->ticks
.t64
- start
->ticks
.t64
;
6498 t
+= sizeof(clock_t) == 4 ? ACC_INT64_C(0x100000000) : ACC_INT64_C(0);
6499 d
= (double) t
/ (CLOCKS_PER_SEC
);
6501 #elif (__ACCLIB_UCLOCK_USE_CLOCK)
6503 if (!h
->name
) h
->name
= "clock";
6504 d
= (double) (stop
->ticks
.t32
- start
->ticks
.t32
) / (CLOCKS_PER_SEC
);
6505 #elif (__ACCLIB_UCLOCK_USE_WINMM)
6507 if (!h
->name
) h
->name
= "timeGetTime";
6508 d
= (double) (stop
->ticks
.t32
- start
->ticks
.t32
) / 1000.0;
6509 #elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
6511 if (!h
->name
) h
->name
= "getrusage";
6512 d
= stop
->ticks
.td
- start
->ticks
.td
;
6513 #elif (HAVE_GETTIMEOFDAY)
6515 if (!h
->name
) h
->name
= "gettimeofday";
6516 d
= stop
->ticks
.td
- start
->ticks
.td
;
6523 ACCLIB_PUBLIC(int, acc_uclock_flush_cpu_cache
) (acc_uclock_handle_p h
, unsigned flags
)
6526 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
6527 return __ACCLIB_FUNCNAME(acc_perfctr_flush_cpu_cache
)(&h
->pch
, flags
);
6530 ACC_UNUSED(h
); ACC_UNUSED(flags
);
6533 #if defined(__ACCLIB_UCLOCK_NEED_WARN_POP)
6534 # if (ACC_CC_MSC && (_MSC_VER >= 1200))
6535 # pragma warning(pop)
6537 # error "__ACCLIB_UCLOCK_NEED_WARN_POP"
6539 # undef __ACCLIB_UCLOCK_NEED_WARN_POP
6542 #if defined(ACC_WANT_ACCLIB_MISC)
6543 # undef ACC_WANT_ACCLIB_MISC
6544 #define __ACCLIB_MISC_CH_INCLUDED 1
6545 #if !defined(ACCLIB_PUBLIC)
6546 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6548 #if !defined(ACCLIB_PUBLIC_NOINLINE)
6549 # if !defined(__acc_noinline)
6550 # define ACCLIB_PUBLIC_NOINLINE(r,f) r __ACCLIB_FUNCNAME(f)
6551 # elif (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
6552 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
6554 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
6557 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
6559 # pragma warn(disable:2007)
6561 ACCLIB_PUBLIC(const char *, acc_getenv
) (const char *s
)
6566 ACC_UNUSED(s
); return (const char *) 0;
6569 ACCLIB_PUBLIC(acclib_handle_t
, acc_get_osfhandle
) (int fd
)
6574 return get_osfhandle(fd
);
6575 #elif (ACC_OS_EMX && defined(__RSXNT__))
6577 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
6579 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
6580 # if (ACC_CC_PELLESC && (__POCC__ < 280))
6582 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
6584 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
6585 return _os_handle(fd
);
6587 return _get_osfhandle(fd
);
6593 ACCLIB_PUBLIC(int, acc_set_binmode
) (int fd
, int binary
)
6595 #if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
6596 FILE* fp
; int old_binary
;
6597 if (fd
== STDIN_FILENO
) fp
= stdin
;
6598 else if (fd
== STDOUT_FILENO
) fp
= stdout
;
6599 else if (fd
== STDERR_FILENO
) fp
= stderr
;
6601 old_binary
= fp
->__mode
.__binary
;
6602 __set_binmode(fp
, binary
? 1 : 0);
6603 return old_binary
? 1 : 0;
6604 #elif (ACC_ARCH_M68K && ACC_OS_TOS)
6605 ACC_UNUSED(fd
); ACC_UNUSED(binary
);
6607 #elif (ACC_OS_DOS16 && (ACC_CC_AZTECC || ACC_CC_PACIFICC))
6608 ACC_UNUSED(fd
); ACC_UNUSED(binary
);
6610 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
6611 int r
; unsigned old_flags
= __djgpp_hwint_flags
;
6612 ACC_COMPILE_TIME_ASSERT(O_BINARY
> 0)
6613 ACC_COMPILE_TIME_ASSERT(O_TEXT
> 0)
6614 if (fd
< 0) return -1;
6615 r
= setmode(fd
, binary
? O_BINARY
: O_TEXT
);
6616 if ((old_flags
& 1u) != (__djgpp_hwint_flags
& 1u))
6617 __djgpp_set_ctrl_c(!(old_flags
& 1));
6618 if (r
== -1) return -1;
6619 return (r
& O_TEXT
) ? 0 : 1;
6620 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
6621 if (fd
< 0) return -1;
6624 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
6626 if (fd
== fileno(stdin
)) fp
= stdin
;
6627 else if (fd
== fileno(stdout
)) fp
= stdout
;
6628 else if (fd
== fileno(stderr
)) fp
= stderr
;
6630 r
= _setmode(fp
, binary
? _BINARY
: _TEXT
);
6631 if (r
== -1) return -1;
6632 return (r
& _BINARY
) ? 1 : 0;
6633 #elif (ACC_OS_WIN32 && ACC_CC_MWERKS) && defined(__MSL__)
6634 ACC_UNUSED(fd
); ACC_UNUSED(binary
);
6636 #elif (ACC_OS_CYGWIN && (ACC_CC_GNUC < 0x025a00ul))
6637 ACC_UNUSED(fd
); ACC_UNUSED(binary
);
6639 #elif (ACC_OS_CYGWIN || ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
6641 #if !(ACC_CC_ZORTECHC)
6642 ACC_COMPILE_TIME_ASSERT(O_BINARY
> 0)
6644 ACC_COMPILE_TIME_ASSERT(O_TEXT
> 0)
6645 if (fd
< 0) return -1;
6646 r
= setmode(fd
, binary
? O_BINARY
: O_TEXT
);
6647 if (r
== -1) return -1;
6648 return (r
& O_TEXT
) ? 0 : 1;
6650 if (fd
< 0) return -1;
6655 ACCLIB_PUBLIC(int, acc_isatty
) (int fd
)
6659 #if (ACC_OS_DOS16 && !(ACC_CC_AZTECC))
6662 ri
.x
.ax
= 0x4400; ri
.x
.bx
= fd
;
6663 int86(0x21, &ri
, &ro
);
6664 if ((ro
.x
.cflag
& 1) == 0)
6665 if ((ro
.x
.ax
& 0x83) != 0x83)
6668 #elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)
6671 ri
.w
.ax
= 0x4400; ri
.w
.bx
= (unsigned short) fd
;
6672 int386(0x21, &ri
, &ro
);
6673 if ((ro
.w
.cflag
& 1) == 0)
6674 if ((ro
.w
.ax
& 0x83) != 0x83)
6677 #elif (ACC_HAVE_WINDOWS_H)
6679 acclib_handle_t h
= __ACCLIB_FUNCNAME(acc_get_osfhandle
)(fd
);
6680 if ((HANDLE
)h
!= INVALID_HANDLE_VALUE
)
6683 if (GetConsoleMode((HANDLE
)h
, &d
) == 0)
6689 return (isatty(fd
)) ? 1 : 0;
6694 ACCLIB_PUBLIC(int, acc_mkdir
) (const char* name
, unsigned mode
)
6697 ACC_UNUSED(name
); ACC_UNUSED(mode
);
6699 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
6701 return Dcreate(name
);
6702 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
6703 return mkdir(name
, mode
);
6704 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
6705 return mkdir(name
, mode
);
6706 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
6708 # if (ACC_CC_HIGHC || ACC_CC_PACIFICC)
6709 return mkdir((char*) name
);
6713 #elif (ACC_CC_WATCOMC)
6714 return mkdir(name
, (mode_t
) mode
);
6716 return mkdir(name
, mode
);
6719 ACCLIB_PUBLIC(int, acc_rmdir
) (const char* name
)
6724 #elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
6725 return rmdir((char *) name
);
6730 #if defined(acc_int32e_t)
6731 ACCLIB_PUBLIC(acc_int32e_t
, acc_muldiv32s
) (acc_int32e_t a
, acc_int32e_t b
, acc_int32e_t x
)
6734 if __acc_likely(x
!= 0)
6736 #if defined(acc_int64l_t)
6737 r
= (acc_int32e_t
) (((acc_int64l_t
) a
* b
) / x
);
6739 ACC_UNUSED(a
); ACC_UNUSED(b
);
6744 ACCLIB_PUBLIC(acc_uint32e_t
, acc_muldiv32u
) (acc_uint32e_t a
, acc_uint32e_t b
, acc_uint32e_t x
)
6746 acc_uint32e_t r
= 0;
6747 if __acc_likely(x
!= 0)
6749 #if defined(acc_int64l_t)
6750 r
= (acc_uint32e_t
) (((acc_uint64l_t
) a
* b
) / x
);
6752 ACC_UNUSED(a
); ACC_UNUSED(b
);
6759 ACCLIB_PUBLIC_NOINLINE(int, acc_syscall_clock_gettime
) (int c
)
6764 ACC_EXTERN_C
void __far __pascal
DebugBreak(void);
6766 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break
) (void)
6770 #elif (ACC_ARCH_I086)
6771 #elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
6773 #elif (ACC_CFG_NO_INLINE_ASM) && (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
6775 #elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6776 __asm__
__volatile__("int $3\n" : : : __ACC_ASM_CLOBBER
);
6777 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
6779 #elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
6782 * (volatile unsigned long *) (volatile void *) (size_t) 0x1 = ~0ul;
6785 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop
) (void)
6788 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query
) (void)
6790 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6792 __asm__
__volatile__("pushf\n pop %0\n" : "=a" (r
) : : __ACC_ASM_CLOBBER
);
6793 return (int)(r
>> 18) & 1;
6794 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
6801 return (int)(r
>> 18) & 1;
6806 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable
) (int v
)
6809 #if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
6811 __asm__
__volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER
);
6813 __asm__
__volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER
);
6816 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6818 __asm__
__volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER
);
6820 __asm__
__volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER
);
6823 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
6826 or dword ptr
[esp
],262144
6830 and dword ptr
[esp
],-262145
6837 ACC_UNUSED(v
); return r
;
6839 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu
) (void)
6842 #if (ACC_OS_POSIX_LINUX || ACC_OS_WIN32 || ACC_OS_WIN64)
6844 p
= __ACCLIB_FUNCNAME(acc_getenv
)("ACC_ENV_RUNNING_ON_QEMU");
6846 if (p
[0] == 0) r
= 0;
6847 else if ((p
[0] >= '0' && p
[0] <= '9') && p
[1] == 0) r
= p
[0] - '0';
6853 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind
) (void)
6855 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6856 volatile unsigned long args
[5] = { 0x1001, 0, 0, 0, 0 };
6857 unsigned long r
= 0;
6858 __asm__
__volatile__(".byte 0xc1,0xc0,0x1d,0xc1,0xc0,0x03,0xc1,0xc8,0x1b,0xc1,0xc8,0x05,0xc1,0xc0,0x0d,0xc1,0xc0,0x13\n" : "=d" (r
) : "a" (&args
[0]), "d" (r
) : __ACC_ASM_CLOBBER
);
6859 return (unsigned) r
;
6864 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
6868 #if defined(ACC_WANT_ACCLIB_WILDARGV)
6869 # undef ACC_WANT_ACCLIB_WILDARGV
6870 #define __ACCLIB_WILDARGV_CH_INCLUDED 1
6871 #if !defined(ACCLIB_PUBLIC)
6872 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6874 #if (ACC_OS_DOS16 || ACC_OS216 || ACC_OS_WIN16)
6875 #if 0 && (ACC_CC_MSC)
6876 ACC_EXTERN_C
int __acc_cdecl
__setargv(void);
6877 ACC_EXTERN_C
int __acc_cdecl
_setargv(void);
6878 ACC_EXTERN_C
int __acc_cdecl
_setargv(void) { return __setargv(); }
6881 #if (ACC_OS_WIN32 || ACC_OS_WIN64)
6882 #if (ACC_CC_INTELC || ACC_CC_MSC)
6883 ACC_EXTERN_C
int __acc_cdecl
__setargv(void);
6884 ACC_EXTERN_C
int __acc_cdecl
_setargv(void);
6885 ACC_EXTERN_C
int __acc_cdecl
_setargv(void) { return __setargv(); }
6889 #define __ACCLIB_HAVE_ACC_WILDARGV 1
6890 ACCLIB_PUBLIC(void, acc_wildargv
) (int* argc
, char*** argv
)
6893 _response(argc
, argv
);
6894 _wildcard(argc
, argv
);
6898 #if (ACC_OS_CONSOLE_PSP) && defined(__PSPSDK_DEBUG__)
6899 #define __ACCLIB_HAVE_ACC_WILDARGV 1
6900 ACC_EXTERN_C
int acc_psp_init_module(int*, char***, int);
6901 ACCLIB_PUBLIC(void, acc_wildargv
) (int* argc
, char*** argv
)
6903 acc_psp_init_module(argc
, argv
, -1);
6906 #if !(__ACCLIB_HAVE_ACC_WILDARGV)
6907 #define __ACCLIB_HAVE_ACC_WILDARGV 1
6908 ACCLIB_PUBLIC(void, acc_wildargv
) (int* argc
, char*** argv
)
6910 #if 1 && (ACC_ARCH_I086PM)
6911 if (ACC_MM_AHSHIFT
!= 3) { exit(1); }
6912 #elif 1 && (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
6914 if (isatty(1)) __set_binmode(stdout
, 0);
6915 if (isatty(2)) __set_binmode(stderr
, 0);
6917 ACC_UNUSED(argc
); ACC_UNUSED(argv
);
6922 /* vim:set ts=4 et: */