1. 05 Aug, 2011 1 commit
    • ro's avatar
      gcc: · e59be7e3
      ro authored
      	* Makefile.in (UNWIND_H): Remove.
      	(LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
      	../libgcc/Makefile.in.
      	(LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
      	(LIBUNWINDDEP): Remove.
      	(libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
      	(libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
      	LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
      	(stmp-int-hdrs): Remove $(UNWIND_H) dependency.
      	Don't copy $(UNWIND_H).
      	* config.gcc (ia64*-*-linux*): Remove with_system_libunwind
      	handling.
      	* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
      	unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
      	unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
      	unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
      	* unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
      	* config/arm/libunwind.S, config/arm/pr-support.c,
      	config/arm...
      e59be7e3
  2. 21 Apr, 2009 1 commit
    • jsm28's avatar
      * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998, · 7dfbd804
      jsm28 authored
      	ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
      	ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
      	ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
      	ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
      	FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
      	config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
      	config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
      	config/alpha/x-vms, config/arc/t-arc,
      	config/arm/README-interworking, config/arm/arm-c.c,
      	config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
      	config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
      	config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
      	config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
      	config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
      	config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
      	config/bfin/linux.h, con...
      7dfbd804
  3. 09 Sep, 2004 1 commit
    • rsandifo's avatar
      * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450) · 52cce740
      rsandifo authored
      	(FRV_CPU_FR405): New processor enums.
      	(frv_issue_rate, frv_acc_group): Declare.
      	* config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
      	(CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
      	(MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
      	(SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
      	(TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
      	handled by CPP_SPEC.
      	(MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
      	(MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
      	(ACC_MASK): New macro.
      	(TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
      	(TARGET_MEDIA_FR450): New macro.
      	(TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
      	(TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
      	(LABEL_ALIGN_AFTER_BARRIER): Define.
      	(ACC_LAST, ACCG_LAST): Add four new accumulator registers.
      	(IACC_FIRST, IACC_LAST): New pair of SPRs.
      	(ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
      	(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
      	(REGISTER_NAMES): Add entries for new registers.
      	(REG_CLASS_CONTENTS): Update for new register ranges.
      	(EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
      	(ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
      	(PACKING_FLAG_USED_P): Delete.
      	(FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
      	(FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
      	(FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
      	(FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
      	(FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
      	(FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
      	(FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
      	(FRV_BUILTIN_FIRST_NONMEDIA): New macro.
      	(CPU_UNITS_QUERY): Define to 1.
      	* config/frv/frv.c: Include gt-frv.h
      	(NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
      	(SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
      	(frv_insn_group): New enumeration.
      	(frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
      	(frv_type_to_unit, frv_nops, frv_num_nops): New variables.
      	(REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
      	(REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
      	gap left by REGSTATE_LIVE.
      	(regstate_t): New typedef.
      	(TARGET_MACHINE_DEPENDENT_REORG): Define.
      	(frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
      	(frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
      	Initialize frv_unit_codes[] and frv_type_to_unit[].
      	(frv_conditional_register_usage): Remove redundant fixing of
      	accumulator registers.
      	(frv_insn_packing_flag): Update specification.
      	(frv_function_prologue): Don't set frv_insn_packing_flag here.
      	Zero out frv_nops[].
      	(frv_expand_epilogue): Remove comments about the no-longer-present
      	SIBCALL_P argument.
      	(frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
      	PACKING_FLAG_USED_P() when deciding whether to pack instructions.
      	(frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
      	of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
      	packing is disabled and if INSN can only issue to M1.
      	(call_operand): Check TARGET_LONG_CALLS.
      	(acc_operand, even_acc_operand, quad_acc_operand)
      	(accg_operand): Simplify.  Don't accept pseudo registers.
      	(output_move_single): Handle SPR<-zero moves.
      	(frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
      	(frv_registers_update, frv_registers_used_p): Delete.
      	(frv_registers_set_p): Delete.
      	(frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
      	(frv_issues_to_branch_unit_p): New function.
      	(frv_packet): New structure.
      	(frv_cond_flags, frv_regstate_conflict_p): New functions.
      	(frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
      	(frv_registers_update_1, frv_registers_update): New functions.
      	(frv_start_packet, frv_start_packet_block, frv_finish_packet)
      	(frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
      	(frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
      	(frv_sort_insn_group, frv_reorder_packet): New functions.
      	(frv_pack_insns): Use frv_reorder_packet.
      	(frv_packet_address): New variable.
      	(frv_fill_unused_units, frv_align_label, frv_reorg_packet)
      	(frv_register_nop, frv_reorg): New functions.
      	(bdesc_1arg): Add __SCUTSS.
      	(bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
      	__SUBSS, __SLASS and __SCAN.
      	(bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
      	(bdesc_int_void2arg, bdesc_prefetches): New arrays.
      	(frv_init_builtins): Register the above builtins.
      	(frv_int_to_acc): Use ACC_MASK to check for valid accumulator
      	registers.  Turn the referenced accumulators into global registers.
      	(frv_read_iacc_argument): New function.
      	(frv_expand_int_void2arg, frv_expand_prefetches): New functions.
      	(frv_split_iacc_move): New function.
      	(frv_expand_builtin): Handle the new builtins.
      	* config/frv/frv.md: Replace old schedulers with new order-independent
      	ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
      	packing algorithm.
      	(cpu): Add fr550, fr450 and fr405.
      	(type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
      	mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
      	(*muladd[sd]f4, *mulsub[sd]f4): Fix types.
      	(*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
      	(fnop, mnop): New patterns.
      	(UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
      	New constants.
      	(mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
      	(mclracca8): Use ACC_MASK to determine the upper set of accumulator
      	registers.
      	(mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
      	(UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
      	(UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
      	(UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
      	(UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
      	(UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
      	(smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
      	(frv_prefetch0, frv_prefetch): New patterns.
      	* config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
      	-mcpu=simple.  Add -mcpu=fr550.
      	(MULTILIB_DIRNAMES): Update accordingly.
      	(MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
      	-mcpu=fr450.
      	* doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
      	-mlong-calls and -malign-labels options for FR-V.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87222 138bc75d-0d04-0410-961f-82ee72b054a4
      52cce740
  4. 24 Feb, 2004 1 commit
    • aoliva's avatar
      Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux. · 3e7f6cce
      aoliva authored
      2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
      symbols in sections named by the user.
      2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
      2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
      * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
      * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
      the above.
      2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
      one more pseudo to further improve code generation.
      2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
      inside UNSPEC.
      2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_legitimate_address_p): Added
      allow_double_reg_p argument.  Adjust all callers.  Use it to
      decide whether to enable double-register indirect addressing.
      (frv_funcdesc_alias_set): Remove.
      (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
      register.  Emit movdi_ldd.
      (ldd_address_operand): New.
      * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
      * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
      (PREDICATE_CODES): Add ldd_address_operand.
      * config/frv/frv.md (movdi_ldd): New.
      (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
      intermediate computations if possible.
      (symGOTOFF2reg_i): Fix harmless typo.
      2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
      * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
      relocated p_vaddr to vaddr type.
      * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
      * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
      (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
      MEM, or use a funcdesc alias set.  Use regular move instead of
      ldd.
      (dbl_memory_one_insn_operand): Recognize function descriptors by
      type or by alias set, and don't split them.
      * config/frv/frv.md (call, call_value): Never use call_internal
      for fdpic.
      (call_internal, call_value_internal): Never match for FDPIC.
      (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
      call_value_fdpicsi): Require FDPIC.
      (ldd): Removed.
      2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
      * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
      (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
      FDPIC.  Compute data base address.
      * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
      before the other self-specs are processed.
      * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
      Build with -fPIC.
      2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
      * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
      inhibit_libc is defined.
      2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
      * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
      __FRV_FDPIC__.
      (__RELOC_POINTER): Define.
      (_Unwind_IteratePhdrCallback): Use it.
      * config/frv/frv.h (Twrite): Define.
      (TRANSFER_FROM_TRAMPOLINE): Use it.
      * config/frv/linux.h (INVOKE__main): Undefine.
      (Twrite): Override.
      2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
      * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
      (-mlibrary-pic): Emphasize that this option generates EABI code.
      (-mcpu): Add fr550.
      (-mpack): Remove.
      2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
      and CONSTs in FDPIC mode.
      * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
      2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv.c (move_source_operand): Don't accept symbolic
      constants.
      * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
      rather than 'i' constraint for the 2-instruction alternative.
      (*movsi_2word): New, incorporating existing int_2word_operand splitter.
      2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
      EXTRA_CONSTRAINT_FOR_Y.
      (EXTRA_CONSTRAINT): Remove handling of 'Y'.
      * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
      (addsi3): Change 'Y' constraint to 'Q'.
      2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
      * reload.c (CONST_POOL_OK_P): New macro.
      (find_reloads): Use it to decide whether a constant can be forced
      into memory.
      * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
      constant satisfies got12_operand.
      (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
      (frv_legitimate_address_p): Check for valid unspec offsets using
      got12_operand rather than frv_legitimate_fdpic_operand_p.
      (frv_legitimate_fdpic_operand_p): Delete.
      (frv_emit_movsi): Abort if we try to use the FDPIC register during
      or after reload.
      (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
      TARGET_FDPIC.
      * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
      2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
      (frv_fdpic_fptr_operand): Don't declare here.
      * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
      rather than fdpic_got12_operand.
      (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
      got12_operand and const_unspec_operand.
      * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
      (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
      (symbolic_operand): Remove.
      (const_unspec_operand): New predicate.
      * config/frv/frv.md (*movsi_got): Use got12_operand.
      (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
      2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
      * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
      * config/frv/frv.c (frv_unspec): New structure.
      (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
      (frv_print_operand_memory_reference): Use frv_const_unspec_p to
      validate CONST indices.  Use frv_output_const_unspec to print them.
      (frv_print_operand): Update call to unspec_got_name.  Use
      frv_output_const_unspec to print constant unspecs.
      (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
      Reject UNSPECs otherwise.
      (unspec_got_name): Take the relocation number as argument, not an
      rtx containing it.
      (frv_output_addr_const_extra): Remove, replacing with...
      (frv_output_const_unspec): ...this new function.
      (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
      (gpr_or_int12_operand): Use fdpic_got12_operand.
      (dbl_memory_one_insn_operand): Likewise.
      (fdpic_got12_operand): Use frv_const_unspec_p.
      (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
      are already legitimate.  Use frv_small_data_reloc_p when deciding
      whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
      2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
      * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
      * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
      label, for real this time.
      * config/frv/frv.c (frv_local_funcdesc_p): Update to new
      representation of visibility.
      (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
      such.
      2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
      (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
      * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
      it was explicitly disabled.
      (frv_stack_info): There is no need to save the link register in every
      frame unless TARGET_LINKED_FP is true.
      (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
      frame pointer if the stack pointer might change value.
      (frv_return_addr_rtx): Check and process "count" argument.
      2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
      * config/frv/frv-protos.h (frv_legitimize_address): Remove.
      (frv_find_base_term): Declare.
      * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
      (FIND_BASE_TERM): Define.
      (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
      small_data_register_operand, small_data_symbolic_operand.  Add
      symbolic_operand.
      * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
      (frv_print_operand_memory_reference, output_move_single): Remove
      special handling for unlegitimized sdata addresses.
      (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
      and symbolic addresses.
      (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
      (frv_find_base_term): New function.
      (int_2word_operand): Check specifically for symbolic address constants.
      (pic_register_operand, pic_symbolic_operand): Delete.
      (small_data_register_operand, small_data_symbolic_operand): Delete.
      (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
      Allow UNSPEC_GOT constants if !TARGET_FDPIC.
      (move_source_operand): Only accept CONSTs if they're a two-insn
      symbolic constant.
      (fdpic_got12_operand): Don't require TARGET_FDPIC.
      (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
      using gen_symGOTOFF2reg*.
      (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
      (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
      themselves a cost of 3 insns.
      * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
      Change predicate to symbolic_operand.
      (*movsi_high_got, *movsi_lo_sum_got): Likewise.
      (*movsi_lda_sdata): Delete.
      (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
      2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
      * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
      frv-*-*linux*.
      * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
      label.
      * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
      -multilib-library-pic.
      (LINK_SPEC): Add -z text for -mfdpic.
      * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
      * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
      * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
      Override.
      (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
      FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
      * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
      crtstuff-generated files.
      2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
      * config.gcc: Add frv-*-*linux*.
      * config/frv/linux.h, config/frv/t-linux: New.
      2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
      when -mfdpic even if a linker script is explicitly listed.
      2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_override_options): Clear asm_out
      unaligned_op for SImode on FDPIC.
      (frv_emit_movsi): Use compute_reloc_for_constant to compute the
      argument passed to decl_readonly_section.
      (frv_assemble_integer): Revert 2003-09-30's change, but make the
      whole block run with FDPIC even with -fno-PIC.
      2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
      symbol or label plus offset to memory.
      (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
      GOTOFF and GPREL for LABEL_REF.
      * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
      -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
      (MASK_GPREL_RO, TARGET_GPREL_RO): New.
      (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
      * doc/invoke.texi: Document them.
      2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
      (frv_splittable_got_operand): Removed.
      * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
      LO_SUM.  Add comments.
      (frv_override_options): Moved enabling of FDPIC to
      DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
      (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
      (frv_legitimize_fdpic_address): Don't duplicate logic in
      frv_emit_movsi.
      (frv_gen_GPsym2reg): New.
      (unspec_got_name): Added gprel.
      (frv_expand_fdpic_call): Add support for inlining PLTs.
      (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
      (gpr_or_int12_operand): Added GPREL12.
      (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
      (small_data_symbolic_operand): Fail if FDPIC.
      (fdpic_splittable_got_operand): Removed.
      (fdpic_got12_operand): Added GPREL12.
      (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
      when appropriate.  Fix sdata GOTOFF.
      (frv_legitimate_constant_p): Require legitimate PIC operand for
      FDPIC with pic, but only a legitimate fdpic operand for non-pic.
      (frv_assemble_integer): Move FDPIC funcdesc handling out of
      flag_pic case.
      (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
      frv_assemble_integer fails.
      * config/frv/frv.h (DRIVER_SELF_SPECS): New.
      (SUBTARGET_DRIVER_SELF_SPECS): New.
      (ASM_SPEC): Don't pass -mno-fdpic.
      (LINK_SPEC): Pass -melf32frvfd for FDPIC.
      (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
      (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
      -multilib-library-pic.
      (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
      condexec_si_media_operator, condexec_sf_add_operator and
      condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
      and condexec_sf_unary_operator.
      * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
      New.
      (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
      movsi_internal.  Give them internal names.  movsi_got has type
      int.
      (fdpic got splitters): Remove.
      (symGPREL2reg, symGPREL2reg_hilo): New.
      * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
      to -mlibrary-pic.  Map -multilib-library-pic to it.
      * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
      Document.
      2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
      (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
      (frv_cannot_force_const_mem): New function.
      (const_small_data_p, plus_small_data_p): Update comments on sdata
      on FDPIC.
      (frv_override_options): Set flag_pie for FDPIC too.
      (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
      call-saved registers on FDPIC.
      (frv_stack_info): Don't preserve the PIC register on FDPIC, and
      don't force LR to be preserved.
      (frv_expand_prologue): Likewise.
      (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
      (frv_frame_pointer_required): Don't force it just because the
      FDPIC register is used.
      (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
      operand only if !condexec_p.
      (frv_legitimize_address): Return the FDPIC-legitimized address.
      Don't match small data here on FDPIC.
      (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
      symbols.  Use TRUE/FALSE instead of 1/0.
      (frv_local_funcdesc_p): New.
      (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
      immediates when possible.
      (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
      (dbl_memory_one_insn_operand): Accept addresses that add a REG and
      an UNSPEC_GOT.
      (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
      12-bit immediates when possible.
      (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
      are not legitimate pic operands.
      (frv_in_small_data_p): Re-enable for FDPIC.
      * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
      (FRV_GLOBAL_P): Removed.
      * config/frv/frv.md: Add modes to CONSTs.
      (movsi_got): New.
      (movsi_lo_sum_got): Use separate matches instead of match_dup.
      (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
      (fdpic splittable operations): Match on flag_pic != 1.
      2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_asm_out_constructor,
      frv_asm_out_destructor): Pass to frv_assemble_integer the size in
      bytes, not bits.
      2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
      * config/frv/frv.c (frv_assemble_integer): Reject complex
      expressions referencing function SYMBOL_REFs.
      * config/frv/frv.c (frv_function_symbol_referenced_p): New.
      (move_source_operand): Reject CONSTs that reference function
      SYMBOL_REFs on FDPIC.
      (frv_emit_movsi): If we get such a CONST, break it up.
      * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
      (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
      * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
      MEM.
      (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
      (frv_trampoline_size): Increase for FDPIC.
      * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
      (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
      * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
      Disable use of GOTOFF for now.
      (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
      Disable use of small data in FDPIC for now.
      (frv_asm_output_mi_thunk): Implement for FDPIC.
      * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
      * config/frv/frv.c (frv_asm_out_constructor): Use
      frv_assemble_integer for FDPIC pointers.
      (frv_asm_out_destructor): Likewise.
      * config/frv/frv.md (ldd): Fix order of operands.  Use
      address_operand for input.
      2003-09-18  DJ Delorie  <dj@redhat.com>
      * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
      (unspec_got_name): Correct typo.
      (frv_emit_movsi): Pre-expand splittable GOTs.
      (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
      * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
      (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
      * config/frv/t-frv: Add -mfdpic multilibs.
      * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
      (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
      * config/frv/frv.c (frv_override_options): -mfdpic assumes
      flag_pic, default to 32-bit pics, require DWORD ops.
      (frv_override_options): Add W and Z constraints.
      (frv_expand_prologue): No pic prologue for -mfdpic.
      (frv_asm_output_mi_thunk): Support -mfdpic (soon).
      (frv_print_operand_memory_reference): Handle GOT constants.
      (frv_legitimate_address_p): Allow GOT constants.
      (frv_legitimize_address): Handle GOT addresses too.
      (frv_legitimate_fdpic_operand_p): New.
      (frv_legitimize_fdpic_address): New.
      (unspec_got_name): New.
      (frv_output_addr_const_extra): New.
      (frv_expand_fdpic_call): New.
      (frv_fdpic_fptr_operand): New.
      (gpr_or_int12_operand): Handle GOT operands.
      (int_2word_operand): Handle GOT operands.
      (fdpic_operand): New.
      (fdpic_splittable_got_operand): New.
      (fdpic_got12_operand): New.
      (frv_emit_movsi): Handle GOT operands.
      (frv_assemble_integer): -mfdpic doesn't use rofixups.
      (frv_print_operand): Support 'g' code for GOT operands.
      * config/frv/frv-protos.h: Add prototypes as needed.
      * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
      R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
      R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
      R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
      R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
      R_FRV_GOTOFFLO): New.
      (movsi_high_got, movsi_lo_sum_got): New.
      (*movsi_pic): Don't use this splitter for -mfdpic.
      (addsi3): Allow GOT references also.
      (call, call_value): Handle -mfdpic separately.
      (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
      call_value_fdpicsi): New.
      (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
      symGOTOFF2reg_i): New.
      * config/frv/frv.h (MASK_FDPIC): New.
      (TARGET_FDPIC): New.
      (TARGET_SWITCHES): Add -mfdpic.
      (FDPIC_FPTR_REGNO): New.
      (FDPIC_REGNO): New.
      (OUR_FDPIC_REG): New.
      (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
      FDPIC_CALL_REGS.
      (REG_CLASS_NAMES): Likewise.
      (REG_CLASS_CONTENTS): Likewise.
      (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
      (EXTRA_CONSTRAINT): Add it here.
      (FRV_GLOBAL_P): New.
      (OUTPUT_ADDR_CONST_EXTRA): New.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78373 138bc75d-0d04-0410-961f-82ee72b054a4
      3e7f6cce
  5. 05 Sep, 2003 1 commit
  6. 03 Jun, 2003 1 commit
  7. 05 Aug, 2002 1 commit