diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-22 19:23:05 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-22 19:23:05 +0000 |
commit | 3a7c3680df1c3fa4351f01d54c811f4c075defe3 (patch) | |
tree | 239508eee576e0a370dc1c3feb1e8b63a73a1950 /gcc/config/ia64/ia64.h | |
parent | 70e50a47daf994341f274eb851cf9c6a58304e28 (diff) | |
download | gcc-3a7c3680df1c3fa4351f01d54c811f4c075defe3.tar.gz |
PR target/3177
* config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
* config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
(ia64_expand_prologue): Look at int_regs, not words, for number
of incomming int regs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51180 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64/ia64.h')
-rw-r--r-- | gcc/config/ia64/ia64.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 8a4a759ec52..8e3eaeea8bf 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -1269,6 +1269,7 @@ enum reg_class typedef struct ia64_args { int words; /* # words of arguments so far */ + int int_regs; /* # GR registers used so far */ int fp_regs; /* # FR registers used so far */ int prototype; /* whether function prototyped */ } CUMULATIVE_ARGS; @@ -1279,6 +1280,7 @@ typedef struct ia64_args #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT) \ do { \ (CUM).words = 0; \ + (CUM).int_regs = 0; \ (CUM).fp_regs = 0; \ (CUM).prototype = ((FNTYPE) && TYPE_ARG_TYPES (FNTYPE)) || (LIBNAME); \ } while (0) @@ -1292,6 +1294,7 @@ do { \ #define INIT_CUMULATIVE_INCOMING_ARGS(CUM, FNTYPE, LIBNAME) \ do { \ (CUM).words = 0; \ + (CUM).int_regs = 0; \ (CUM).fp_regs = 0; \ (CUM).prototype = 1; \ } while (0) |