Commit 511fce8b by Steve Chamberlain Committed by Jeff Law

pj.c (pj_expand_prologue): current_function->args_info is now current_function_args_info.

        * pj.c (pj_expand_prologue): current_function->args_info is
        now current_function_args_info.

        * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
        LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
        ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.

From-SVN: r32409
parent 0b3f0ff8
2000-03-07 Steve Chamberlain <sac@pobox.com>
* pj.c (pj_expand_prologue): current_function->args_info is
now current_function_args_info.
* pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
......
...@@ -900,18 +900,18 @@ pj_expand_prologue () ...@@ -900,18 +900,18 @@ pj_expand_prologue ()
{ {
int i; int i;
int off = 0; int off = 0;
int arg_words = current_function->args_info.named_words; int arg_words = current_function_args_info.named_words;
memset (pj_si_vars_offset_vec, -1, sizeof (pj_si_vars_offset_vec)); memset (pj_si_vars_offset_vec, -1, sizeof (pj_si_vars_offset_vec));
memset (pj_di_vars_offset_vec, -1, sizeof (pj_di_vars_offset_vec)); memset (pj_di_vars_offset_vec, -1, sizeof (pj_di_vars_offset_vec));
/* Work out the register numbers of the named arguments. */ /* Work out the register numbers of the named arguments. */
for (i = 0; i < current_function->args_info.named_words; i++) for (i = 0; i < current_function_args_info.named_words; i++)
{ {
pj_debugreg_renumber_vec[I0_REG + i] pj_debugreg_renumber_vec[I0_REG + i]
= off + R0_REG + current_function->args_info.arg_adjust[i]; = off + R0_REG + current_function_args_info.arg_adjust[i];
pj_si_vars_offset_vec[I0_REG + i] pj_si_vars_offset_vec[I0_REG + i]
= off + current_function->args_info.arg_adjust[i]; = off + current_function_args_info.arg_adjust[i];
pj_di_vars_offset_vec[I0_REG + i] = off; pj_di_vars_offset_vec[I0_REG + i] = off;
off++; off++;
} }
...@@ -1009,7 +1009,7 @@ pj_expand_epilogue () ...@@ -1009,7 +1009,7 @@ pj_expand_epilogue ()
if (current_function_varargs || current_function_stdarg) if (current_function_varargs || current_function_stdarg)
emit_insn (gen_varargs_finish emit_insn (gen_varargs_finish
(GEN_INT (current_function->args_info.named_words + 1))); (GEN_INT (current_function_args_info.named_words + 1)));
emit_insn (gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode, OPTOP_REG))); emit_insn (gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode, OPTOP_REG)));
} }
......
...@@ -923,6 +923,11 @@ struct pj_args ...@@ -923,6 +923,11 @@ struct pj_args
#define LOAD_EXTEND_OP(MODE) SIGN_EXTEND #define LOAD_EXTEND_OP(MODE) SIGN_EXTEND
/* We assume that the store-condition-codes instructions store 0 for false
and some other value for true. This is the value stored for true. */
#define STORE_FLAG_VALUE 1
/* Define if loading short immediate values into registers sign extends. */ /* Define if loading short immediate values into registers sign extends. */
#define SHORT_IMMEDIATES_SIGN_EXTEND #define SHORT_IMMEDIATES_SIGN_EXTEND
...@@ -1144,14 +1149,21 @@ do { fputs (current_function_varargs || current_function_stdarg \ ...@@ -1144,14 +1149,21 @@ do { fputs (current_function_varargs || current_function_stdarg \
/* The prefix to add to user-visible assembler symbols. */ /* The prefix to add to user-visible assembler symbols. */
//#define USER_LABEL_PREFIX "" #define USER_LABEL_PREFIX ""
/* The prefix to add to an internally generated label. */ /* The prefix to add to an internally generated label. */
//#define LOCAL_LABEL_PREFIX "" #define LOCAL_LABEL_PREFIX ""
/* Construct a private name. */ /* Make an internal label into a string. */
#define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \
sprintf ((STRING), "*%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))
/* Output an internal label definition. */
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
asm_fprintf ((FILE), "%L%s%d:\n", (PREFIX), (NUM))
/* Construct a private name. */
#define ASM_FORMAT_PRIVATE_NAME(OUTVAR,NAME,NUMBER) \ #define ASM_FORMAT_PRIVATE_NAME(OUTVAR,NAME,NUMBER) \
((OUTVAR) = (char *) alloca (strlen (NAME) + 10), \ ((OUTVAR) = (char *) alloca (strlen (NAME) + 10), \
sprintf ((OUTVAR), "%s.%d", (NAME), (NUMBER))) sprintf ((OUTVAR), "%s.%d", (NAME), (NUMBER)))
...@@ -1199,6 +1211,12 @@ do { char dstr[30]; \ ...@@ -1199,6 +1211,12 @@ do { char dstr[30]; \
#define ASM_OUTPUT_BYTE(STREAM, VALUE) \ #define ASM_OUTPUT_BYTE(STREAM, VALUE) \
fprintf ((STREAM), "\t.byte\t%d\n", (VALUE)) fprintf ((STREAM), "\t.byte\t%d\n", (VALUE))
/* This is how to output an assembler line
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
fprintf ((FILE), "\t.space %d\n", (SIZE))
/* This says how to output an assembler line /* This says how to output an assembler line
to define a global common symbol. */ to define a global common symbol. */
...@@ -1322,8 +1340,8 @@ do { \ ...@@ -1322,8 +1340,8 @@ do { \
/* Define the codes that are matched by predicates in pj.c. */ /* Define the codes that are matched by predicates in pj.c. */
#define PREDICATE_CODES \ #define PREDICATE_CODES \
{"pj_dest_operand", {SUBREG, REG, MEM,}}, \ {"pj_dest_operand", {SUBREG, REG, MEM}}, \
{"pj_signed_comparison_operator", {EQ, NE, LE, LT, GE, GT}}, \ {"pj_signed_comparison_operator", {EQ, NE, LE, LT, GE,GT}}, \
{"pj_unsigned_comparison_operator", {LEU, LTU, GEU, GTU}}, \ {"pj_unsigned_comparison_operator", {LEU, LTU, GEU, GTU}}, \
{"pj_source_operand", {CONST_INT, CONST_DOUBLE, CONST, \ {"pj_source_operand", {CONST_INT, CONST_DOUBLE, CONST, \
SYMBOL_REF, LABEL_REF, SUBREG, \ SYMBOL_REF, LABEL_REF, SUBREG, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment