* config/pa/xm-pa.h: New file.
[deliverable/binutils-gdb.git] / gdb / config / pa / xm-pa.h
1 /* Definitions for all PA machines. */
2
3 #define MAKEVA_START(list) \
4 list->argindex = list->nargs * list->max_arg_size;
5
6 /* In addition to having the arguments passed with the first ones at the
7 highest memory addresses, the pa also apparently aligns each argument
8 to the size of that argument. This only works because the caller only
9 deals in 4 and 8 byte arguments. If we wanted to handle args > 8 bytes,
10 we would have to pass the address by reference. */
11 #define MAKEVA_ARG(list, argaddr, argsize) \
12 list->argindex = (list->argindex - argsize) & ~ (argsize - 1); \
13 memcpy (&list->arg_bytes[list->argindex], argaddr, argsize);
14
15 /* Apparently the address of the arglist is the address right after the args
16 (which is what you'd expect). */
17 #define MAKEVA_END(list) \
18 return (va_list) (list->arg_bytes \
19 + list->nargs * list->max_arg_size)
This page took 0.031165 seconds and 5 git commands to generate.