(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
aapcs64/
va_arg-12.c
       1  /* Test AAPCS64 layout and __builtin_va_arg.
       2  
       3     Pass by reference.  */
       4  
       5  /* { dg-do run { target aarch64*-*-* } } */
       6  
       7  #ifndef IN_FRAMEWORK
       8  #define AAPCS64_TEST_STDARG
       9  #define TESTFILE "va_arg-12.c"
      10  
      11  struct z
      12  {
      13    char c;
      14    short s;
      15    int ia[4];
      16  };
      17  
      18  struct z a, b, c;
      19  
      20  #define HAS_DATA_INIT_FUNC
      21  void init_data ()
      22  {
      23    a.c = 0x11;
      24    a.s = 0x2222;
      25    a.ia[0] = 0x33333333;
      26    a.ia[1] = 0x44444444;
      27    a.ia[2] = 0x55555555;
      28    a.ia[3] = 0x66666666;
      29  
      30    b.c = 0x77;
      31    b.s = 0x8888;
      32    b.ia[0] = 0x99999999;
      33    b.ia[1] = 0xaaaaaaaa;
      34    b.ia[2] = 0xbbbbbbbb;
      35    b.ia[3] = 0xcccccccc;
      36  
      37    c.c = 0xdd;
      38    c.s = 0xeeee;
      39    c.ia[0] = 0xffffffff;
      40    c.ia[1] = 0x12121212;
      41    c.ia[2] = 0x23232323;
      42    c.ia[3] = 0x34343434;
      43  }
      44  
      45  #include "abitest.h"
      46  #else
      47    PTR(struct z, a, X0, 0)
      48    ARG(int, 0xdeadbeef, W1, 1)
      49    ARG(int, 0xcafebabe, W2, 2)
      50    ARG(int, 0xdeadbabe, W3, 3)
      51    ARG(int, 0xcafebeef, W4, 4)
      52    ARG(int, 0xbeefdead, W5, 5)
      53    ARG(int, 0xbabecafe, W6, LAST_NAMED_ARG_ID)
      54    DOTS
      55    PTR_ANON(struct z, b, X7, 7)
      56    PTR_ANON(struct z, c, STACK, 8)
      57  #ifndef __AAPCS64_BIG_ENDIAN__
      58    ANON(int, 0xbabedead, STACK+8, 9)
      59  #else
      60    ANON(int, 0xbabedead, STACK+12, 9)
      61  #endif
      62    LAST_ANON(double, 123.45, D0, 10)
      63  
      64  #endif