Commit c3ff2812 by Sandra Loosemore Committed by Sandra Loosemore

nios2-protos.h (nios2_expand_return): Declare.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	gcc/
	* config/nios2/nios2-protos.h (nios2_expand_return): Declare.
	* config/nios2/nios2.c (struct GTY (()) machine_function): Add
	callee_save_reg_size and uses_anonymous_args fields.
	(nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
	(nios2_create_cfa_notes): New function.
	(nios2_adjust_stack): New function for adjusting stack.
	(nios2_expand_prologue): Update for CDX push.n/pop.n usage.
	Use nios2_adjust_stack.
	(nios2_expand_epilogue): Likewise.
	(nios2_expand_return): New function.
	(nios2_can_use_return_insn): Update for CDX pop.n usage.
	(nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
	If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
	* config/nios2/nios2.md (return): Use nios2_expand_return.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>

From-SVN: r225799
parent aa32db37
...@@ -2,6 +2,25 @@ ...@@ -2,6 +2,25 @@
Cesar Philippidis <cesar@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com>
* config/nios2/nios2-protos.h (nios2_expand_return): Declare.
* config/nios2/nios2.c (struct GTY (()) machine_function): Add
callee_save_reg_size and uses_anonymous_args fields.
(nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
(nios2_create_cfa_notes): New function.
(nios2_adjust_stack): New function for adjusting stack.
(nios2_expand_prologue): Update for CDX push.n/pop.n usage.
Use nios2_adjust_stack.
(nios2_expand_epilogue): Likewise.
(nios2_expand_return): New function.
(nios2_can_use_return_insn): Update for CDX pop.n usage.
(nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
* config/nios2/nios2.md (return): Use nios2_expand_return.
2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com>
* config/nios2/predicates.md (pop_operation): New. * config/nios2/predicates.md (pop_operation): New.
(ldwm_operation, stwm_operation): New. (ldwm_operation, stwm_operation): New.
(nios2_hard_register_operand): New. (nios2_hard_register_operand): New.
......
...@@ -26,6 +26,7 @@ extern int nios2_initial_elimination_offset (int, int); ...@@ -26,6 +26,7 @@ extern int nios2_initial_elimination_offset (int, int);
extern int nios2_can_use_return_insn (void); extern int nios2_can_use_return_insn (void);
extern void nios2_expand_prologue (void); extern void nios2_expand_prologue (void);
extern void nios2_expand_epilogue (bool); extern void nios2_expand_epilogue (bool);
extern bool nios2_expand_return (void);
extern void nios2_function_profiler (FILE *, int); extern void nios2_function_profiler (FILE *, int);
#ifdef RTX_CODE #ifdef RTX_CODE
......
...@@ -746,7 +746,10 @@ ...@@ -746,7 +746,10 @@
(define_expand "return" (define_expand "return"
[(simple_return)] [(simple_return)]
"nios2_can_use_return_insn ()" "nios2_can_use_return_insn ()"
"") {
if (nios2_expand_return ())
DONE;
})
(define_insn "simple_return" (define_insn "simple_return"
[(simple_return)] [(simple_return)]
......
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