Age | Commit message (Collapse) | Author | Files | Lines |
|
* config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
typos.
* doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
Follow spelling conventions.
From-SVN: r123025
|
|
gcc/
* configure.ac: Allow tm_file to contain build-directory files.
* configure: Regenerate.
* config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
* config/m68k/t-uclinux (sysroot-suffix.h): New target.
* config/m68k/print-sysroot-suffix.sh: New file.
From-SVN: r122613
|
|
reload_completed.
gcc/
* config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
of pic_offset_table_rtx if reload_completed.
(CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
PIC_OFFSET_TABLE_REGNUM.
* config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
return true.
(m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
(m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
From-SVN: r122612
|
|
gcc/
* config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
functions that call eh_return.
From-SVN: r122611
|
|
constant pool.
gcc/
* config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
functions that need a constant pool.
From-SVN: r122610
|
|
on m68k)
gcc/
PR target/28181
* config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
(m68k_preferred_reload_class): Likewise.
* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
(SECONDARY_RELOAD_CLASS): Define.
(PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
(LIMIT_RELOAD_CLASS): Delete.
* config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
registers from storing bytes.
(m68k_secondary_reload_class): New function.
(m68k_preferred_reload_class): Likewise.
gcc/testsuite/
* gcc.c-torture/compile/m68k-byte-addr.c: New test.
From-SVN: r122609
|
|
gcc/
* config/m68k/m68k.c (m68k_save_reg): Remove special case for
leaf functions.
(m68k_expand_prologue): Likewise.
From-SVN: r122608
|
|
gcc/
* config/m68k/m68k-protos.h (output_sibcall): Declare.
(mips_expand_epilogue): Add a bool parameter.
(m68k_legitimize_sibcall_address): Declare.
* config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
(m68k_expand_epilogue): Add a parameter to select between sibling
and normal epilogues. Only generate a return for the latter.
(m68k_ok_for_sibcall_p): New function.
(m68k_legitimize_sibcall_address, output_sibcall): New functions.
* config/m68k/m68k.md (sibcall, *sibcall): New patterns.
(sibcall_value, *sibcall_value): Likewise.
(*call, *call_value): Require !SIBLING_CALL_P.
(epilogue): Update call to m68k_expand_epilogue.
(sibcall_epilogue): New pattern.
* config/m68k/predicates.md (const_call_operand): Say that this
predicate applies to sibling calls too.
(sibcall_operand): New predicate.
From-SVN: r122607
|
|
gcc/
* config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
alternatives as movsi_cf.
(movsf_cf_hard): Add commentary.
From-SVN: r122606
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
(m68k_movem_pattern_p, m68k_output_movem): Likewise.
(m68k_expand_prologue, m68k_expand_epilogue): Likewise.
* config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
as being live on exit from an interrupt function.
(PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
* config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
(m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
(m68k_interrupt_function_p): Globalize.
(m68k_compute_frame_layout): Remove reverse mask code.
(m68k_emit_movem, m68k_set_frame_related): New functions.
(m68k_output_function_prologue): Delete in favor of...
(m68k_expand_prologue): ...this new function.
(m68k_output_function_epilogue): Delete in favor of...
(m68k_expand_epilogue): ...this new function.
(m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
functions.
(print_operand): Handle %?.
* config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
(UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
(prologue, epilogue): New patterns.
(return): Turn into a define_expand.
(*return): New pattern, derived from old "return" pattern. Use rte
rather than rts for interrupt functions. Only use rtd if the pop
count is nonzero.
(*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
(*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
(link, *link, unlink, *unlink, load_got): Likewise.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r122605
|
|
gcc/
PR target/23482
PR target/17114
* config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
(m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
(m68k_matches_q_p, m68k_matches_u_p): Likewise.
* config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
and m68k_matches_u_p.
(PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
(INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
(GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
(LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
(GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
(REG_STRICT_P): New macro.
(LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
PCREL_GENERAL_OPERAND_OK.
(REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
m68k_legitimate_base_reg_p.
(REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
(GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
(PIC_CASE_VECTOR_ADDRESS): Update comment.
* config/m68k/m68k.c (m68k_address): New structure.
(m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
(m68k_decompose_index, m68k_legitimate_constant_address_p)
(m68k_jump_table_ref_p, m68k_decompose_address)
(m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
(m68k_matches_u_p): New functions.
(print_operand_address): Rewrite to use m68k_decompose_index.
From-SVN: r122604
|
|
gcc/
* Makefile.in (rtlanal.o): Depend on tree.h.
* rtl.h (offset_within_section_p, split_const): Declare.
* rtlanal.c: Include tree.h.
(offset_within_block_p): New function, taken from
mips_offset_within_object_p.
(split_const): New function, taken from mips_split_const.
* config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
Declare.
* config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
(CONSTANT_ADDRESS_P): Only accept legitimate constants.
(LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
* config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
(m68k_illegitimate_symbolic_constant_p): New function.
* config/m68k/m68k.md (movsi): Remove misleading predicates.
If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
symbolic constant that might be outside the symbol's section,
move the symbol first and then add the offset.
* config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
Override.
* config/mips/mips.c (mips_split_const): Delete.
(mips_offset_within_object_p): Delete.
(mips_symbolic_constant_p): Use offset_within_section_p and
split_const instead of mips_offset_within_object_p and
mips_split_const.
(mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
(mips_legitimize_const_move, print_operand_reloc)
(mips_dangerous_for_la25_p): Use split_const instead of
mips_split_const.
From-SVN: r122428
|
|
* config/m68k/linux-unwind.h: Fix a comment typo.
* target.h: Follow spelling conventions.
From-SVN: r122119
|
|
* config/m68k/m68k.c (split_di): New.
* config/m68k/m68k-protos.h: Declare split_di.
* config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
Improve predicate handling and split constant shifts.
From-SVN: r122084
|
|
operations...
* config/m68k/m68k.md (extv,extzv,insv): disable dynamic
parameter for register bitfield operations, general predicates
cleanup
From-SVN: r122083
|
|
* config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
* config/m68k/linux-unwind.h: New file.
From-SVN: r122082
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
(m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
(m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
m68k/t-mlib to tmake_file.
(m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
(m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
(m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
Allow it to be cf or m68k. Set m68k_arch_family. If that
variable is not empty, add t-$m68k_arch_family to tmake_file.
Add t-mlibs to tmake_file.
* doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
* config/m68k/t-cf: New file.
* config/m68k/t-m68k: Likewise.
* config/m68k/t-mlibs: Likewise.
* config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
* config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
Delete.
* config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
(INSTALL_LIBGCC): Delete.
(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
* config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_CPU): Define.
* config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r121743
|
|
* config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
the 'y' constraint.
From-SVN: r121600
|
|
DWARF_FRAME_RETURN_COLUMN to be a general register.
gcc/
* doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
DWARF_FRAME_RETURN_COLUMN to be a general register.
* dwarf2out.c (init_return_column_size): New function, split from...
(expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
to be nongeneral registers.
* config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
integer registers.
(DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
(DWARF_ALT_FRAME_RETURN_COLUMN): Define.
From-SVN: r121593
|
|
* config/m32c/bitops.md, config/m32c/jump.md,
config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
config/m32r/m32r.h, config/m32r/m32r.md,
config/m32r/predicates.md, config/m68hc11/larith.asm,
config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
config/mips/mips-protos.h, config/mips/mips.c,
config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
config/mn10300/mn10300.h, config/mn10300/predicates.md,
config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
spelling conventions.
From-SVN: r121565
|
|
* c-decl.c, config/avr/avr.c, config/avr/avr.h,
config/m68k/m68k.c, config/m68k/netbsd-elf.h,
config/mn10300/mn10300.c, config/pdp11/pdp11.h,
config/rs6000/cell.md, config/rs6000/darwin.h,
config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
typos. Follow spelling conventions.
* doc/invoke.texi: Follow spelling conventions.
From-SVN: r121546
|
|
* cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
ipa-inline.c, tree-profile.c, tree-ssa-live.c,
tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
value-prof.c: Fix comment typos.
From-SVN: r121374
|
|
From-SVN: r121063
|
|
gcc/
* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
for ColdFire targets.
From-SVN: r120965
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
(INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
(__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
* config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
(M68K_STATIC_CHAIN_REG_NAME): Likewise.
* config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
gcc/testsuite/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* gcc.c-torture/execute/nestfunc-7.c: New.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120964
|
|
gcc/
* config/m68k/m68k.md (adddi_dilshr32): Rename to...
(*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
non-canonical pattern. Restrict to !TARGET_COLDFIRE.
(*adddi_dilshr32_cf): New pattern.
(adddi3, subdi3): Remove first alternatives.
From-SVN: r120963
|
|
gcc/
* config/m68k/m68k.c (notice_update_cc): If an SFmode move is
implemented using move.l, do not use its cc result for floating-point
comparisons.
From-SVN: r120962
|
|
constraints if flag_pic.
gcc/
* config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
from accepting 's' constraints if flag_pic.
From-SVN: r120961
|
|
* config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
(bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
(bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
condition from TARGET_68881 to TARGET_HARD_FLOAT.
From-SVN: r120960
|
|
gcc/
200x-xx-xx Sandra Loosemore <sandra@codesourcery.com>
* longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
ColdFire alternatives.
* config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
* config/m68k/m68k.md (clzsi2): Define for ColdFire
architectures that support ff1 instruction.
From-SVN: r120959
|
|
<julian@codesourcery.com>
gcc/
200x-xx-xx Richard Sandiford <richard@codesourcery.com>
Julian Brown <julian@codesourcery.com>
* config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
* config/m68k/m68k.md (*movsi_cfv4): Fold into...
(*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
Add commentary.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r120958
|
|
gcc/
* config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
and return a bool.
(output_move_const_into_data_reg, output_move_simode_const): Delete.
* config/m68k/m68k.c (const_method, const_int_cost): Take a
HOST_WIDE_INT instead of an rtx.
(m68k_rtx_costs): Update call accordingly.
(output_move_const_into_data_reg): Likewise. Fix formatting.
(valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
Return a bool.
(output_move_simode_const): Update calls after above changes.
Rework to use automatic variables and predicates like MEM_P.
* config/m68k/m68k.md (pushexthisi_const): Update call to
valid_mov3q_const.
From-SVN: r120957
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
parallels.
* calls.c (expand_call): If the return value is a PARALLEL,
extract its first member.
* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
use FUNCTION_EXTRA_EPILOGUE.
(m68k_function_value): Return a PARALLEL if the return value
is of a pointer type.
* config/m68k/netbsd-elf.h (current_function_returns_pointer)
(FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.md (D0_REG): New constant.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120929
|
|
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
output a NOP for empty epilogues.
From-SVN: r120928
|
|
gcc/
* config/m68k/m68k.c (m68k_use_return_insn): Update comments
before function. Extend register save check to include all
registers, not just integer ones.
From-SVN: r120927
|
|
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k-protos.h (use_return_insn): Rename to...
(m68k_use_return_insn): ...this.
* config/m68k/m68k.h (USE_RETURN_INSN): Delete.
* config/m68k/m68k.c (use_return_insn): Rename to...
(m68k_use_return_insn): ...this.
* config/m68k/m68k.md (return): Use m68k_use_return_insn instead
of USE_RETURN_INSN.
From-SVN: r120926
|
|
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
nearest even, fix denormal rounding overflow.
From-SVN: r120925
|
|
gcc/
* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
f%$smove and f%$move.
(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
(extendsfdf2_cf): Use fdmove instead of f%&move.
(truncdfsf2_cf): Use fsmove instead of f%$smove.
(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
From-SVN: r120924
|
|
gcc/
* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
GPR<-GPR moves.
From-SVN: r120923
|
|
gcc/
* real.h (real_format): Add a canonical_nan_lsbs_set field.
(coldfire_single_format): Declare.
(coldfire_double_format): Likewise.
* real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
of qnan_msb_set to determine the lower bits of a canonical
NaN significand.
(encode_ieee_double): Likewise.
(encode_ieee_quad): Likewise.
(ieee_single_format): Initialize canonical_nan_lsbs_set.
(mips_single_format): Likewise.
(ieee_double_format): Likewise.
(mips_double_format): Likewise.
(ieee_extended_motorola_format): Likewise.
(ieee_extended_intel_96_format): Likewise.
(ieee_extended_intel_128_format): Likewise.
(ieee_extended_intel_96_round_53_format): Likewise.
(ibm_extended_format): Likewise.
(mips_extended_format): Likewise.
(ieee_quad_format): Likewise.
(mips_quad_format): Likewise.
(vax_f_format): Likewise.
(vax_d_format): Likewise.
(vax_g_format): Likewise.
(i370_single_format): Likewise.
(i370_double_format): Likewise.
(decimal_single_format): Likewise.
(decimal_double_format): Likewise.
(decimal_quad_format): Likewise.
(c4x_single_format): Likewise.
(c4x_extended_format): Likewise.
(real_internal_format): Likewise.
(coldfire_single_format): New real_format.
(coldfire_double_format): Likewise.
* config/pdp11/pdp11.c (pdp11_f_format): Initialize
canonical_nan_lsbs_set.
(pdp11_d_format): Likewise.
* config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
if TARGET_COLDFIRE_CPU.
From-SVN: r120922
|
|
gcc/
* config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
(output_call, m68k_legitimize_call_address): Declare.
* config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
parenthesees. Add support for a 'W' constraint.
(LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
(PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
(m68k_symbolic_call, m68k_symbolic_jump): Declare.
* config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
variables.
(override_options): Initialize them. Do not set flag_no_function_cse
for TARGET_ID_SHARED_LIBRARY.
(m68k_output_pic_call): Delete.
(m68k_legitimize_call_address): New function.
(print_operand): Remove the %o prefix. Handle the %p prefix.
(output_call): New function.
(m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
target address from the GOT if symbolic jumps are not allowed.
* config/m68k/m68k.md (call, general_operand): Do not set
SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
Merge separate flag_pic and !flag_pic define_insns into...
(*call, *call_value): ...these new patterns. Match the address
rather than the containing MEM and require it to be a call_operand.
Use output_call to generate the asm template.
* config/m68k/predicates.md (const_call_operand): New predicate.
(call_operand): Likewise.
From-SVN: r120921
|
|
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
(STACK_GROWS_DOWNWARD): Define to 1.
(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
comments, emphasizing that these values are only defaults.
* config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
* config/m68k/m68k.c (const_method): Remove trailing whitespace.
From-SVN: r120920
|
|
gcc/
* config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
gcc/testsuite/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* gcc.dg/m68k-pic-1.c: New.
From-SVN: r120919
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
(FP_REGNO_P): New macros.
(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
(REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
(EH_RETURN_STACKADJ_RTX): Use A0_REG.
* config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120918
|
|
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
to $tmake_file.
* config/m68k/t-floatlib: New file, extracting common code from...
* config/m68k/t-m68kbare, config/m68k/t-m68kelf,
* config/m68k/t-uclinux: Here.
* config/m68k/fpgnulib.c: Do not compile extendeed precision
routines on ColdFire targets.
From-SVN: r120917
|
|
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
(m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
explicitly set MOTOROLA to 1.
* config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
From-SVN: r120916
|
|
<nathan@codesourcery.com>
gcc/
200x-xx-xx Richard Sandiford <richard@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
* config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
* config/m68k/m68020-elf.h (LIB_SPEC): Delete.
* config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
* config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
(NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
(BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
* config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
* config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
(WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
(TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
(DBX_REGISTER_NUMBER): Delete.
* config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
(PCC_STATIC_STRUCT_RETURN): Don't undefine.
* config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
From-SVN: r120913
|
|
gcc/
* config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
* config/flat.h: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
OBJECT_FORMAT_FLAT.
* config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
indirect references for -msep-data or -mid-shared-library.
Do not use PC-relative code addresses either.
* config/m68k/m68k.c (override_options): Restrict -fPIC error
to -mpcrel.
* config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
for shared libraries and crt1.o for executables. Use crti.o and
crtbegin.o.
(ENDFILE_SPEC): Use crtend.o and crtn.o.
(LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
Do not add -elf2flt or -shared-lib-id options here.
(LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
Pass -shared-lib-id if -mid-shared-library, taking the library
identifier from -mshared-library-id if given, otherwise
defaulting to 0.
(EH_FRAME_IN_DATA_SECTION): Do not undefine.
(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
(TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
(DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
and crtend.o.
* config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
jump sequence for ISA A and ISA A+.
(PICJUMP): Likewise.
From-SVN: r120912
|
|
files rather than on the generic...
gcc/
* config.gcc (m68k-*-uclinux*): Base the port on the common
and m68k GNU/Linux files rather than on the generic ELF ones.
* config/m68k/uclinux.h (TARGET_VERSION): Override.
(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
From-SVN: r120911
|
|
<richard@codesourcery.com>
gcc/
200x-xx-xx Julian Brown <julian@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
before redefining.
* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
80 unconditionally.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120910
|