[multiple changes]

2011-02-25  Sebastien Bourdeauducq <sebastien@milkymist.org>

	PR gcc/46898
	* config/lm32/lm32.md (ashrsi3): Added needed variable.

2011-02-25  Jon Beniston <jon@beniston.com>

	PR gcc/46898
	* config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
	* config/lm32/lm32.md (ashlsi3): Remove unused variable.
	* config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
	(lm32_block_move_inline): Add type cast to remove warning.
	(lm32_expand_prologue): Generate fp in a way compatible with
	dwarf2out.
	(gen_int_relational): Move declarations to start of function.

From-SVN: r170502
parent 1b9fef3e
2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
PR gcc/46898
* config/lm32/lm32.md (ashrsi3): Added needed variable.
2011-02-25 Jon Beniston <jon@beniston.com>
PR gcc/46898
* config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
* config/lm32/lm32.md (ashlsi3): Remove unused variable.
* config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
(lm32_block_move_inline): Add type cast to remove warning.
(lm32_expand_prologue): Generate fp in a way compatible with
dwarf2out.
(gen_int_relational): Move declarations to start of function.
2011-02-25 Eric Botcazou <ebotcazou@adacore.com> 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/45470 PR tree-optimization/45470
......
...@@ -117,6 +117,8 @@ static const struct default_options lm32_option_optimization_table[] = ...@@ -117,6 +117,8 @@ static const struct default_options lm32_option_optimization_table[] =
#define TARGET_CAN_ELIMINATE lm32_can_eliminate #define TARGET_CAN_ELIMINATE lm32_can_eliminate
#undef TARGET_LEGITIMATE_ADDRESS_P #undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P lm32_legitimate_address_p #define TARGET_LEGITIMATE_ADDRESS_P lm32_legitimate_address_p
#undef TARGET_EXCEPT_UNWIND_INFO
#define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info
struct gcc_target targetm = TARGET_INITIALIZER; struct gcc_target targetm = TARGET_INITIALIZER;
...@@ -174,6 +176,9 @@ gen_int_relational (enum rtx_code code, ...@@ -174,6 +176,9 @@ gen_int_relational (enum rtx_code code,
{ {
enum machine_mode mode; enum machine_mode mode;
int branch_p; int branch_p;
rtx temp;
rtx cond;
rtx label;
mode = GET_MODE (cmp0); mode = GET_MODE (cmp0);
if (mode == VOIDmode) if (mode == VOIDmode)
...@@ -389,18 +394,17 @@ lm32_expand_prologue (void) ...@@ -389,18 +394,17 @@ lm32_expand_prologue (void)
/* Setup frame pointer if it's needed. */ /* Setup frame pointer if it's needed. */
if (frame_pointer_needed == 1) if (frame_pointer_needed == 1)
{ {
/* Load offset - Don't use total_size, as that includes pretend_size, /* Move sp to fp. */
which isn't part of this frame? */ insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
insn = RTX_FRAME_RELATED_P (insn) = 1;
emit_move_insn (frame_pointer_rtx,
GEN_INT (current_frame_info.args_size +
current_frame_info.callee_size +
current_frame_info.locals_size));
RTX_FRAME_RELATED_P (insn) = 1;
/* Add in sp. */ /* Add offset - Don't use total_size, as that includes pretend_size,
insn = emit_add (frame_pointer_rtx, which isn't part of this frame? */
frame_pointer_rtx, stack_pointer_rtx); insn = emit_add (frame_pointer_rtx,
frame_pointer_rtx,
GEN_INT (current_frame_info.args_size +
current_frame_info.callee_size +
current_frame_info.locals_size));
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
} }
......
...@@ -239,6 +239,8 @@ enum reg_class ...@@ -239,6 +239,8 @@ enum reg_class
#define ARG_POINTER_REGNUM FRAME_POINTER_REGNUM #define ARG_POINTER_REGNUM FRAME_POINTER_REGNUM
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (SImode, RA_REGNUM)
#define RETURN_ADDR_RTX(count, frame) \ #define RETURN_ADDR_RTX(count, frame) \
lm32_return_addr_rtx (count, frame) lm32_return_addr_rtx (count, frame)
......
...@@ -824,6 +824,7 @@ ...@@ -824,6 +824,7 @@
{ {
int i; int i;
int shifts = INTVAL (operands[2]); int shifts = INTVAL (operands[2]);
rtx one = GEN_INT (1);
if (shifts == 0) if (shifts == 0)
emit_move_insn (operands[0], operands[1]); emit_move_insn (operands[0], operands[1]);
......
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