diff options
author | Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com> | 2002-11-15 11:21:36 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2002-11-15 11:21:36 +0000 |
commit | 1741620c2673f78b1e754664c84242fb12240e2b (patch) | |
tree | f67c410d927ea568413f1da37eb5bc0959afecec /gcc/config/arm/arm.h | |
parent | 8e746279f38c69339f8a694e174e28c70faa5588 (diff) | |
download | gcc-1741620c2673f78b1e754664c84242fb12240e2b.zip gcc-1741620c2673f78b1e754664c84242fb12240e2b.tar.gz gcc-1741620c2673f78b1e754664c84242fb12240e2b.tar.bz2 |
Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
* config/arm/arm.h (EXPAND_BUILTIN_VA_ARG,
FUNCTION_ARG_PASS_BY_REFERENCE): Define.
* config/arm/arm.c (arm_va_arg,
arm_function_arg_pass_by_reference): New.
* config/arm/arm-protos.h: Add prototypes.
From-SVN: r59127
Diffstat (limited to 'gcc/config/arm/arm.h')
-rw-r--r-- | gcc/config/arm/arm.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 13da6f7..eda2d47 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -1487,6 +1487,14 @@ typedef struct && (NUM_ARG_REGS < ((CUM).nregs + ARM_NUM_REGS2 (MODE, TYPE))) \ ? NUM_ARG_REGS - (CUM).nregs : 0) +/* A C expression that indicates when an argument must be passed by + reference. If nonzero for an argument, a copy of that argument is + made in memory and a pointer to the argument is passed instead of + the argument itself. The pointer is passed in whatever way is + appropriate for passing a pointer to that type. */ +#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \ + arm_function_arg_pass_by_reference (&CUM, MODE, TYPE, NAMED) + /* Initialize a variable CUM of type CUMULATIVE_ARGS for a call to a function whose data type is FNTYPE. For a library call, FNTYPE is 0. @@ -1504,6 +1512,10 @@ typedef struct On the ARM, r0-r3 are used to pass args. */ #define FUNCTION_ARG_REGNO_P(REGNO) (IN_RANGE ((REGNO), 0, 3)) +/* Implement `va_arg'. */ +#define EXPAND_BUILTIN_VA_ARG(valist, type) \ + arm_va_arg (valist, type) + /* Tail calling. */ |