diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-02 08:16:14 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-02 08:16:14 +0000 |
commit | 766ea20013c206911829dcc3f01705578656d0f8 (patch) | |
tree | bde0a90afafe80c675b78627a527471633716094 /gcc/config/sparc | |
parent | 50ebd62c4be721e1ff9751b6029e04050bad6746 (diff) | |
download | gcc-766ea20013c206911829dcc3f01705578656d0f8.tar.gz |
2012-07-02 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 189108 using svnmerge
[gcc/]
2012-07-02 Basile Starynkevitch <basile@starynkevitch.net>
* Makefile.in (MELT_REVISION_STR): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@189109 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r-- | gcc/config/sparc/sparc.c | 19 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.h | 3 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.md | 2 |
3 files changed, 10 insertions, 14 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 08c9cc891b0..6835d6914c7 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -470,7 +470,7 @@ struct GTY(()) machine_function /* True if the current function is leaf and uses only leaf regs, so that the SPARC leaf function optimization can be applied. - Private version of current_function_uses_only_leaf_regs, see + Private version of crtl->uses_only_leaf_regs, see sparc_expand_prologue for the rationale. */ int leaf_function_p; @@ -4558,8 +4558,7 @@ sparc_initial_elimination_offset (int to) int offset; if (to == STACK_POINTER_REGNUM) - offset = sparc_compute_frame_size (get_frame_size (), - current_function_is_leaf); + offset = sparc_compute_frame_size (get_frame_size (), crtl->is_leaf); else offset = 0; @@ -4983,7 +4982,7 @@ sparc_expand_prologue (void) HOST_WIDE_INT size; rtx insn; - /* Compute a snapshot of current_function_uses_only_leaf_regs. Relying + /* Compute a snapshot of crtl->uses_only_leaf_regs. Relying on the final value of the flag means deferring the prologue/epilogue expansion until just before the second scheduling pass, which is too late to emit multiple epilogues or return insns. @@ -5006,7 +5005,7 @@ sparc_expand_prologue (void) example, the regrename pass has special provisions to not rename to non-leaf registers in a leaf function. */ sparc_leaf_function_p - = optimize > 0 && current_function_is_leaf && only_leaf_regs_used (); + = optimize > 0 && crtl->is_leaf && only_leaf_regs_used (); size = sparc_compute_frame_size (get_frame_size(), sparc_leaf_function_p); @@ -5108,7 +5107,7 @@ sparc_flat_expand_prologue (void) HOST_WIDE_INT size; rtx insn; - sparc_leaf_function_p = optimize > 0 && current_function_is_leaf; + sparc_leaf_function_p = optimize > 0 && crtl->is_leaf; size = sparc_compute_frame_size (get_frame_size(), sparc_leaf_function_p); @@ -5219,7 +5218,7 @@ sparc_asm_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED) { /* Check that the assumption we made in sparc_expand_prologue is valid. */ if (!TARGET_FLAT) - gcc_assert (sparc_leaf_function_p == current_function_uses_only_leaf_regs); + gcc_assert (sparc_leaf_function_p == crtl->uses_only_leaf_regs); sparc_output_scratch_registers (file); } @@ -10488,7 +10487,7 @@ sparc_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, { /* We will emit a regular sibcall below, so we need to instruct output_sibcall that we are in a leaf function. */ - sparc_leaf_function_p = current_function_uses_only_leaf_regs = 1; + sparc_leaf_function_p = crtl->uses_only_leaf_regs = 1; /* This will cause final.c to invoke leaf_renumber_regs so we must behave as if we were in a not-yet-leafified function. */ @@ -10498,7 +10497,7 @@ sparc_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, { /* We will emit the sibcall manually below, so we will need to manually spill non-leaf registers. */ - sparc_leaf_function_p = current_function_uses_only_leaf_regs = 0; + sparc_leaf_function_p = crtl->uses_only_leaf_regs = 0; /* We really are in a leaf function. */ int_arg_first = SPARC_OUTGOING_INT_ARG_FIRST; @@ -11284,7 +11283,7 @@ sparc_frame_pointer_required (void) return false; /* Otherwise, the frame pointer is required if the function isn't leaf. */ - return !(current_function_is_leaf && only_leaf_regs_used ()); + return !(crtl->is_leaf && only_leaf_regs_used ()); } /* The way this is structured, we can't eliminate SFP in favor of SP diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 81bcce8b663..387e50b5009 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1744,9 +1744,6 @@ extern int sparc_indent_opcode; #define AS_NIAGARA3_FLAG "d" #endif -/* The number of Pmode words for the setjmp buffer. */ -#define JMP_BUF_SIZE 12 - /* We use gcc _mcount for profiling. */ #define NO_PROFILE_COUNTERS 0 diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index aafff5598d1..5cc6c677ccb 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -290,7 +290,7 @@ ? CALLS_EH_RETURN_TRUE : CALLS_EH_RETURN_FALSE)")) (define_attr "leaf_function" "false,true" - (symbol_ref "(current_function_uses_only_leaf_regs != 0 + (symbol_ref "(crtl->uses_only_leaf_regs != 0 ? LEAF_FUNCTION_TRUE : LEAF_FUNCTION_FALSE)")) (define_attr "delayed_branch" "false,true" |