summaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-02 08:16:14 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-02 08:16:14 +0000
commit766ea20013c206911829dcc3f01705578656d0f8 (patch)
treebde0a90afafe80c675b78627a527471633716094 /gcc/config/sparc
parent50ebd62c4be721e1ff9751b6029e04050bad6746 (diff)
downloadgcc-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.c19
-rw-r--r--gcc/config/sparc/sparc.h3
-rw-r--r--gcc/config/sparc/sparc.md2
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"