Age | Commit message (Collapse) | Author | Files | Lines |
|
gcc/
* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
instead of PIC_DIRECT_ADDR_P.
(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
(IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
(IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
(PIC_OFFSET_P): Rename to...
(PCREL_SYMOFF_P): ...this.
(PIC_DIRECT_ADDR_P): Delete.
(MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
PIC_OFFSET_P.
(OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
* config/sh/sh.c (print_operand): Remove CONST handling.
(unspec_caller_rtx_p): Rewrite to use split_const and check
the operands of UNSPEC bases.
(fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
with (unspec [A B] UNSPEC_SYMOFF).
(nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
UNSPEC_PCREL_SYMOFF.
(sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
* config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
(UNSPEC_EXTRACT_U16): Likewise.
(UNSPEC_SYMOFF): Likewise.
(UNSPEC_PCREL_SYMOFF): Likewise.
(movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
of constants.
(movsi_const_16bit): Likewise.
(movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
(GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
with (unspec [A B] UNSPEC_PCREL_SYMOFF).
(sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
with (unspec [A B] UNSPEC_SYMOFF).
(symPLT_label2reg): Replace (minus A (minus B pc)) with
(unspec [A B] PCREL_UNSPEC_SYMOFF).
* config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
(Csu): Likewise UNSPEC_EXTRACT_U16.
(Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
(Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
From-SVN: r141046
|
|
PR c++/37146
* cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of
COND_EXPR.
* g++.dg/torture/pr37146-1.C: New test.
* g++.dg/torture/pr37146-2.C: New test.
* g++.dg/expr/bitfield10.C: New test.
From-SVN: r141045
|
|
and loop blocking.
2008-10-10 Stepan Kasal <skasal@redhat.com>
* gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
for loop strip mining and loop blocking.
From-SVN: r141042
|
|
debug info.
* fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
vary types depending on debug info.
From-SVN: r141021
|
|
ensuring it's already computed.
* c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
before ensuring it's already computed.
From-SVN: r141020
|
|
PR libfortran/37707
* gfortran.dg/namelist_54.f90: Revise test, check a(3).
From-SVN: r141016
|
|
From-SVN: r141014
|
|
PR c++/37568
* semantics.c (finalize_nrv_r): Clear DECL_INITIAL instead of
setting it to error_mark_node.
* testsuite/libmudflap.c++/pass66-frag.cxx: New test.
From-SVN: r141010
|
|
* rtl.h (locator_eq): New decl.
* cfglayout.c (locator_scope): New function.
(insn_scope): Use it.
(locator_eq): New function.
(fixup_reorder_chain): Search for last insn in src bb
that has locator set or first insn in dest bb. Use
locator_eq instead of == to compare locators.
* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
* cfgcleanup.c (try_forward_edges): Use locator_eq instead of
== to compare locators.
From-SVN: r141009
|
|
2008-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/37753
* io/transfer.c (unformatted_read): CONVERT_NATIVE
is the usual case. Check for kind==1 for non-byte-reversing
operation.
(unformatted_write): Likewise.
2008-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/37753
* gfortran.dg/convert_2.f90: New test case.
From-SVN: r141008
|
|
PR middle-end/37774
* tree.h (get_object_alignment): Declare.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Call
get_object_alignment if needed.
* builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
to ...
(get_object_alignment): ... here. New function. Try harder to
determine alignment from get_inner_reference returned offset.
From-SVN: r141003
|
|
* tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
as used.
* gimple-low.c (lower_function_body, lower_gimple_return,
lower_builtin_setjmp): Set gimple_block on the newly created stmts.
* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
goto_block on edges if goto_locus is known.
From-SVN: r141002
|
|
2008-10-09 Daniel Kraft <d@domob.eu>
PR fortran/35723
* gfortran.h (gfc_suppress_error): Removed from header.
(gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
* array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors
instead of directly changing gfc_suppress_error.
* intrinsic.c (gfc_intrinsic_func_interface): Ditto.
(gfc_intrinsic_sub_interface): Ditto.
* error.c (suppress_errors): Made static from `gfc_suppress_error'.
(gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
(gfc_notify_std), (gfc_error): Use new static name of global.
* expr.c (check_arglist), (check_references): New methods.
(check_restricted): Check arglists and references of EXPR_FUNCTIONs
and EXPR_VARAIBALEs, respectively. Allow PARAMETER symbols.
2008-10-09 Daniel Kraft <d@domob.eu>
PR fortran/35723
* gfortran.dg/restricted_expression_1.f90: New test.
* gfortran.dg/restricted_expression_2.f90: New test.
* gfortran.dg/restricted_expression_3.f90: New test.
From-SVN: r141001
|
|
2008-10-08 Jerry DeLisle <jvdelisle@gcc.gnu.org
PR libfortran/37707
* gfortran.dg/namelist_54.f90: New test.
From-SVN: r140997
|
|
From-SVN: r140992
|
|
* gcc.dg/vect/ggc-pr37574.c: Cleanup "vect" tree dump.
* gfortran.dg/intrinsic_optional_char_arg_1.f90: Cleanup
"original" tree dump.
* lib/gfortran-dg.exp (gfortran-dg-debug-runtest): Remove build
file trivial.S.
From-SVN: r140989
|
|
* gcc.target/mips/octeon-exts-2.c: Compile it with -meb.
* gcc.target/mips/octeon-exts-5.c: New test.
* gcc.target/mips/octeon-bbit-3.c: Compile with -meb. Add
comment why this is necessary.
From-SVN: r140988
|
|
delte_unreachable_blocks.
* graphite.c (gloog): Don't call find_unreachable_blocks
before delte_unreachable_blocks.
From-SVN: r140987
|
|
true_edge into RTL locator.
* cfgexpand.c (expand_gimple_cond): Convert also goto_block and
goto_locus of true_edge into RTL locator.
From-SVN: r140986
|
|
* config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
(*jcc_btdi_mask_rex64): Ditto.
(*jcc_btsi): Ditto.
(*jcc_btsi_mask): Ditto.
(*jcc_btsi_1): Ditto.
(*jcc_btsi_mask_1): Ditto.
From-SVN: r140976
|
|
(__gnu_mcount_nc).
2008-10-08 Paul Brook <paul@codesourcery.com>
gcc/
* config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
compatible profiler (__gnu_mcount_nc).
(SUBTARGET_FRAME_POINTER_REQUIRED): Define.
From-SVN: r140974
|
|
2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (initial_ix86_tune_features): Add
X86_TUNE_USE_VECTOR_FP_CONVERTS.
* config/i386/i386.h (ix86_tune_indices): Likewise.
(TARGET_USE_VECTOR_FP_CONVERTS): New.
* config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
for FP to FP splitters.
From-SVN: r140972
|
|
2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
splitter.
From-SVN: r140970
|
|
PR target/36635
PR target/37290
PR rtl-optimization/37341
* cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
to ORIG_BB, pass through ORIG_BB recursively.
(cse_condition_code_reg): Adjust caller.
* gcc.c-torture/compile/pr37341.c: New test.
From-SVN: r140966
|
|
2008-10-08 Kai Tietz <kai.tietz@onevision.com>
* sdbout.c (sdbout_one_type): Treat the value type
CONST_DECL for enumerals.
From-SVN: r140964
|
|
2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md: Remove trailing white spaces.
From-SVN: r140962
|
|
2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
PR rtl-optimization/37448
alloc_pool_desc (elt_size): New field.
alloc_pool_desc (created, allocated, current, peak): Make unsigned
long.
output_info (count): Renamed total_created and made unsigned long.
output_info (size): Renamed total_allocated and made unsigned long.
alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
pool_free): Properly keep track of desc->size.
(print_statistics, dump_alloc_pool_statistics): Enhance the
printing of statistics to print the number of elements and to use
unsigned longs.
From-SVN: r140960
|
|
From-SVN: r140958
|
|
PR middle-end/37576
* opts.h (CL_SAVE): Move up to flags range.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
CL_COMMON): Renumber.
(CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
* opts.c (common_handle_option): Revert last change.
From-SVN: r140955
|
|
2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (ix86_schedule): New.
* config/i386/i386.c (ix86_schedule): New.
(override_options): Add schedule to processor_alias_table. Set
ix86_schedule from the schedule field in processor_alias_table.
(ix86_function_specific_save): Save ix86_schedule.
(ix86_function_specific_restore): Restore ix86_schedule.
* config/i386/i386.md (cpu): Map to ix86_schedule instead of
ix86_tune. Add none and remove i386, i486, pentium4, nocona
and generic32.
* config/i386/i386.opt: Add schedule.
* config/i386/ppro.md: Remove generic32.
From-SVN: r140954
|
|
gcc/
2008-10-07 Simon Martin <simartin@users.sourceforge.net>
PR c/35437
* expr.c (count_type_elements): Handle ERROR_MARK.
gcc/testsuite/
2008-01-07 Simon Martin <simartin@users.sourceforge.net>
PR c/35437
* gcc.dg/struct-parse-2.c: New test.
* g++.dg/parse/struct-4.C: New test.
From-SVN: r140953
|
|
From-SVN: r140952
|
|
cannot debug)
PR debug/29609
PR debug/36690
PR debug/37616
* basic-block.h (struct edge_def): Add goto_block field.
* cfglayout.c (fixup_reorder_chain): Ensure that there is at least
one insn with locus corresponding to edge's goto_locus if !optimize.
* profile.c (branch_prob): Copy edge's goto_block.
* cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
emitted jumps.
(cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
locator in between the merged basic blocks if !optimize and needed.
* cfgexpand.c (expand_gimple_cond): Convert goto_block and
goto_locus into RTL locator. For unconditional jump use that
locator for the jump insn.
(expand_gimple_cond): Convert goto_block and goto_locus into
RTL locator for all remaining edges. For unconditional jump
use that locator for the jump insn.
* cfgcleanup.c (try_forward_edges): Avoid the optimization if
there is more than one edge or insn locator along the forwarding
edges and !optimize. If there is just one, set e->goto_locus.
* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
edge's goto_block.
(move_block_to_fn): Adjust edge's goto_block.
* gcc.dg/debug/pr29609-1.c: New test.
* gcc.dg/debug/pr29609-2.c: New test.
* gcc.dg/debug/pr36690-1.c: New test.
* gcc.dg/debug/pr36690-2.c: New test.
* gcc.dg/debug/pr36690-3.c: New test.
* gcc.dg/debug/pr37616.c: New test.
* gcc.dg/debug/dwarf2/pr29609-1.c: New test.
* gcc.dg/debug/dwarf2/pr29609-2.c: New test.
* gcc.dg/debug/dwarf2/pr36690-1.c: New test.
* gcc.dg/debug/dwarf2/pr36690-2.c: New test.
* gcc.dg/debug/dwarf2/pr36690-3.c: New test.
* gcc.dg/debug/dwarf2/pr37616.c: New test.
From-SVN: r140948
|
|
gcc/
2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/37731
* expmed.c (expand_mult): Properly check DImode constant in
CONST_DOUBLE.
gcc/testsuite/
2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/37731
* gcc.dg/torture/pr37731-1.c: New.
* gcc.dg/torture/pr37731-2.c: Likewise.
From-SVN: r140947
|
|
* f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
* trans-decl.c (gfc_build_qualified_array): Build accurate debug type
even if nest.
(build_entry_thunks, gfc_generate_function_code,
gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
with DECL_INITIAL as its BLOCK.
From-SVN: r140945
|
|
PR debug/37738
* dwarf2out.c (common_block_die_table): New variable.
(common_block_die_table_hash, common_block_die_table_eq): New
functions.
(gen_variable_die): Look up a DW_TAG_common_block die for a particular
COMMON block in the current scope rather than globally. Optimize
DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
DW_OP_addr SYMBOL_REF+off.
* gfortran.dg/debug/pr37738.f: New test.
From-SVN: r140944
|
|
non-addressable GIMPLE operands.
* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
Return true for non-addressable GIMPLE operands.
From-SVN: r140941
|
|
* gcc.dg/compat/struct-layout-1_generate.c (dg_options): New. Moved
dg-options lines to this array, and added options for xtensa*-*-*.
(NDG_OPTIONS): Define.
(switchfiles): Print dg-options lines from new dg_options array.
* g++.dg/compat/struct-layout-1_generate.c (dg_options): Add options
for xtensa*-*-* targets.
From-SVN: r140939
|
|
2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
PR target/24765
* config/i386/i386.c (initial_ix86_tune_features): Remove
X86_TUNE_USE_BIT_TEST.
* config/i386/i386.h (ix86_tune_indices): Likewise.
(TARGET_USE_BIT_TEST): Removed.
From-SVN: r140938
|
|
2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
From-SVN: r140936
|
|
code dealing with renaming.
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
dealing with volatileness to after code dealing with renaming.
From-SVN: r140924
|
|
* config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
(mul<mode>3_mul3): ... into this new template.
testsuite/
* gcc.target/mips/mips.exp (dg-mips-options): Set mips_new_gp to
32 when -march=r3900 is passed.
* testsuite/gcc.target/mips/r3900-mult.c: New test.
From-SVN: r140922
|
|
From-SVN: r140920
|
|
+ * gimplify.c (gimplify_arg): Add location argument. Use it.
+ (gimplify_call_expr): Pass location to gimplify_arg.
+ (gimplify_modify_expr_to_memcpy): Same.
+ (gimplify_modify_expr_to_memset): Same.
From-SVN: r140917
|
|
gcc/cp/:
PR c++/37376, other mangling issues
* mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling.
(write_member_name): Break out from...
(write_expression): ...here. Handle dependent COMPONENT_REF.
(write_template_arg): Wrap an argument pack in 'I'/'E'.
(write_builtin_type): Update char16/32_t mangling.
(write_nested_name, write_prefix): Don't forget template args
for typename types.
* operators.def: Add ARROW_EXPR, update COMPONENT_REF and
EXPR_PACK_EXPANSION.
libstdc++-v3/:
* config/abi/pre/gnu.ver: Update char16/32_t manglings.
include/:
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_PACK_EXPANSION.
libiberty/:
* cp-demangle.c (struct d_print_info): Add pack_index.
(d_dump): Add DEMANGLE_COMPONENT_PACK_EXPANSION.
(d_make_comp): Likewise. DEMANGLE_COMPONENT_ARGLIST and
DEMANGLE_COMPONENT_TEMPLATE_ARGLIST can have two null args.
(cplus_demangle_builtin_types): Add char16/32_t.
(cplus_demangle_type): Recognize them.
(d_template_args): Handle empty argument packs.
(d_template_arg): Handle argument packs.
(d_expression): Handle dependent name.
(d_index_template_argument): New fn.
(d_lookup_template_argument): New fn.
(d_find_pack, d_pack_length): New fn.
(d_print_subexpr): Split out...
(d_print_comp): ...from here. Use d_*_template_argument.
Handle empty arg lists. Support pack expansions.
* cp-demangle.h (D_BUILTIN_TYPE_COUNT): Increase to 32.
From-SVN: r140916
|
|
build_unary_op and build_indirect_ref for location changes.
2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Update calls to build_unary_op and build_indirect_ref for location
changes.
From-SVN: r140915
|
|
* c-decl.c (finish_decl): Pass input_location to build_unary_op.
* c-typeck.c (array_to_pointer_conversion): Pass location to
build_unary_op.
(function_to_pointer_conversion): Use error_at and warning_at.
(build_indirect_ref): Same.
(build_array_ref): Pass location to build_binary_op.
(parser_build_unary_op): Do not set location after calling
build_unary_op.
(build_unary_op): Add location argument. Use it throughout. Set
EXPR_LOCATION before returning new tree.
(build_modify_expr): Same.
(build_binary_op): Use location throughout. Set EXPR_LOCATION before
returning node.
* c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
build_indirect_ref, build_modify_expr.
(c_finish_omp_for): Same. Use error_at instead of error.
* c-common.c (c_common_truthvalue_conversion): Pass location to
build_unary_op.
(warn_for_div_by_zero): Add location argument.
* c-common.h: Add argument to build_modify_expr, build_indirect_ref,
build_unary_op, warn_for_div_by_zero.
* c-parser.c (c_parser_typeof_specifier): Use
protected_set_expr_location.
(c_parser_statement_after_labels): Same.
(c_parser_condition): Same.
(c_parser_expr_no_commas): Pass correct location to build_modify_expr.
(c_parser_conditional_expression): Use protected_set_expr_location.
(c_parser_unary_expression): Pass location to build_indirect_ref.
(c_parser_postfix_expression_after_primary): Pass location to
build_indirect_ref, build_unary_op.
(c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
objc/
* objc-act.c (objc_build_string_object): Pass location to
build_unary_op.
(init_def_list): Same.
(init_objc_symtab): Same.
(init_module_descriptor): Same.
(build_module_initializer_routine): Same.
(generate_static_references): Same.
(build_typed_selector_reference): Same.
(add_objc_string): Same.
(objc_substitute_decl): Same.
(objc_build_ivar_assignment): Same.
(objc_build_global_assignment): Same.
(objc_build_strong_cast_assignment): Same.
(generate_protocols): Same.
(build_protocol_initializer): Same.
(build_dispatch_table_initializer): Same.
(generate_protocol_list): Same.
(build_category_initializer): Same.
(build_shared_structure_initializer): Same.
(generate_shared_structures): Same.
(objc_build_protocol_expr): Same.
(build_ivar_reference): Same.
(get_super_receiver): Same.
build_modify_expr.
testsuite/
* gcc.dg/gomp/for-1.c: Test column.
* gcc.dg/misc-column.c: Add column tests for unary arguments.
cp/
* typeck.c (build_x_indirect_ref): Add location argument.
(cp_build_binary_op): Pass location to warn_for_div_by_zero.
(cp_build_unary_op): Add location argument.
(cp_build_modify_expr): Same.
* class.c (build_base_path): Pass location to build_indirect_ref.
* semantics.c (handle_omp_for_class_iterator): Pass elocus to
build_modify_expr.
From-SVN: r140914
|
|
gcc/
2008-10-06 Joshua Kinard <kumba@gentoo.org>
* doc/invoke.texi: List r1x000 family under the -march MIPS option.
* config/mips/mips.h (PROCESSOR_R10000): New processor_type.
* config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
r14000 and r16000.
(mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
(mips_issue_rate): Handle PROCESSOR_R10000.
* config/mips/mips.md (cpu): Add r10000.
Include r10000.md.
* config/mips/10000.md: New file.
From-SVN: r140913
|
|
gcc/
* config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
* config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
* config/rs6000/rs6000.c (rs6000_find_base_term): New function.
From-SVN: r140912
|
|
gcc/
* config/darwin-protos.h (machopic_function_base_name): Delete.
(machopic_function_base_sym): Likewise.
(machopic_gen_offset): Declare.
* config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
(ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
* config/darwin.c (machopic_function_base_name): Delete.
(machopic_function_base_sym): Likewise.
(gen_pic_offset): Rename to...
(machopic_gen_offset): ...this and remove the pic_base argument.
Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
crtl->uses_pic_offset_table.
(machopic_indirect_data_reference): Use new machopic_gen_offset
interface.
(machopic_legitimize_pic_address): Likewise.
(machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
* config/i386/darwin.h (GOT_SYMBOL_NAME): Use
MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
* config/i386/i386.c (output_set_got): Likewise.
(darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
instead of a MINUS.
(legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
(legitimate_address_p): Likewise.
(output_pic_addr_const): Likewise.
(output_addr_const_extra): Likewise.
(ix86_delegitimize_address): Expect darwin_local_data_pic to
match an UNSPEC rather than a MINUS.
* config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
(builtin_setjmp_receiver): Use machopic_gen_offset.
* config/i386/predicates.md (pic_symbolic_operand): Handle
UNSPEC_MACHOPIC_OFFSET.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
Use machopic_gen_offset and machopic_operand_p.
(rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
(rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
* config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
(builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
Set crtl->uses_pic_offset_table.
From-SVN: r140911
|