summaryrefslogtreecommitdiff
path: root/gcc/print-rtl.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-24 22:45:58 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-24 22:45:58 +0000
commitca74b9404fb3bd168fe06ed4fb5a68317abb099c (patch)
tree1090cf96c575f2f136a1b44c8d8d83d0bc0b04d3 /gcc/print-rtl.c
parenta6169f0673e39793d60264d93c95b6cee24fa08a (diff)
downloadgcc-ca74b9404fb3bd168fe06ed4fb5a68317abb099c.tar.gz
* emit-rtl.c (reg_attrs_htab): New static variable.
(reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static functions. (reg_rtx): Do not maintain regno_decl. (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx, set_mem_attrs_from_reg): New global function. (init_emit): Do not initialize regno_decl. (init_emit_once): initialize reg_attrs_htab. * final.c (alter_subreg): Do not replace REG by SUBREG. (gen_mem_expr_from_op): Improve output. (output_asm_operands): Likewise. * function.c (assign_params): Do not set REGNO_DECL. * function.h (struct function): Kill regno_decl. (REGNO_DECL): Kill. * gengtype.c (adjust_field_rtx_def): Handle new field of reg. * print_rtl.c (print_rtx): Output REG information. * regclass.c (reg_scan_mark_refs): Update attrs. * reload1.c (alter_reg): Likewise. * simplify_rtx.c (simplify_subreg): Likewise. * stmt.c (expand_decl): Likewise. * rtl.def (REG): Add new field. * rtl.h (struct reg_attrs): New. (rtunion_def): At rtreg. (X0MEMATTR): Add checking. (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro. (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset): Declare. * tree.h (SET_DECL_RTL): Call set_decl_rtl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61741 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/print-rtl.c')
-rw-r--r--gcc/print-rtl.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index f61b09123d1..6930e76c5aa 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -409,6 +409,23 @@ print_rtx (in_rtx)
else
fprintf (outfile, " %d", value);
+ if (GET_CODE (in_rtx) == REG && REG_ATTRS (in_rtx))
+ {
+ fputs (" [", outfile);
+ if (ORIGINAL_REGNO (in_rtx) != REGNO (in_rtx))
+ fprintf (outfile, "orig:%i", ORIGINAL_REGNO (in_rtx));
+ if (REG_EXPR (in_rtx))
+ print_mem_expr (outfile, REG_EXPR (in_rtx));
+
+ if (REG_OFFSET (in_rtx))
+ {
+ fputc ('+', outfile);
+ fprintf (outfile, HOST_WIDE_INT_PRINT_DEC,
+ REG_OFFSET (in_rtx));
+ }
+ fputs (" ]", outfile);
+ }
+
if (is_insn && &INSN_CODE (in_rtx) == &XINT (in_rtx, i)
&& XINT (in_rtx, i) >= 0
&& (name = get_insn_name (XINT (in_rtx, i))) != NULL)