re PR bootstrap/48230 (bootstrapping gcc-4.6.0-RC-20110321 fails for lm32-rtems*)
PR bootstrap/48230 PR bootstrap/50927 PR bootstrap/52466 PR target/46898 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect. (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed. * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support. (simple_return, *simple_return): New patterns * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete. * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32. From-SVN: r208260
This commit is contained in:
parent
f1e443c838
commit
9b0af790b7
@ -1,3 +1,16 @@
|
||||
2014-03-02 Jon Beniston <jon@beniston.com>
|
||||
|
||||
PR bootstrap/48230
|
||||
PR bootstrap/50927
|
||||
PR bootstrap/52466
|
||||
PR target/46898
|
||||
* config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
|
||||
(TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
|
||||
* config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
|
||||
(simple_return, *simple_return): New patterns
|
||||
* config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
|
||||
* configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
|
||||
|
||||
2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* dwarf2out.c (gen_subprogram_die): Tidy.
|
||||
|
@ -82,7 +82,6 @@ static rtx lm32_function_arg (cumulative_args_t cum,
|
||||
static void lm32_function_arg_advance (cumulative_args_t cum,
|
||||
enum machine_mode mode,
|
||||
const_tree type, bool named);
|
||||
static bool lm32_legitimate_constant_p (enum machine_mode, rtx);
|
||||
|
||||
#undef TARGET_OPTION_OVERRIDE
|
||||
#define TARGET_OPTION_OVERRIDE lm32_option_override
|
||||
@ -110,8 +109,6 @@ static bool lm32_legitimate_constant_p (enum machine_mode, rtx);
|
||||
#define TARGET_CAN_ELIMINATE lm32_can_eliminate
|
||||
#undef TARGET_LEGITIMATE_ADDRESS_P
|
||||
#define TARGET_LEGITIMATE_ADDRESS_P lm32_legitimate_address_p
|
||||
#undef TARGET_LEGITIMATE_CONSTANT_P
|
||||
#define TARGET_LEGITIMATE_CONSTANT_P lm32_legitimate_constant_p
|
||||
|
||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
|
||||
@ -1228,15 +1225,3 @@ lm32_move_ok (enum machine_mode mode, rtx operands[2]) {
|
||||
return register_or_zero_operand (operands[1], mode);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Implement TARGET_LEGITIMATE_CONSTANT_P. */
|
||||
|
||||
static bool
|
||||
lm32_legitimate_constant_p (enum machine_mode mode, rtx x)
|
||||
{
|
||||
/* 32-bit addresses require multiple instructions. */
|
||||
if (!flag_pic && reloc_operand (x, mode))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -293,8 +293,8 @@
|
||||
)
|
||||
|
||||
(define_insn "movsi_insn"
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,m,r,r,r,r,r")
|
||||
(match_operand:SI 1 "movsi_rhs_operand" "m,r,r,J,K,L,U,S,Y"))]
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,m,r,r,r,r,r,r")
|
||||
(match_operand:SI 1 "general_operand" "m,r,r,J,K,L,U,S,Y,n"))]
|
||||
"lm32_move_ok (SImode, operands)"
|
||||
"@
|
||||
lw %0, %1
|
||||
@ -305,8 +305,9 @@
|
||||
ori %0, r0, %1
|
||||
orhi %0, r0, hi(%1)
|
||||
mva %0, gp(%1)
|
||||
orhi %0, r0, hi(%1)"
|
||||
[(set_attr "type" "load,arith,store,store,arith,arith,arith,arith,arith")]
|
||||
orhi %0, r0, hi(%1)
|
||||
ori %0, r0, lo(%1); orhi %0, %0, hi(%1)"
|
||||
[(set_attr "type" "load,arith,store,store,arith,arith,arith,arith,arith,arith")]
|
||||
)
|
||||
|
||||
;; ---------------------------------
|
||||
@ -636,9 +637,28 @@
|
||||
[(set_attr "type" "uibranch")]
|
||||
)
|
||||
|
||||
(define_insn "return"
|
||||
(define_expand "return"
|
||||
[(return)]
|
||||
"lm32_can_use_return ()"
|
||||
""
|
||||
)
|
||||
|
||||
(define_expand "simple_return"
|
||||
[(simple_return)]
|
||||
""
|
||||
""
|
||||
)
|
||||
|
||||
(define_insn "*return"
|
||||
[(return)]
|
||||
"reload_completed"
|
||||
"ret"
|
||||
[(set_attr "type" "uibranch")]
|
||||
)
|
||||
|
||||
(define_insn "*simple_return"
|
||||
[(simple_return)]
|
||||
""
|
||||
"ret"
|
||||
[(set_attr "type" "uibranch")]
|
||||
)
|
||||
|
@ -70,8 +70,3 @@
|
||||
(ior (match_code "symbol_ref")
|
||||
(match_operand 0 "register_operand")))
|
||||
|
||||
(define_predicate "movsi_rhs_operand"
|
||||
(ior (match_operand 0 "nonimmediate_operand")
|
||||
(ior (match_code "const_int")
|
||||
(ior (match_test "satisfies_constraint_S (op)")
|
||||
(match_test "satisfies_constraint_Y (op)")))))
|
||||
|
@ -1249,6 +1249,10 @@ force_sjlj_exceptions=yes],
|
||||
force_sjlj_exceptions=yes
|
||||
enableval=yes
|
||||
;;
|
||||
lm32*-*-*)
|
||||
force_sjlj_exceptions=yes
|
||||
enableval=yes
|
||||
;;
|
||||
*)
|
||||
force_sjlj_exceptions=no
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user