1#include <stdarg.h> 2 3#include "compat-common.h" 4 5#ifdef SKIP_VA 6const int test_va = 0; 7#else 8const int test_va = 1; 9#endif 10 11#include "fp2-struct-defs.h" 12#include "fp2-struct-init.h" 13 14#define T(TYPE) \ 15extern TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE; \ 16extern TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE; \ 17extern TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE; \ 18extern TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE; \ 19 \ 20extern void check##TYPE (TYPE x, double y); \ 21 \ 22void \ 23checkg##TYPE (void) \ 24{ \ 25 check##TYPE (g01##TYPE, 1.0); \ 26 check##TYPE (g02##TYPE, 2.0); \ 27 check##TYPE (g03##TYPE, 3.0); \ 28 check##TYPE (g04##TYPE, 4.0); \ 29 check##TYPE (g05##TYPE, 5.0); \ 30 check##TYPE (g06##TYPE, 6.0); \ 31 check##TYPE (g07##TYPE, 7.0); \ 32 check##TYPE (g08##TYPE, 8.0); \ 33 check##TYPE (g09##TYPE, 9.0); \ 34 check##TYPE (g10##TYPE, 10.0); \ 35 check##TYPE (g11##TYPE, 11.0); \ 36 check##TYPE (g12##TYPE, 12.0); \ 37 check##TYPE (g13##TYPE, 13.0); \ 38 check##TYPE (g14##TYPE, 14.0); \ 39 check##TYPE (g15##TYPE, 15.0); \ 40 check##TYPE (g16##TYPE, 16.0); \ 41} \ 42 \ 43TYPE \ 44test0##TYPE (void) \ 45{ \ 46 return g01##TYPE; \ 47} \ 48 \ 49TYPE \ 50test1##TYPE (TYPE x01) \ 51{ \ 52 return x01; \ 53} \ 54 \ 55TYPE \ 56testva##TYPE (int n, ...) \ 57{ \ 58 int i; \ 59 TYPE rslt; \ 60 va_list ap; \ 61 if (test_va) \ 62 { \ 63 va_start (ap, n); \ 64 for (i = 0; i < n; i++) \ 65 { \ 66 rslt = va_arg (ap, TYPE); \ 67 } \ 68 va_end (ap); \ 69 } \ 70 return rslt; \ 71} 72 73T(Sfd) 74T(Sfl) 75T(Sdf) 76T(Sdl) 77T(Slf) 78T(Sld) 79T(Sfdl) 80T(Sfld) 81T(Sdfl) 82T(Sdlf) 83T(Slfd) 84T(Sldf) 85