aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm.h
diff options
context:
space:
mode:
authorJeroen Dobbelaere <jeroen.dobbelaere@acunia.com>2002-11-15 11:21:36 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2002-11-15 11:21:36 +0000
commit1741620c2673f78b1e754664c84242fb12240e2b (patch)
treef67c410d927ea568413f1da37eb5bc0959afecec /gcc/config/arm/arm.h
parent8e746279f38c69339f8a694e174e28c70faa5588 (diff)
downloadgcc-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.h12
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. */