1. 10 Aug, 2007 14 commits
    • system.h (CONST_CAST): New. · 68a57691
      	* system.h (CONST_CAST): New.
      	* c-decl.c (c_make_fname_decl): Use it.
      	* c-lex.c (cb_ident, lex_string): Likewise.
      	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
      	* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
      	give_switch, set_multilib_dir): Likewise.
      	* gengtype-parse.c (string_seq, typedef_name): Likewise.
      	* passes.c (execute_one_pass): Likewise.
      	* prefix.c (update_path): Likewise.
      	* pretty-print.c (pp_base_destroy_prefix): Likewise.
      	* tree.c (build_string): Likewise.
      
      cp:
      	* call.c (name_as_c_string): Use CONST_CAST.
      	* decl.c (build_decl): Likewise.
      	* parser.c (cp_parser_string_literal): Likewise.
      
      fortran:
      	* gfortranspec.c (lang_specific_driver): Use CONST_CAST.
      	* options.c (gfc_post_options): Likewise.
      	* parse.c (parse_omp_structured_block): Likewise.
      	* st.c (gfc_free_statement): Likewise.
      
      java:
      	* jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
      	* jcf.h (JCF_FINISH): Likewise.
      
      From-SVN: r127344
      Kaveh R. Ghazi committed
    • tree-flow-inline.h (is_exec_stmt): Remove. · df54b9ab
      	* tree-flow-inline.h (is_exec_stmt): Remove.
      	(is_label_stmt): Remove.
      	* tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
      	is_label_stmt.
      
      From-SVN: r127343
      Aldy Hernandez committed
    • lower-subreg.c (resolve_shift_zext): Don't adjust src_reg_num for wordmode operands. · acbe5496
      2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* lower-subreg.c (resolve_shift_zext): Don't adjust
      	src_reg_num for wordmode operands.
      
      From-SVN: r127342
      Andreas Krebbel committed
    • mips.c (TARGET_SCHED_INIT): Define. · 174bd8ca
      2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
      	    David Ung  <davidu@mips.com>
      
              gcc/
      	* config/mips/mips.c (TARGET_SCHED_INIT): Define.
      	(TARGET_SCHED_REORDER2): Define.
      	(mips_maybe_swap_ready): New.
      	(mips_last_74k_agen_insn): New.
      	(mips_74k_agen_init): New.
      	(mips_74k_agen_reorder): New function to group loads and stores
      	in the ready queue.
      	(mips_sched_init): New.  
      	(mips_sched_reorder): Don't do initialization here.  Call
      	mips_74k_agen_reorder.
      	(mips_variable_issue): Call mips_74k_agen_init.
      
      Co-Authored-By: David Ung <davidu@mips.com>
      
      From-SVN: r127341
      Sandra Loosemore committed
    • * tree-flow-inline.h (get_filename): Remove. · 6aab184c
      From-SVN: r127339
      Aldy Hernandez committed
    • mips-protos.h (mips_address_insns): Add a boolean argument. · 5955b0a3
      gcc/
      	* config/mips/mips-protos.h (mips_address_insns): Add a boolean
      	argument.
      	(mips_fetch_insns): Delete in favor of...
      	(mips_load_store_insns): ...this new function.
      	* config/mips/mips.c (mips_address_insns): Add a boolean argument
      	to say whether multiword moves _might_ be split.
      	(mips_fetch_insns): Delete in favor of...
      	(mips_load_store_insns): ...this new function.
      	(mips_rtx_costs): Update the call to mips_address_insns.
      	(mips_address_cost): Likewise.
      	* config/mips/mips.md (length): Use mips_load_store_insns instead
      	of mips_fetch_insns.
      	* config/mips/constraints.md (R): Use mips_address_insns rather
      	than mips_fetch_insns.  Assume that the move never needs to be split.
      
      From-SVN: r127338
      Richard Sandiford committed
    • cls_multi_ushort.c, [...]: Remove xfail for mips64*-*-*. · dfbb3e36
      	* testsuite/libffi.call/cls_multi_ushort.c,
      	testsuite/libffi.call/cls_align_uint16.c,
      	testsuite/libffi.call/nested_struct1.c,
      	testsuite/libffi.call/nested_struct3.c,
      	testsuite/libffi.call/cls_7_1_byte.c,
      	testsuite/libffi.call/nested_struct5.c,
      	testsuite/libffi.call/cls_double.c,
      	testsuite/libffi.call/nested_struct7.c,
      	testsuite/libffi.call/cls_sint.c,
      	testsuite/libffi.call/nested_struct9.c,
      	testsuite/libffi.call/cls_20byte1.c,
      	testsuite/libffi.call/cls_multi_sshortchar.c,
      	testsuite/libffi.call/cls_align_sint64.c,
      	testsuite/libffi.call/cls_3byte2.c,
      	testsuite/libffi.call/cls_multi_schar.c,
      	testsuite/libffi.call/cls_multi_uchar.c,
      	testsuite/libffi.call/cls_19byte.c,
      	testsuite/libffi.call/cls_9byte1.c,
      	testsuite/libffi.call/cls_align_float.c,
      	testsuite/libffi.call/closure_fn1.c,
      	testsuite/libffi.call/problem1.c,
      	testsuite/libffi.call/closure_fn3.c,
      	testsuite/libffi.call/cls_sshort.c,
      	testsuite/libffi.call/closure_fn5.c,
      	testsuite/libffi.call/cls_align_double.c,
      	testsuite/libffi.call/nested_struct.c,
      	testsuite/libffi.call/cls_2byte.c,
      	testsuite/libffi.call/nested_struct10.c,
      	testsuite/libffi.call/cls_4byte.c,
      	testsuite/libffi.call/cls_6byte.c,
      	testsuite/libffi.call/cls_8byte.c,
      	testsuite/libffi.call/cls_multi_sshort.c,
      	testsuite/libffi.call/cls_align_sint16.c,
      	testsuite/libffi.call/cls_align_uint32.c,
      	testsuite/libffi.call/cls_20byte.c,
      	testsuite/libffi.call/cls_float.c,
      	testsuite/libffi.call/nested_struct2.c,
      	testsuite/libffi.call/cls_5_1_byte.c,
      	testsuite/libffi.call/nested_struct4.c,
      	testsuite/libffi.call/cls_24byte.c,
      	testsuite/libffi.call/nested_struct6.c,
      	testsuite/libffi.call/cls_64byte.c,
      	testsuite/libffi.call/nested_struct8.c,
      	testsuite/libffi.call/cls_uint.c,
      	testsuite/libffi.call/cls_multi_ushortchar.c,
      	testsuite/libffi.call/cls_schar.c,
      	testsuite/libffi.call/cls_uchar.c,
      	testsuite/libffi.call/cls_align_uint64.c,
      	testsuite/libffi.call/cls_ulonglong.c,
      	testsuite/libffi.call/cls_align_longdouble.c,
      	testsuite/libffi.call/cls_1_1byte.c,
      	testsuite/libffi.call/cls_12byte.c,
      	testsuite/libffi.call/cls_3_1byte.c,
      	testsuite/libffi.call/cls_3byte1.c,
      	testsuite/libffi.call/cls_4_1byte.c,
      	testsuite/libffi.call/cls_6_1_byte.c,
      	testsuite/libffi.call/cls_16byte.c,
      	testsuite/libffi.call/cls_18byte.c,
      	testsuite/libffi.call/closure_fn0.c,
      	testsuite/libffi.call/cls_9byte2.c,
      	testsuite/libffi.call/closure_fn2.c,
      	testsuite/libffi.call/closure_fn4.c,
      	testsuite/libffi.call/cls_ushort.c,
      	testsuite/libffi.call/closure_fn6.c,
      	testsuite/libffi.call/cls_5byte.c,
      	testsuite/libffi.call/cls_align_pointer.c,
      	testsuite/libffi.call/cls_7byte.c,
      	testsuite/libffi.call/cls_align_sint32.c,
      	testsuite/libffi.special/unwindtest_ffi_call.cc,
      	testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
      
      From-SVN: r127337
      David Daney committed
    • re PR libffi/28313 (libffi has not been ported to mips64-linux-gnu) · 89d9d98a
      	PR libffi/28313
      	* configure.ac: Don't treat mips64 as a special case.
      	* Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
      	* configure: Regenerate
      	* Makefile.in: Ditto.
      	* fficonfig.h.in: Ditto.
      	* src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
      	(LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
      	(FFI_DEFAULT_ABI): Set for n64 case.
      	(FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
      	* src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
      	(ffi_closure_N32): New function.
      	(.eh_frame): New section
      	* src/mips/o32.S: Clean up comments.
      	(ffi_closure_O32): Pass ffi_closure parameter in $12.
      	* src/mips/ffi.c: Use FFI_MIPS_N32 instead of
      	_MIPS_SIM == _ABIN32 throughout.
      	(FFI_MIPS_STOP_HERE): New, use in place of
      	ffi_stop_here.
      	(ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
      	to support n32/n64 ABIs.
      	(calc_n32_struct_flags): Rewrite.
      	(calc_n32_return_struct_flags): Remove unused variable.  Reverse
      	position of flag bits.
      	(ffi_prep_cif_machdep): Rewrite n32 portion.
      	(ffi_call): Enable for n64.  Add special handling for small structure
      	return values.
      	(ffi_prep_closure_loc): Add n32 and n64 support.
      	(ffi_closure_mips_inner_O32): Add cast to silence warning.
      	(copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
      
      From-SVN: r127336
      David Daney committed
    • re PR c++/17763 (Wrong context in error message for template parameter) · 2fbe0e5a
      /cp
      2007-08-10  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/17763
      	* error.c (dump_expr): Consistently use the *_cxx_*
      	variants of the pretty-print functions.
      
      /testsuite
      2007-08-10  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/17763
      	* g++.dg/other/error16.C: New.
      
      From-SVN: r127335
      Paolo Carlini committed
    • re PR fortran/32933 (ICE in simplify_subreg with -fdefault-integer-8) · 8a09ef91
      	PR fortran/32933
      
      	* trans-decl.c (gfc_build_builtin_function_decls): Change
      	prototype for associated.
      	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert the
      	result of __builtin_isnan into a boolean.
      	(gfc_conv_intrinsic_strcmp): Cleanup.
      	(gfc_conv_associated): Convert the result of the associated
      	function into a boolean.
      
      	* intrinsics/associated.c: Change return type of associated into
      	a C int.
      
      From-SVN: r127334
      Francois-Xavier Coudert committed
    • re PR fortran/33039 (Read NAMELIST: reads wrong namelist name) · f419b672
      2007-08-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/33039
      	* gfortran.dg/namelist_37.f90: New test.
      
      From-SVN: r127333
      Jerry DeLisle committed
    • re PR fortran/33039 (Read NAMELIST: reads wrong namelist name) · cf9293a1
      2007-08-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/33039
      	* io/list_read.c (find_nml_name): Check for a space after a namelist
      	name match.
      
      From-SVN: r127332
      Jerry DeLisle committed
    • re PR c++/22256 (diagnostic shows wrong type for conversion operator) · caba2081
      /cp
      2007-08-10  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/22256
      	* decl.c (check_special_function_return_type): Just error
      	on return type specified for conversion operator.
      
      /testsuite
      2007-08-10  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/22256
      	* g++.dg/conversion/op3.C: New.
      
      From-SVN: r127331
      Paolo Carlini committed
    • Daily bump. · d184f9d9
      From-SVN: r127329
      GCC Administrator committed
  2. 09 Aug, 2007 14 commits
    • mips.opt (mhard-float, [...]): Make these control TARGET_HARD_FLOAT_ABI and… · cc4ebe7d
      mips.opt (mhard-float, [...]): Make these control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI...
      
      2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/mips/mips.opt (mhard-float, msoft-float):  Make these
      	control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
      	than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
      	* config/mips/mips.h (mips16_hard_float): Delete.
      	(TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
      	definitions, and replace with....
      	(TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
      	* config/mips/mips.c (mips16_hard_float): Delete.  Replace
      	all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
      	(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
      	(override_options):  Replace MASK_SOFT_FLOAT references with
      	MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
      	and mips16_hard_float when TARGET_MIPS16.
      
      From-SVN: r127325
      Sandra Loosemore committed
    • re PR fortran/32987 (TAB in FORMAT: accept extension, warn with -std=f*) · c2df0359
      2007-08-09  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/32987
      	* io.c (format_token): Add FMT_ERROR.
      	(next_char_not_space): Print error/warning when
      	'\t' are used in format specifications.
      	(format_lex): Propagate error.
      	(check_format): Ditto.
      
      2007-08-09  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/32987
      	* io/format.c (next_char): Treat '\t' as ' ' in format specification.
      
      2007-08-09  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/32987
      	* gfortran.dg/fmt_tab_1.f90: New.
      	* gfortran.dg/fmt_tab_2.f90: New.
      
      From-SVN: r127324
      Tobias Burnus committed
    • re PR c/32796 (internal compiler error: tree check: expected integer_type or… · eafaa675
      re PR c/32796 (internal compiler error: tree check: expected integer_type or enumeral_type or boolean_type or real_type, have pointer_type in int_fits_type_p)
      
      2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR c/32796
              * c-typeck.c (build_binary_op): Check for non pointer types before
              calling int_fits_type_p.
      
      2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR c/32796
              * gcc.c-torture/compile/pr32796.c: New test.
      
      From-SVN: r127323
      Andrew Pinski committed
    • re PR middle-end/32813 (ICE for array expression in empty if statement, compiled… · e057e0cd
      re PR middle-end/32813 (ICE for array expression in empty if statement, compiled with -fbounds-check)
      
      2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/32813
              * fold-const.c (omit_one_operand): Return only the ommitted expression
              if the result is an empty statement.
              (pedantic_omit_one_operand): Likewise.
      
      2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/32813
              * gfortran.fortran-torture/compile/emptyif-1.f90: New test.
              * lib/fortran-torture.exp (fortran-torture): Use TORTURE_OPTIONS instead
              of just -O.
      
      From-SVN: r127322
      Andrew Pinski committed
    • re PR fortran/33001 (error with hexadecimal DATA) · b49957dd
      2007-08-09  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/33001
      	* arith.c (arith_error): Point in the error message
      	to -fno-range-check.
      
      From-SVN: r127321
      Tobias Burnus committed
    • c-typeck.c (readonly_error): Improve error for assignment. · d7705934
      2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
      
      	* c-typeck.c (readonly_error): Improve error for assignment.
      	
      	* c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
      	expression. 
      	(pp_c_expression): Ditto.
      2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
      
      	* typeck2.c (readonly_error): Handle general expressions.
      	* error.c (dump_expr): Handle POINTER_PLUS_EXPR
      
      From-SVN: r127320
      Daniel Berlin committed
    • simplify-rtx.c (simplify_binary_operation_1): Removed erroneous break that was… · d6bc05d4
      simplify-rtx.c (simplify_binary_operation_1): Removed erroneous break that was preventing simplify_associative_operation()...
      
      
              * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
              break that was preventing simplify_associative_operation() for xor.
      
      From-SVN: r127319
      Simon Baldwin committed
    • tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, [...]): Document change in interpretation of… · 14670a74
      tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, [...]): Document change in interpretation of value from boolean to tri-state integer.
      
      2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
      	    Nigel Stephens  <nigel@mips.com>
      
      	gcc/
      	* doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
      	Document change in interpretation of value from boolean to
      	tri-state integer.
      	* optabs.c (expand_ffs, expand_ctz): New functions to compute
      	ffs and ctz using clz.
      	(expand_unop):  Call them.
      	* config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
      	result value.
      	(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
      	* config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
      	enable the new ffs expansion on this target.
      
      Co-Authored-By: Nigel Stephens <nigel@mips.com>
      
      From-SVN: r127318
      Sandra Loosemore committed
    • optabs.c (expand_widen_pattern_expr): Use optabs accestors. · 166cdb08
      
      	* optabs.c (expand_widen_pattern_expr): Use optabs accestors.
      	(expand_ternary_op): Likewise.
      	(expand_vec_shift_expr): Likewise.
      	(expand_binop_directly): Likewise.
      	(expand_binop): Likewise.
      	(sign_expand_binop): Likewise.
      	(expand_twoval_unop): Likewise.
      	(expand_twoval_binop): Likewise.
      	(expand_twoval_binop_libfunc): Likewise.
      	(widen_clz): Likewise.
      	(widen_bswap): Likewise.
      	(expand_parity): Likewise.
      	(expand_unop): Likewise.
      	(expand_abs_nojump): Likewise.
      	(expand_copysign): Likewise.
      	(emit_no_conflict_block): Likewise.
      	(emit_libcall_block): Likewise.
      	(can_compare_p): Likewise.
      	(prepare_cmp_insn): Likewise.
      	(emit_cmp_and_jump_insn_1): Likewise.
      	(prepare_float_lib_cmp): Likewise.
      	(emit_conditional_add): Likewise.
      	(gen_add2_insn): Likewise.
      	(have_add2_insn): Likewise.
      	(gen_sub2_insn): Likewise.
      	(have_sub2_insn): Likewise.
      	(can_extend_p): Likewise.
      	(can_fix_p): Likewise.
      	(can_float_p): Likewise.
      	(expand_float): Likewise.
      	(expand_fix): Likewise.
      	(expand_sfix_optab): Likewise.
      	(new_optab): Likewise.
      	(new_convert_optab): Likewise.
      	(init_libfuncs): Likewise.
      	(init_interclass_conv_libfuncs): Likewise.
      	(init_intraclass_conv_libfuncs): Likewise.
      	(set_conv_libfunc): Likewise.
      	(init_optabs): Likewise.
      	(debug_optab_libfuncs): Likewise.
      	(gen_cond_trap): Likewise.
      	* optabs.h (optab_handler, convert_optab_hanlder): New.
      	* genopinit.c: Update optabs generation table.
      	* reload.c (find_reloads_address_1): Use optabs accestors.
      	* builtins.c (expand_builtin_mathfn): Likewise.
      	(expand_builtin_mathfn_2): Likewise.
      	(expand_builtin_mathfn_3): Likewise.
      	(expand_builtin_interclass_mathfn): Likewise.
      	(expand_builtin_sincos): Likewise.
      	(expand_builtin_cexpi): Likewise.
      	(expand_builtin_powi): Likewise.
      	(expand_builtin_strlen): Likewise.
      	* dojump.c (do_jump): Likewise.
      	* expr.c (convert_move): Likewise.
      	(move_by_pieces): Likewise.
      	(move_by_pieces_ninsns): Likewise.
      	(can_store_by_pieces): Likewise.
      	(store_by_pieces_1): Likewise.
      	(emit_move_via_integer): Likewise.
      	(emit_move_complex): Likewise.
      	(emit_move_ccmode): Likewise.
      	(emit_move_insn_1): Likewise.
      	(emit_single_push_insn): Likewise.
      	(store_constructor): Likewise.
      	(expand_expr_real_1): Likewise.
      	(do_store_flag): Likewise.
      	* ada/misc.c (gnat_compute_largest_alignment): Likewise.
      	(enumerate_modes): Likewise.
      	* tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
      	(supportable_widening_operation): Likewise.
      	(supportable_narrowing_operation): Likewise.
      	* expmed.c (store_bit_field_1): Likewise.
      	(extract_bit_field_1): Likewise.
      	(expand_mult_highpart_optab): Likewise.
      	(expand_smod_pow2): Likewise.
      	(expand_divmod): Likewise.
      	(emit_store_flag): Likewise.
      	* tree-vect-patterns.c
      	(vect_pattern_recog_1): Likewise.
      	* tree-ssa-loop-prefetch.c
      	(nontemporal_store_p): Likewise.
      	* tree-vect-transform.c (vect_model_reduction_cost): Likewise.
      	(vect_create_epilog_for_reduction): Likewise.
      	(vectorizable_reduction): Likewise.
      	(vectorizable_operation): Likewise.
      	(vect_strided_store_supported): Likewise.
      	(vectorizable_store): Likewise.
      	(vect_strided_load_supported): Likewise.
      	(vectorizable_load): Likewise.
      	* combine.c (simplify_comparison): Likewise.
      	* tree-vect-generic.c
      	(type_for_widest_vector_mode): Likewise.
      	(expand_vector_operations_1): Likewise.
      	* config/spu/spu.c (spu_expand_mov): Likewise.
      	(spu_emit_vector_compare): Likewise.
      	* config/rs6000/rs6000.c
      	(rs6000_emit_vector_compare): Likewise.
      	* stmt.c (add_case_node): Likewise.
      	* reload1.c (gen_reload):
      
      From-SVN: r127317
      Jan Hubicka committed
    • tree.h (fixed_zerop): Declare as taking a const_tree. · 3eb0da77
              * tree.h (fixed_zerop): Declare as taking a const_tree.
              * tree.c (fixed_zerop): Take a const_tree.
      
      From-SVN: r127316
      Michael Matz committed
    • tree-vect-transform.c (vectorizable_store): Remove call to… · cd7ae74d
      tree-vect-transform.c (vectorizable_store): Remove call to copy_virtual_operands() and call mark_symbols_for_renaming() for...
      
      	* tree-vect-transform.c (vectorizable_store): Remove call to
      	copy_virtual_operands() and call mark_symbols_for_renaming() for
      	the created vector store.
      	(vect_setup_realignment): Don't call copy_virtual_operands() and
      	update_vuses_to_preheader(). 
      	(vectorizable_load): Don't call copy_virtual_operands(). 
      	(update_vuses_to_preheader): Remove.
      
      From-SVN: r127315
      Ira Rosen committed
    • libjava.exp (libjava_invoke): Log the invocation. · fbb85475
      
              * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation.
      
      From-SVN: r127314
      Andrew Haley committed
    • ffitest.h (ffi_type_mylong): Remove definition. · d23869d4
      	* testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
      	* testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
      	specifiers.
      	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
      	* testsuite/libffi.call/cls_sint.c (main): Ditto.
      	* testsuite/libffi.call/nested_struct9.c (main): Ditto.
      	* testsuite/libffi.call/cls_20byte1.c (main): Ditto.
      	* testsuite/libffi.call/cls_9byte1.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn1.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn3.c (main): Ditto.
      	* testsuite/libffi.call/return_dbl2.c (main): Ditto.
      	* testsuite/libffi.call/cls_sshort.c (main): Ditto.
      	* testsuite/libffi.call/return_fl3.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn5.c (main): Ditto.
      	* testsuite/libffi.call/nested_struct.c (main): Ditto.
      	* testsuite/libffi.call/nested_struct10.c (main): Ditto.
      	* testsuite/libffi.call/return_ll1.c (main): Ditto.
      	* testsuite/libffi.call/cls_8byte.c (main): Ditto.
      	* testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
      	* testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
      	* testsuite/libffi.call/cls_20byte.c (main): Ditto.
      	* testsuite/libffi.call/nested_struct2.c (main): Ditto.
      	* testsuite/libffi.call/cls_24byte.c (main): Ditto.
      	* testsuite/libffi.call/nested_struct6.c (main): Ditto.
      	* testsuite/libffi.call/cls_uint.c (main): Ditto.
      	* testsuite/libffi.call/cls_12byte.c (main): Ditto.
      	* testsuite/libffi.call/cls_16byte.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn0.c (main): Ditto.
      	* testsuite/libffi.call/cls_9byte2.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn2.c (main): Ditto.
      	* testsuite/libffi.call/return_dbl1.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn4.c (main): Ditto.
      	* testsuite/libffi.call/closure_fn6.c (main): Ditto.
      	* testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
      
      From-SVN: r127312
      David Daney committed
    • Daily bump. · c0072b26
      From-SVN: r127310
      GCC Administrator committed
  3. 08 Aug, 2007 12 commits
    • re PR fortran/32902 (Document integer KIND of SIZEOF()) · 88821319
      	PR fortran/32902
      	* intrinsic.texi (SIZEOF): Add mention to C_SIZE_T.
      
      From-SVN: r127307
      Francois-Xavier Coudert committed
    • tree.def (FIXED_POINT_TYPE): New type. · 325217ed
      	* tree.def (FIXED_POINT_TYPE): New type.
      	(FIXED_CST): New constant.
      	(FIXED_CONVERT_EXPR): New expr.
      	* doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
      	(Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
      	* tree.h (struct tree_base): Add saturating_flag.
      	Remove one bit of spare for saturating_flag.
      	(NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
      	(NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
      	FIXED_POINT_TYPE_P): Define.
      	(TYPE_SATURATING): Define.
      	(TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
      	(struct tree_fixed_cst): New.
      	(TYPE_IBIT, TYPE_FBIT): Define.
      	(tree_node): Add fixed_cst.
      	(enum tree_index): Add new enumeration values of
      	TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
      	TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
      	TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
      	TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
      	TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
      	TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
      	TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
      	TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
      	TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
      	TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
      	TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
      	TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
      	TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
      	TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
      	TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
      	TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
      	TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
      	TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
      	(sat_short_fract_type_node, sat_fract_type_node,
      	sat_long_fract_type_node, sat_long_long_fract_type_node,
      	sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
      	sat_unsigned_long_fract_type_node,
      	sat_unsigned_long_long_fract_type_node, short_fract_type_node,
      	fract_type_node, long_fract_type_node, long_long_fract_type_node,
      	unsigned_short_fract_type_node, unsigned_fract_type_node,
      	unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
      	sat_short_accum_type_node, sat_accum_type_node,
      	sat_long_accum_type_node, sat_long_long_accum_type_node,
      	sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
      	sat_unsigned_long_accum_type_node,
      	sat_unsigned_long_long_accum_type_node, short_accum_type_node,
      	accum_type_node, long_accum_type_node, long_long_accum_type_node,
      	unsigned_short_accum_type_node, unsigned_accum_type_node,
      	unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
      	qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
      	uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
      	utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
      	sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
      	sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
      	sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
      	ta_type_node, uha_type_node, usa_type_node, uda_type_node,
      	uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
      	sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
      	sat_uda_type_node, sat_uta_type_node): New macro.
      	(make_fract_type, make_accum_type): Declare.
      	(make_signed_fract_type, make_unsigned_fract_type,
      	make_sat_signed_fract_type, make_sat_unsigned_fract_type,
      	make_signed_accum_type, make_unsigned_accum_type,
      	make_sat_signed_accum_type, make_sat_unsigned_accum_type,
      	make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
      	make_or_reuse_sat_signed_fract_type,
      	make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
      	make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
      	make_or_reuse_sat_unsigned_accum_type): New macro.
      	(fixed_zerop): Declare.
      	* defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
      	LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
      	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
      	LONG_LONG_ACCUM_TYPE_SIZE): Define.
      	* treestruct.def: Add TS_FIXED_CST.
      	* Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
      	(tree.o): Likewise.
      	(tree-dump.o): Likewise.
      	(print-tree.o): Likewise.
      	(tree-pretty-print.o): Likewise.
      	(fold-const.o): Likewise.
      	* tree-complex.c (some_nonzerop): Handle FIXED_CST.
      	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
      	(is_gimple_min_invariant): Handle FIXED_CST.
      	* stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
      	MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
      	MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
      	(layout_type): Handle FIXED_POINT_TYPE.
      	(make_fract_type, make_accum_type): New functions.
      	* tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
      	* tree-dump.c (fixed-value.h): New include.
      	(dump_fixed): New function.
      	(dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
      	* tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
      	(estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
      	* tree-pretty-print.c (fixed-value.h): New include.
      	(dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
      	FIXED_CONVERT_EXPR.
      	* tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
      	* tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
      	* tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
      	* tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
      	for non-saturating fixed-point types.
      	(reassociate_bb): Likewise.
      	* emit-rtl.c (fixed-value.h): New include.
      	(fconst0, fconst1): New array.
      	(init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
      	* tree-vect-generic.c expand_vector_operation): Support
      	MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
      	MODE_VECTOR_UACCUM.
      	(type_for_widest_vector_mode): Add one parameter for the 
      	saturating flag.
      	Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
      	vector mode.
      	Pass the satp parameter to type_for_mode for fixed-point types.
      	(expand_vector_operations_1): Pass the saturating flag to
      	type_for_widest_vector_mode.
      	Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
      	and MODE_VECTOR_UACCUM.
      	* tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
      	(vectorizable_condition): Likewise.
      	* tree.c (fixed-value.h): New include.
      	(tree_code_size): Support FIXED_CST.
      	(build_fixed): New function.
      	(build_one_cst): Support FIXED_POINT_TYPE for accum types.
      	(fixed_zerop): New function.
      	(tree_node_structure): Support FIXED_CST.
      	(type_contains_placeholder_1): Support FIXED_POINT_TYPE.
      	(build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
      	(type_hash_eq): Handle FIXED_POINT_TYPE.
      	(simple_cst_equal): Support FIXED_CST.
      	(iterative_hash_expr): Handle FIXED_CST.
      	(get_unwidened): Make sure type is not FIXED_POINT_TYPE.
      	(get_narrower): Likewise.
      	(variably_modified_type_p): Handle FIXED_POINT_TYPE.
      	(make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
      	(build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
      	MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
      	nodes.
      	(build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
      	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
      	(initializer_zerop): Support FIXED_CST.
      	(walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
      	* dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
      	DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
      	(is_base_type): Handle FIXED_POINT_TYPE.
      	(add_type_attribute): Handle FIXED_POINT_TYPE.
      	(gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
      	* print-tree.c (fixed-value.h): New include.
      	(print_node_brief): Support FIXED_CST.
      	(print_node): Support FIXED_POINT_TYPE and FIXED_CST.
      	* c-pretty-print.c (fixed-value.h): New include.
      	(pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
      	TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
      	(pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
      	Support fixed-point types for inner items in VECTOR_TYPE.
      	(pp_c_direct_declarator): Likewise.
      	(pp_c_declarator): Likewise.
      	(pp_c_fixed_constant): New function.
      	(pp_c_constant): Handle FIXED_CST.
      	(pp_c_primary_expression): Likewise.
      	(pp_c_expression): Likewise.
      	* fold-const.c (fixed-value.h): New include.
      	(negate_expr_p): Return true for FIXED_CST.
      	(fold_negate_expr): Support FIXED_CST.
      	(split_tree): Support FIXED_CST.
      	(const_binop): Support FIXED_CST.
      	(fold_convert_const_int_from_fixed): New function to convert from
      	fixed to int.
      	(fold_convert_const_real_from_fixed): New function to convert from
      	fixed to real.
      	(fold_convert_const_fixed_from_fixed): New function to convert from
      	fixed to another fixed.
      	(fold_convert_const_fixed_from_int): New function to convert from
      	int to fixed.
      	(fold_convert_const_fixed_from_real): New function to convert from
      	real to fixed.
      	(fold_convert_const): Support conversions from fixed to int, from
      	fixed to real, from fixed to fixed, from int to fixed, and from real
      	to fixed.
      	(fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
      	(operand_equal_p): Support FIXED_CST.
      	(make_range): For fixed-point modes, we need to pass the
      	saturating flag as the 2nd parameter.
      	(tree_swap_operands_p): Handle FIXED_CST.
      	(fold_plusminus_mult_expr): For fract modes, we cannot generate
      	constant 1.
      	(fold_unary): Support FIXED_CONVERT_EXPR.
      	(fold_binary): Handle FIXED_CST.
      	Make sure the type is not saturating, before associating operations.
      	Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
      	(tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
      	(fold_negate_const): Support FIXED_CST.
      	(fold_relational_const): Support FIXED_CST.
      	* gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
      	(gimplify_expr): Handle FIXED_CST.
      	(gimplify_type_sizes): Handle FIXED_POINT_TYPE.
      	* ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
      	* ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
      	* doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
      	FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
      	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
      	LONG_LONG_ACCUM_TYPE_SIZE.
      	* dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
      	* c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
      	* tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
      	* expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
      	MODE_ACCUM, and MODE_UACCUM.
      	* tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
      	fixed-point types to disable reduction.
      	* explow.c (promote_mode): Support FIXED_POINT_TYPE.
      
      From-SVN: r127306
      Chao-ying Fu committed
    • natVMInetAddressPosix.cc (java::net::VMInetAddress::getLocalHostname): Allocate buffer dynamically. · ad10fdc2
      2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
      
              * java/net/natVMInetAddressPosix.cc
              (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
              Allocate buffer dynamically.
      
      From-SVN: r127305
      Samuel Thibault committed
    • x-rs6000: New file. · 0eab6840
              * config/rs6000/x-rs6000: New file.
              * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
              * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
              (EXTRA_SPEC_FUNCTIONS): Define.
              (HAVE_LOCAL_CPU_DETECT): Define.
              (CC1_CPU_SPEC): Define.
              * config/rs6000/driver-rs6000.c: New file.
              * config/rs6000/aix.h (CC1_SPEC): Define.
              * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
              * config.host: Add x-rs6000 to host_xmake_file if host and target
              are rs6000 or powerpc.
      
      From-SVN: r127304
      David Edelsohn committed
    • t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=. · be1767b7
      2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
      
      	* config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
      
      From-SVN: r127301
      Paolo Bonzini committed
    • invoke.texi (-mcode-readable): Document. · c93c5160
      gcc/
      2007-08-08  Richard Sandiford  <richard@codesourcery.com>
      	    Sandra Loosemore  <sandra@codesourcery.com>
      	    Chao-ying Fu  <fu@mips.com>
      	    Nigel Stephens  <nigel@mips.com>
      	    David Ung  <davidu@mips.com>
      
      	* doc/invoke.texi (-mcode-readable): Document.
      	* config/mips/mips.opt (mcode-readable): New option.
      	* config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
      	* config/mips/mips.h (mips_code_readable_setting): New enum.
      	(mips_code_readable): Declare.
      	(TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
      	(TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
      	(JUMP_TABLES_IN_TEXT_SECTION): Use it.
      	(CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
      	boiler-plate comments.
      	(ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
      	* config/mips/mips.c (mips_code_readable): New variable.
      	(mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
      	MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
      	context and -mcode-readable setting to restrict the use of
      	SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
      	Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
      	(mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
      	(mips_blocks_for_constant_p): Only return false for
      	TARGET_MIPS16_PCREL_LOADS.
      	(mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
      	for MIPS16.  Handle SYMBOL_32_HIGH.
      	(mips_const_insns): Allow HIGHs for MIPS16 too.
      	(mips_unspec_address_offset): New function, split out from...
      	(mips_unspec_address): ...here.
      	(mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
      	16-bit symbolic constants.  Assert approropiate conditions for
      	using the "la" and "dla" macros.
      	(mips_handle_option): Handle -mcode-readable=.
      	(override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
      	Set up mips_lo_relocs[SYMBOL_32_HIGH].
      	(mips_strip_unspec_address): New function, split out from...
      	(print_operand_reloc): ...here.
      	(print_operand): Pass constants through mips_strip_unspec_address.
      	(print_operand_address): Likewise.
      	(mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
      	(mips_select_rtx_section): Remove MIPS16 handling.
      	(mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
      	(mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
      	(mips16_lay_out_constants): Do nothing unless
      	TARGET_MIPS16_PCREL_LOADS.
      	(mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
      	* config/mips/mips.md: Split HIGHs for MIPS16.
      	(tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
      
      gcc/testsuite/
      	* gcc.target/mips/code-readable-1.c: New test.
      	* gcc.target/mips/code-readable-2.c: Likewise.
      	* gcc.target/mips/code-readable-3.c: Likewise.
      
      Co-Authored-By: Chao-ying Fu <fu@mips.com>
      Co-Authored-By: David Ung <davidu@mips.com>
      Co-Authored-By: Nigel Stephens <nigel@mips.com>
      Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
      
      From-SVN: r127300
      Richard Sandiford committed
    • mips-protos.h (mips_emit_move): Declare. · 51e7252a
      gcc/
      	* config/mips/mips-protos.h (mips_emit_move): Declare.
      	* config/mips/mips.c (mips_emit_move): New function.
      	(mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
      	(mips_legitimize_const_move): Likewise.
      	(mips_legitimize_move): Likewise.
      	(mips_split_64bit_move): Likewise.
      	(mips_restore_gp): Likewise.
      	(mips_load_call_address): Likewise.
      	(mips_emit_fcc_reload): Likewise.
      	(mips_set_return_address): Likewise.
      	(mips_block_move_straight): Likewise.
      	(mips_block_move_loop): Likewise.
      	(mips_setup_incoming_varargs): Likewise.
      	(mips_save_reg): Likewise.
      	(mips_expand_prologue): Likewise.
      	(mips_restore_reg): Likewise.
      	(mips_expand_epilogue): Likewise.
      	(mips_output_mi_thunk): Likewise.
      	(build_mips16_call_stub): Likewise.
      	(mips_builtin_branch_and_move): Likewise.
      	* config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
      	* config/mips/mips.md (fixuns_truncdfsi2): Likewise.
      	(fixuns_truncdfdi2): Likewise.
      	(fixuns_truncsfsi2): Likewise.
      	(fixuns_truncsfdi2): Likewise.
      	(loadgp_absolute): Likewise.
      	(builtin_setjmp_setup): Likewise.
      	(builtin_longjmp): Likewise.
      	(untyped_call): Likewise.
      
      From-SVN: r127299
      Richard Sandiford committed
    • mips-protos.h (mips_split_symbol): Add a mode and an "rtx *" argument. · 390ea488
      gcc/
      	* config/mips/mips-protos.h (mips_split_symbol): Add a mode and
      	an "rtx *" argument.  Return a bool.
      	* config/mips/mips.c (mips_split_symbol): Accept arbitrary source
      	values and return true if they can be split.  Take the same kind of
      	mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
      	and store the lo_sum there if nonnull.  Use the symbol type to
      	determine whether a $gp or HIGH is needed.
      	(mips_legitimize_address): Update call to mips_split_symbol and
      	simplify accordingly.
      	(mips_legitimize_const_move): Likewise.
      	* config/mips/mips.md: In the combine define_split,
      	check mips_split_symbol instead of splittable_symbolic_operand.
      	Update use of mips_split_symbol in the generator code.
      	* config/mips/predicates.md (splittable_symbolic_operand): Delete.
      
      From-SVN: r127298
      Richard Sandiford committed
    • mips.c (mips_symbolic_address_p): Delete. · fbb96ac5
      gcc/
      	* config/mips/mips.c (mips_symbolic_address_p): Delete.
      	(mips_symbol_insns_1): New function, split out from...
      	(mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
      	and stores separately from load addresses.
      	(mips_classify_address): Replace uses of mips_symbolic_address_p
      	with uses of mips_symbol_insns.
      	(mips_address_insns): Update calls to mips_symbol_insns.
      	(mips_const_insns): Likewise.
      	(mips_legitimize_address): Likewise.
      
      From-SVN: r127297
      Richard Sandiford committed
    • mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type. · e06e2776
      gcc/
      	* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
      	* config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
      	block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
      	Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
      	non-call contexts if TARGET_MIPS16.
      	(mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
      	(mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
      	code for SYMBOL_ABSOLUTE.
      	(mips_symbol_insns): Likewise.
      
      From-SVN: r127296
      Richard Sandiford committed
    • mips-protos.h (mips_symbol_context): New enumeration. · 280fcbfa
      gcc/
      	* config/mips/mips-protos.h (mips_symbol_context): New enumeration.
      	* config/mips/mips.c (mips_classify_symbol): Take a context argument.
      	(mips_symbolic_constant_p): Likewise.  Update the call to
      	mips_classify_symbol.
      	(mips_classify_address): Update the calls to mips_symbolic_constant_p.
      	(mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
      	(mips_legitimize_address): Update the call to mips_symbolic_constant_p.
      	(print_operand_reloc): Add a context argument.  Update the call to
      	mips_symbolic_constant_p.
      	(print_operand): Update the calls to print_operand_reloc.
      	(print_operand_address): Use print_operand_reloc rather than
      	print_operand.
      	(mips_rewrite_small_data_p): Add a context argument.  Update the call
      	to mips_symbolic_constant_p.
      	(mips_small_data_pattern_1): Make DATA the containing mem.
      	Update the call to mips_rewrite_small_data_p.
      	(mips_rewrite_small_data_1): Likewise.
      	(mips_use_anchors_for_symbol_p): Update the call to
      	mips_symbolic_constant_p.
      	* config/mips/predicates.md (const_call_insn_operand): Likewise.
      	(splittable_symbolic_operand): Likewise.
      	(move_operand): Likewise.
      	(absolute_symbolic_operand): Likewise.
      	(got_disp_operand): Likewise.
      	(got_page_ofst_operand): Likewise.
      
      From-SVN: r127295
      Richard Sandiford committed
    • mips-protos.h (SYMBOL_GENERAL): Rename to... · 67da85da
      gcc/
      	* config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
      	(SYMBOL_ABSOLUTE): ...this.
      	(SYMBOL_SMALL_DATA): Rename to...
      	(SYMBOL_GP_RELATIVE): ...this.
      	(SYMBOL_CONSTANT_POOL): Rename to...
      	(SYMBOL_PC_RELATIVE): ...this.
      	* config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
      	(mips_symbolic_address_p, mips_symbol_insns, override_options)
      	(mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
      	after above changes.
      	* config/mips/predicates.md (const_call_insn_operand): Likewise.
      	(general_symbolic_operand): Rename to...
      	(absolute_symbolic_operand): ...this.
      	* config/mips/mips.md: Update after above changes.
      
      From-SVN: r127294
      Richard Sandiford committed