* config/pa/xm-pa.h: New file.

* config/pa/xm-hppa{b,h}.h: Include it.
This commit is contained in:
Jim Kingdon 1993-06-28 22:35:18 +00:00
parent c702007b17
commit f9dd88b41e
4 changed files with 24 additions and 0 deletions

View file

@ -32,6 +32,7 @@ tm-hppab.h
tm-hppah.h
xm-hppab.h
xm-hppah.h
xm-pa.h
Things-to-lose:

View file

@ -24,6 +24,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define HOST_BYTE_ORDER BIG_ENDIAN
#include "pa/xm-pa.h"
/* Avoid "INT_MIN redefined" warnings -- by defining it here, exactly
the same as in the system <machine/machtypes.h> file. */
#undef INT_MIN

View file

@ -23,6 +23,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Host is big-endian. */
#define HOST_BYTE_ORDER BIG_ENDIAN
#include "pa/xm-pa.h"
/* Avoid "INT_MIN redefined" warnings -- by defining it here, exactly
the same as in the system <machine/machtypes.h> file. */
#undef INT_MIN

19
gdb/config/pa/xm-pa.h Normal file
View file

@ -0,0 +1,19 @@
/* Definitions for all PA machines. */
#define MAKEVA_START(list) \
list->argindex = list->nargs * list->max_arg_size;
/* In addition to having the arguments passed with the first ones at the
highest memory addresses, the pa also apparently aligns each argument
to the size of that argument. This only works because the caller only
deals in 4 and 8 byte arguments. If we wanted to handle args > 8 bytes,
we would have to pass the address by reference. */
#define MAKEVA_ARG(list, argaddr, argsize) \
list->argindex = (list->argindex - argsize) & ~ (argsize - 1); \
memcpy (&list->arg_bytes[list->argindex], argaddr, argsize);
/* Apparently the address of the arglist is the address right after the args
(which is what you'd expect). */
#define MAKEVA_END(list) \
return (va_list) (list->arg_bytes \
+ list->nargs * list->max_arg_size)