The use of CFA_FRAME_BASE_OFFSET and ARG_POINTER_CFA_OFFSET macros leads to wrong offset calculation for DW_OP_fbreg constructions. Remove them.
gcc/ 2016-10-17 Claudiu Zissulescu <claz...@synopsys.com> * config/arc/arc-protos.h (arc_decl_pretend_args): Remove. * config/arc/arc.c (arc_decl_pretend_args): Likewise. * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise. (ARG_POINTER_CFA_OFFSET): Likewise. --- gcc/config/arc/arc-protos.h | 1 - gcc/config/arc/arc.c | 11 ----------- gcc/config/arc/arc.h | 5 ----- 3 files changed, 17 deletions(-) diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index 55a7bf7..4ff8e9b 100644 --- a/gcc/config/arc/arc-protos.h +++ b/gcc/config/arc/arc-protos.h @@ -109,7 +109,6 @@ extern int arc_label_align (rtx_insn *label); extern bool arc_need_delay (rtx_insn *insn); extern bool arc_text_label (rtx_insn *insn); -extern int arc_decl_pretend_args (tree decl); extern bool arc_short_comparison_p (rtx, int); extern bool arc_epilogue_uses (int regno); extern bool arc_eh_uses (int regno); diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 165f3d6..d8ac6a6 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -9470,17 +9470,6 @@ arc_text_label (rtx_insn *label) return false; } -/* Return the size of the pretend args for DECL. */ - -int -arc_decl_pretend_args (tree decl) -{ - /* struct function is in DECL_STRUCT_FUNCTION (decl), but no - pretend_args there... See PR38391. */ - gcc_assert (decl == current_function_decl); - return crtl->args.pretend_args_size; -} - /* Without this, gcc.dg/tree-prof/bb-reorg.c fails to assemble when compiling with -O2 -freorder-blocks-and-partition -fprofile-use -D_PROFILE_USE; delay branch scheduling then follows a crossing jump diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index 24c2346..0237e66 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -1584,11 +1584,6 @@ extern enum arc_function_type arc_compute_function_type (struct function *); #define INIT_EXPANDERS arc_init_expanders () -#define CFA_FRAME_BASE_OFFSET(FUNDECL) (-arc_decl_pretend_args ((FUNDECL))) - -#define ARG_POINTER_CFA_OFFSET(FNDECL) \ - (FIRST_PARM_OFFSET (FNDECL) + arc_decl_pretend_args ((FNDECL))) - enum { ARC_LRA_PRIORITY_NONE, ARC_LRA_PRIORITY_NONCOMPACT, ARC_LRA_PRIORITY_COMPACT -- 1.9.1