1. 19 Sep, 2013 4 commits
    • omp-low.c (expand_omp_sections): Always pass len - 1 to GOMP_sections_start,… · 4befd127
      omp-low.c (expand_omp_sections): Always pass len - 1 to GOMP_sections_start, even if !exit_reachable.
      
      	* omp-low.c (expand_omp_sections): Always pass len - 1 to
      	GOMP_sections_start, even if !exit_reachable.
      libgomp/
      	* testsuite/libgomp.c/sections-2.c: New test.
      
      From-SVN: r202738
      Jakub Jelinek committed
    • re PR libstdc++/58338 (Add noexcept to functions with a narrow contract) · 0e1a966a
      2013-09-19  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/58338
      	* include/bits/stl_tree.h (_Rb_tree_node_base) [_S_minimum, _S_maximum]:
      	Mark as noexcept.
      	(_Rb_tree_iterator) [_Rb_tree_iterator, operator*, operator->,
      	operator++, operator--, operator==, operator!=]: Likewise.
      	(_Rb_tree_const_iterator) [_Rb_tree_const_iterator, _M_const_cast,
      	operator*, operator->, operator++, operator--, operator==, operator!=]:
      	Likewise.
      	(operator==(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&),
      	operator!=(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&)):
      	Likewise.
      	(_Rb_tree) [_M_put_node, _M_destroy_node, _M_root, _M_leftmost,
      	_M_rightmost, _M_begin, _M_end, _S_left, _S_right, _S_minimum,
      	_S_maximum]: Likewise.
      	* include/debug/string (basic_string) [basic_string(const _Allocator&),
      	shrink_to_fit, operator[], pop_back]: Likewise.
      	* include/ext/vstring.h (__versa_string) [_M_limit, _M_disjunct,
      	_M_ibegin, _M_iend, __versa_string(const _Alloc&),
      	operator=(__versa_string&&), shrink_to_fit, operator[], front,
      	back, assign(__versa_string&&), swap]: Likewise.
      	(__versa_string) [__versa_string(), __versa_string(const _Alloc&)]:
      	Merge.
      
      From-SVN: r202737
      Marc Glisse committed
    • Add myself to MAINTAINERS file as diagnostics maintainer · 06c055fc
      	* MAINTAINERS (diagnostic messages): Add myself as diagnostics
      	maintainer.
      
      From-SVN: r202732
      Dodji Seketeli committed
    • Daily bump. · 659c971e
      From-SVN: r202731
      GCC Administrator committed
  2. 18 Sep, 2013 32 commits
    • compiler: Fix name of unexported method of embedded imported type. · 8b674a6f
      Test case is fixedbugs/bug478.go in master testsuite.
      
      From-SVN: r202726
      Ian Lance Taylor committed
    • re PR fortran/57697 ([OOP] Segfault with defined assignment for components… · 57c6def4
      re PR fortran/57697 ([OOP] Segfault with defined assignment for components during intrinsic assignment)
      
      2013-09-18  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/57697
              * gfortran.dg/defined_assignment_11.f90: New.
      
      From-SVN: r202725
      Tobias Burnus committed
    • expr.c (gfc_check_assign_symbol): Free lvalue.ref. · e3816ac9
      2013-09-18  Tobias Burnus  <burnus@net-b.de>
      
              * expr.c (gfc_check_assign_symbol): Free lvalue.ref.
      
      From-SVN: r202722
      Tobias Burnus committed
    • lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED. · 8a26ad39
      2013-09-18  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* lra-constraints.c (need_for_all_save_p): Use macro
      	HARD_REGNO_CALL_PART_CLOBBERED.
      	* lra-lives.c (check_pseudos_live_through_calls): Use the macro to
      	set up pseudo conflict hard regs.
      
      From-SVN: r202721
      Vladimir Makarov committed
    • re PR target/58452 (GCC 4.8 and trunk do not compile simple powerpc-linuxpaired -O3 case) · 09487185
      2013-09-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/58452
      	* config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
      	operands.
      
      From-SVN: r202719
      Michael Meissner committed
    • compiler: Fix type of result of shortcut calculation. · 17836103
      From-SVN: r202717
      Ian Lance Taylor committed
    • re PR libstdc++/58338 (Add noexcept to functions with a narrow contract) · b4efa80e
      2013-09-18  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/58338
      	* include/bits/stl_iterator.h (__normal_iterator) [__normal_iterator,
      	_M_const_cast, operator*, operator->, operator++, operator--,
      	operator[], operator+=, operator+, operator-=, operator-, base]:
      	Mark as noexcept.
      	(operator==(const __normal_iterator&, const __normal_iterator&),
      	operator!=(const __normal_iterator&, const __normal_iterator&),
      	operator<(const __normal_iterator&, const __normal_iterator&),
      	operator>(const __normal_iterator&, const __normal_iterator&),
      	operator<=(const __normal_iterator&, const __normal_iterator&),
      	operator>=(const __normal_iterator&, const __normal_iterator&),
      	operator-(const __normal_iterator&, const __normal_iterator&),
      	operator+(difference_type, const __normal_iterator&)): Likewise.
      	* include/bits/stl_list.h (list) [splice, _M_check_equal_allocators]:
      	Likewise.
      	(list::_M_check_equal_allocators): Abort instead of throwing.
      	* include/debug/array (array) [operator[], front, back]: Mark as
      	noexcept.
      	* include/profile/array (array) [operator[], front, back]: Likewise.
      	* include/std/array (array) [operator[], front, back]: Likewise.
      	* include/debug/list (list::splice): Likewise.
      	* include/profile/list (list::splice): Likewise.
      	* testsuite/23_containers/list/operations/5.cc: Remove file.
      	* testsuite/23_containers/list/operations/5.h: Likewise.
      
      From-SVN: r202716
      Marc Glisse committed
    • Add missed testsuite/g++.dg/pr58438.C · c9b29b25
      From-SVN: r202715
      Vladimir Makarov committed
    • re PR rtl-optimization/58438 (ICE: in check_rtl, at lra.c:2036) · 080cbf9e
      2013-09-18  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/58438
      	* lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
      	* lra-constraints.c (undo_optional_reloads): Keep optional reloads
      	from previous subpasses.
      
      2013-09-18  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/58438
      	* g++.dg/pr58438.C: New test.
      
      From-SVN: r202714
      Vladimir Makarov committed
    • re PR fortran/43366 ([OOP][F08] Intrinsic assign to polymorphic variable) · 83ba23b7
      2013-09-15  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/43366
              * primary.c (gfc_variable_attr): Also handle codimension.
              * resolve.c (resolve_ordinary_assign): Add invalid-diagnostic
              * for
              polymorphic assignment.
      
      2013-09-15  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/43366
              * gfortran.dg/class_39.f03: Update dg-error.
              * gfortran.dg/class_5.f03: Ditto.
              * gfortran.dg/class_53.f90: Ditto.
              * gfortran.dg/realloc_on_assign_20.f90: New.
              * gfortran.dg/realloc_on_assign_21.f90: New.
              * gfortran.dg/realloc_on_assign_22.f90: New.
      
      From-SVN: r202713
      Tobias Burnus committed
    • re PR c++/58457 (ICE when placement new operator is used with using keyword and custom constructor) · 3f3fd87d
      /cp
      2013-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58457
      	* class.c (instantiate_type): Loosen a bit the gcc_assert.
      
      /testsuite
      2013-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58457
      	* g++.dg/parse/using4.C: New.
      
      From-SVN: r202711
      Paolo Carlini committed
    • regex.h: Add friend classes. · b21abcee
      2013-09-18  Tim Shen  <timshen91@gmail.com>
      
      	* include/bits/regex.h: Add friend classes.
      	(match_results<>::position, regex_iterator<>::operator++):
      	Implement position specification in regex_iterator.
      	(regex_match<>, regex_search<>):
      	Move match_results initializations to these function. Remove `todo`.
      	* include/bits/regex_compiler.tcc:
      	(_Compiler<>::_M_quantifier): Fix greedy/ungreedy of interval matching.
      	* include/bits/regex_constants.h:
      	Fix indentation. Change match_flag_type to enum type.
      	* include/bits/regex_executor.h:
      	Merge identical code to the base class _Executor.
      	Support flags in regex_constants.
      	* include/bits/regex_executor.tcc: Likewise.
      	* include/bits/regex_scanner.h: Add comments.
      	* include/bits/regex_scanner.tcc: Same.
      	* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
      	Add a testcase.
      	* testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: New.
      	* testsuite/28_regex/iterators/regex_iterator/char/
      	string_position_01.cc: Remove `xfail`.
      	* testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc:
      	Remove `xfail` and make the case really work.
      
      From-SVN: r202706
      Tim Shen committed
    • search_n.cc: Fix typo. · 64bc8861
      2013-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* testsuite/performance/25_algorithms/search_n.cc: Fix typo.
      
      From-SVN: r202704
      Paolo Carlini committed
    • pr58419.c (b): Change type to signed char. · 3c86bedb
      [gcc/testsuite]
      2013-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* gcc.c-torture/execute/pr58419.c (b): Change type to signed char.
      
      From-SVN: r202703
      Kyrylo Tkachov committed
    • arm.c (arm_get_frame_offsets): Validate architecture supports LDRD/STRD before… · a0f70fcb
      arm.c (arm_get_frame_offsets): Validate architecture supports LDRD/STRD before accepting the tuning preference.
      
      	* arm.c (arm_get_frame_offsets): Validate architecture supports
      	LDRD/STRD before accepting the tuning preference.
      	(arm_expand_prologue): Likewise.
      	(arm_expand_epilogue): Likewise.
      
      From-SVN: r202702
      Richard Earnshaw committed
    • re PR sanitizer/58443 (ubsan doesn't properly honor fsanitize= flags) · a24d975c
      2013-09-18  Marek Polacek  <polacek@redhat.com>
      
      	PR sanitize/58443
      cp/
      	* typeck.c (cp_build_binary_op): Properly honor -fsanitize options.
      	Remove unnecessary check.
      
      c/
      	* c-typeck.c (build_binary_op): Properly honor -fsanitize options.
      	Remove unnecessary check.
      
      testsuite/
      	* g++.dg/ubsan/div-by-zero-1.C: Use the integer-divide-by-zero option
      	instead of the shift option.
      	* c-c++-common/ubsan/pr58443-1.c: New test.
      	* c-c++-common/ubsan/pr58443-3.c: New test.
      	* c-c++-common/ubsan/pr58443-2.c: New test.
      
      From-SVN: r202701
      Marek Polacek committed
    • re PR tree-optimization/58417 (Incorrect optimization in SCEV const-prop) · 0547c9b6
      2013-09-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58417
      	* tree-chrec.c (chrec_fold_plus_1): Assert that we do not
      	have chrecs with symbols defined in the loop as operands.
      	(chrec_fold_multiply): Likewise.
      	* tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
      	parameters before folding binary operations.
      	(struct instantiate_cache_entry_hasher): Remove.
      	(struct instantiate_cache_type): Use a pointer-map.
      	(instantiate_cache_type::instantiate_cache_type): New function.
      	(instantiate_cache_type::get): Likewise.
      	(instantiate_cache_type::set): Likewise.
      	(instantiate_cache_type::~instantiate_cache_type): Adjust.
      	(get_instantiated_value_entry): Likewise.
      	(global_cache): New global.
      	(instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
      	instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
      	instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
      	(instantiate_scev_name): Adjust.
      	(instantiate_scev): Construct global instead of local cache.
      	(resolve_mixers): Likewise.
      
      	* gcc.dg/torture/pr58417.c: New testcase.
      
      From-SVN: r202700
      Richard Biener committed
    • re PR libstdc++/58338 (Add noexcept to functions with a narrow contract) · 837bf511
      2013-09-18  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/58338
      	* include/bits/list.tcc (_List_base::_M_clear, list::erase): Mark as
      	noexcept.
      	* include/bits/stl_list.h (_List_iterator) [_List_iterator,
      	_M_const_cast, operator*, operator->, operator++, operator--,
      	operator==, operator!=]: Likewise.
      	(_List_const_iterator) [_List_const_iterator, _M_const_cast, operator*,
      	operator->, operator++, operator--, operator==, operator!=]: Likewise.
      	(operator==(const _List_iterator&, const _List_const_iterator&),
      	operator!=(const _List_iterator&, const _List_const_iterator&)):
      	Likewise.
      	(_List_impl) [_List_impl(const _Node_alloc_type&),
      	_List_impl(_Node_alloc_type&&)]: Likewise.
      	(_List_base) [_M_put_node, _List_base(const _Node_alloc_type&),
      	_List_base(_List_base&&), _M_clear, _M_init]: Likewise.
      	(list) [list(), list(const allocator_type&)]: Merge.
      	(list) [list(const allocator_type&), front, back, pop_front, pop_back,
      	erase, _M_erase]: Mark as noexcept.
      	* include/debug/list (list) [list(const _Allocator&), front, back,
      	pop_front, pop_back, _M_erase, erase]: Likewise.
      	* include/profile/list (list) [list(const _Allocator&), front, back,
      	pop_front, pop_back, erase]: Likewise.
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Adjust line number.
      	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
      	Likewise.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
      	Likewise.
      
      From-SVN: r202699
      Marc Glisse committed
    • re PR c++/58458 (ISO 14882 typo in docs) · 309dc1aa
      2013-09-18  Daniel Morris  <danielm@ecoscentric.com>
      	    Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58458
      	* doc/implement-cxx.texi: Fix references to the C++ standards.
      
      Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
      
      From-SVN: r202696
      Daniel Morris committed
    • re PR ada/58264 (incorrect bounds of string when assigned from dereference of function result) · 088d3b0f
      	PR ada/58264
      	* gcc-interface/trans.c (Attribute_to_gnu): Define GNAT_PREFIX local
      	variable and use it throughout.
      	<Attr_Length>: Note whether the prefix is the dereference of a pointer
      	to unconstrained array and, in this case, capture the result for both
      	Attr_First and Attr_Last.
      
      From-SVN: r202694
      Eric Botcazou committed
    • omp-fesdr.C: Check for fopenmp effective target. · 5ef054c3
      [gcc/testsuite/]
      2013-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* g++.dg/debug/dwarf2/omp-fesdr.C: Check for fopenmp effective target.
      	* gcc.dg/debug/dwarf2/omp-fesdr.c: Likewise.
      
      From-SVN: r202693
      Kyrylo Tkachov committed
    • * gcc-interface/trans.c (gigi): Remove dead code. · 195934c5
      From-SVN: r202688
      Eric Botcazou committed
    • trans.c (Subprogram_Body_to_gnu): Pop the stack of return variables for… · df2abf54
      trans.c (Subprogram_Body_to_gnu): Pop the stack of return variables for subprograms using the CICO mechanism.
      
      	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Pop the stack of
      	return variables for subprograms using the CICO mechanism.
      
      From-SVN: r202684
      Eric Botcazou committed
    • omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES. · 995a1b4a
      	* omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): For
      	simd_lane_access drs, update also DR_ALIGNED_TO.
      
      From-SVN: r202683
      Jakub Jelinek committed
    • re PR sanitizer/58411 (no_sanitize_undefined function attribute) · ce6923c5
      2013-09-18  Marek Polacek  <polacek@redhat.com>
      
      	PR sanitizer/58411
      	* doc/extend.texi: Document no_sanitize_undefined attribute.
      	* builtins.c (fold_builtin_0): Don't sanitize function if it has the
      	no_sanitize_undefined attribute.
      
      From-SVN: r202682
      Marek Polacek committed
    • msp430.h (ASM_SPEC): Pass -md on to the assembler. · d30d00a2
      	* config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
      	(ASM_DECLARE_FUNCTION_NAME): Define.
      
      From-SVN: r202681
      Nick Clifton committed
    • compare-elim.c (find_comparison_dom_walker): New class · 4d9192b5
      	* compare-elim.c (find_comparison_dom_walker): New class
      	(find_comparisons_in_bb): Rename to
      	find_comparison_dom_walker::before_dom_children
      	(find_comparisons): Adjust
      	* domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
      	adjust.
      	(init_walk_dominator_tree, fini_walk_dominator_tree): Remove
      	* domwalk.h (dom_walk_data): Convert it To a class dom_walker.
      	(init_walk_dominator_tree): Remove declaration.
      	(fini_walk_dominator_tree): Remove declaration.
      	* fwprop.c (single_def_use_dom_walker): New class
      	(single_def_use_enter_block): Convert to
      	single_def_use_dom_walker::before_dom_children.
      	(single_def_use_leave_block): Convert to
      	single_def_use_dom_walker::after_dom_children.
      	(build_single_def_use_links): Adjust.
      	* gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
      	class.
      	(find_candidates_in_block): Convert to
      	find_candidates_dom_walker::before_dom_children.
      	(execute_strength_reduction): Adjust.
      	* graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
      	(sese_dom_walker): New class.
      	(sese_dom_walker::sese_dom_walker): New constructor.
      	(sese_dom_walker::~sese_dom_walker): New destructor.
      	(build_sese_conditions_before): Convert to
      	sese_dom_walker::before_dom_children.
      	(build_sese_conditions_after): Convert to
      	sese_dom_walker::after_dom_children.
      	(build_poly_scop): Adjust
      	* tree-into-ssa.c (rewrite_dom_walker): New class
      	(rewrite_enter_block): Convert to
      	rewrite_dom_walker::before_dom_children.
      	(rewrite_leave_block): Convert to
      	rewrite_dom_walker::after_dom_children.
      	(rewrite_update_dom_walker): New class.
      	(rewrite_update_enter_block): Convert to
      	rewrite_update_dom_walker::before_dom_children.
      	(rewrite_update_leave_block): Convert to
      	rewrite_update_dom_walker::after_dom_children.
      	(rewrite_blocks, rewrite_into_ssa): Adjust.
      	(mark_def_dom_walker): New class.
      	(mark_def_dom_walker::mark_def_dom_walker): New constructor.
      	(mark_def_dom_walker::~mark_def_dom_walker): New destructor.
      	(mark_def_sites_blocks): Convert to
      	mark_def_dom_walker::before_dom_children.
      	(mark_def_site_blocks): Remove.
      	* tree-ssa-dom.c (dom_opt_dom_walker): New class.
      	(tree_ssa_dominator_optimize): Adjust.
      	(dom_thread_across_edge): Convert to method
      	dom_opt_dom_walker::thread_across_edge.
      	(dom_opt_enter_block): Convert to member function
      	dom_opt_dom_walker::before_dom_children.
      	(dom_opt_leave_block): Convert to member function
      	dom_opt_dom_walker::after_dom_children.
      	* tree-ssa-dse.c (dse_dom_walker): New class.
      	(dse_enter_block): Convert to member function
      	dse_dom_walker::before_dom_children.
      	(tree_ssa_dse): Adjust.
      	* tree-ssa-loop-im.c (invariantness_dom_walker): New class.
      	(determine_invariantness_stmt): Convert to method
      	invariantness_dom_walker::before_dom_children.
      	(determine_invariantness): Remove
      	(move_computations_dom_walker): New class.
      	(move_computations_stmt): Convert to method
      	move_computations_dom_walker::before_dom_children.
      	(move_computations, tree_ssa_lim): Adjust.
      	* tree-ssa-phiopt.c (nontrapping_dom_walker): new class
      	(nt_init_block): Make method
      	notrappping_dom_walker::before_dom_children.
      	(nt_fini_block): Make
      	method nontrapping_dom_walker::after_dom_children.
      	(get_non_trapping): Adjust.
      	* tree-ssa-pre.c (eliminate_dom_walker): New class.
      	(eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
      	(eliminate_leave_block): Make method.
      	eliminate_dom_walker::after_dom_children.
      	(eliminate): Adjust
      	* tree-ssa-strlen.c (strlen_dom_walker): New class.
      	(strlen_enter_block): Make method
      	strlen_dom_walker::before_dom_children.
      	(strlen_leave_block): Make
      	method strlen_dom_walker::after_dom_children.
      	(tree_ssa_strlen): Adjust.
      	* tree-ssa-uncprop.c (uncprop_dom_walker): New class.
      	(tree_ssa_uncprop): Adjust.
      	(uncprop_leave_block): Make method
      	uncprop_dom_walker::after_dom_children.
      	(uncprop_leave_block): Make method
      	uncprop_dom_walker::before_dom_children.
      
      From-SVN: r202679
      Trevor Saunders committed
    • arm.c (thumb1_reorg): Search for flag setting insn before branch in same basic block. · 3b3cc26b
      
      	* config/arm/arm.c (thumb1_reorg): Search for flag setting insn
      	before branch in same basic block.  Check both src and dest of
      	the move insn.
      
      From-SVN: r202678
      Bin Cheng committed
    • rl78-real.md (bf): New pattern. · b5ba3a9b
      * config/rl78/rl78-real.md (bf): New pattern.
      (bt): New pattern.
      * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
      (rl78_print_operand): Do not put a # before a %B.
      * config/rl78/rl78.opt: Tweak doc strings.
      
      From-SVN: r202676
      Nick Clifton committed
    • Daily bump. · 05eac2ce
      From-SVN: r202675
      GCC Administrator committed
  3. 17 Sep, 2013 4 commits
    • reflect: Fix bug calling method on indirect value. · b15d7943
      The gccgo-specific iword function was checking v.kind, but for
      a method value that is always Func.  Fix to check v.typ.Kind()
      instead.
      
      From-SVN: r202670
      Ian Lance Taylor committed
    • constraints.md (Wcv): Allow up to $r31. · 09d5094b
      * config/rl78/constraints.md (Wcv): Allow up to $r31.
      * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
      (rl78_option_override): Likewise, if -mallregs.
      (is_virtual_register): Likewise.
      * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
      (REGNO_OK_FOR_BASE_P): Likewise.
      * config/rl78/rl78.opt (-mallregs): New.
      
      From-SVN: r202669
      DJ Delorie committed
    • rl78.c (need_to_save): Change return type to bool. · 2ba1dca1
      * config/rl78/rl78.c (need_to_save): Change return type to bool.
      For interrupt functions: save all call clobbered registers if the
      interrupt handler is not a leaf function.
      (rl78_expand_prologue): Always recompute the frame information.
      For interrupt functions: only select bank 0 if one of the bank 0
      registers is going to be psuhed.
      
      From-SVN: r202667
      Nick Clifton committed
    • constraints.md: For each W* constraint... · 2e7c3f21
      * config/rl78/constraints.md: For each W* constraint, rename to C*
      and create a W* constraint that checks for an optional ES: prefix
      pattern also.
      * config/rl78/rl78.md (UNS_ES_ADDR): New.
      (es_addr): New.  Used to wrap far addresses.
      * config/rl78/rl78-protos.h (rl78_es_addr): New.
      (rl78_es_base): New.
      * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
      wrapped far addresses.
      (rl78_print_operand_1): Unwrap far addresses before processing.
      (rl78_lo16): Wrap far addresses in unspecs.
      (rl78_es_addr): New.
      (rl78_es_base): New.
      (insn_ok_now): Check for not-yet-wrapped far addresses.
      (transcode_memory_rtx): Properly re-wrap far addresses.
      
      From-SVN: r202666
      DJ Delorie committed