aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k
AgeCommit message (Collapse)AuthorFilesLines
2007-03-17arm.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* 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
2007-03-06configure.ac: Allow tm_file to contain build-directory files.Richard Sandiford2-0/+89
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
2007-03-06m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO of pic_offset_table_rtx if ↵Richard Sandiford2-51/+87
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
2007-03-06m68k.c (m68k_save_reg): Save the PIC register in functions that call eh_return.Richard Sandiford1-0/+4
gcc/ * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in functions that call eh_return. From-SVN: r122611
2007-03-06m68k.c (m68k_save_reg): Save the PIC register in functions that need a ↵Richard Sandiford1-0/+7
constant pool. gcc/ * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in functions that need a constant pool. From-SVN: r122610
2007-03-06re PR target/28181 (ICE in reload_cse_simplify_operands, at postreload.c:393 ↵Richard Sandiford3-39/+72
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
2007-03-06m68k.c (m68k_save_reg): Remove special case for leaf functions.Richard Sandiford1-4/+1
gcc/ * config/m68k/m68k.c (m68k_save_reg): Remove special case for leaf functions. (m68k_expand_prologue): Likewise. From-SVN: r122608
2007-03-06m68k-protos.h (output_sibcall): Declare.Richard Sandiford4-8/+99
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
2007-03-06m68k.md (movsf_cf_soft): Provide the same non-mov3q alternatives as movsi_cf.Richard Sandiford1-2/+4
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
2007-03-06200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford ↵Kazu Hirata4-455/+645
<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
2007-03-06re PR target/23482 ([ColdFire] ICE in in final_scan_insn)Richard Sandiford3-368/+460
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
2007-03-01Makefile.in (rtlanal.o): Depend on tree.h.Richard Sandiford5-7/+56
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
2007-02-19linux-unwind.h: Fix a comment typo.Kazu Hirata1-1/+1
* config/m68k/linux-unwind.h: Fix a comment typo. * target.h: Follow spelling conventions. From-SVN: r122119
2007-02-18m68k.c (split_di): New.Roman Zippel3-163/+481
* 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
2007-02-18m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield ↵Roman Zippel1-31/+31
operations... * config/m68k/m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield operations, general predicates cleanup From-SVN: r122083
2007-02-18linux.h (MD_UNWIND_SUPPORT): Define.Roman Zippel2-0/+155
* config/m68k/linux.h (MD_UNWIND_SUPPORT): Define. * config/m68k/linux-unwind.h: New file. From-SVN: r122082
2007-02-09200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford ↵Nathan Sidwell8-33/+118
<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
2007-02-05m68k.md (pushdi-1, [...]): Don't use the 'y' constraint.Kazu Hirata1-3/+3
* config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use the 'y' constraint. From-SVN: r121600
2007-02-05tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require ↵Richard Sandiford1-1/+9
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
2007-02-04bitops.md, [...]: Follow spelling conventions.Kazu Hirata1-2/+2
* 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
2007-02-03c-decl.c, [...]: Fix comment typos.Kazu Hirata2-2/+2
* 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
2007-01-31cgraphunit.c, [...]: Fix comment typos.Kazu Hirata1-2/+2
* 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
2007-01-22* config/m68k/m68k.h: Fix comment.Andreas Schwab1-2/+2
From-SVN: r121063
2007-01-19m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32 for ColdFire targets.Richard Sandiford1-0/+2
gcc/ * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32 for ColdFire targets. From-SVN: r120965
2007-01-19200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford ↵Nathan Sidwell3-2/+14
<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
2007-01-19m68k.md (adddi_dilshr32): Rename to...Richard Sandiford1-22/+24
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
2007-01-19m68k.c (notice_update_cc): If an SFmode move is implemented using move.l...Richard Sandiford1-2/+8
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
2007-01-19m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint from accepting 's' ↵Richard Sandiford1-1/+1
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
2007-01-19gcc/Richard Sandiford1-16/+16
* 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
2007-01-19200x-xx-xx Sandra Loosemore <sandra@codesourcery.com>Sandra Loosemore2-0/+12
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
2007-01-19200x-xx-xx Richard Sandiford <richard@codesourcery.com> Julian Brown ↵Richard Sandiford2-10/+7
<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
2007-01-19m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT and return a bool.Richard Sandiford3-52/+44
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
2007-01-18200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford ↵Kazu Hirata4-41/+23
<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
2007-01-18200x-xx-xx Kazu Hirata <kazu@codesourcery.com>Kazu Hirata1-6/+1
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
2007-01-18m68k.c (m68k_use_return_insn): Update comments before function.Richard Sandiford1-4/+3
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
2007-01-18200x-xx-xx Kazu Hirata <kazu@codesourcery.com>Kazu Hirata4-9/+3
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
2007-01-18200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>Nathan Sidwell1-11/+29
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
2007-01-18m68k.md (movsf_cf_hard): Use fsmove instead of f%$smove and f%$move.Richard Sandiford1-13/+13
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
2007-01-18m68k.md (movdf_cf_hard): Use output_move_double for GPR<-GPR moves.Richard Sandiford1-3/+1
gcc/ * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for GPR<-GPR moves. From-SVN: r120923
2007-01-18real.h (real_format): Add a canonical_nan_lsbs_set field.Richard Sandiford1-0/+6
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
2007-01-18m68k-protos.h (m68k_output_pic_call): Delete.Richard Sandiford5-181/+115
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
2007-01-18200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>Nathan Sidwell3-9/+7
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
2007-01-18m68k.md (cmpsi): Remove outdated flag_pic handling.Richard Sandiford1-11/+0
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
2007-01-18200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford ↵Kazu Hirata2-14/+34
<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
2007-01-18200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>Nathan Sidwell5-42/+18
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
2007-01-18200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>Nathan Sidwell1-4/+2
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
2007-01-18200x-xx-xx Richard Sandiford <richard@codesourcery.com> Nathan Sidwell ↵Richard Sandiford9-160/+17
<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
2007-01-18config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.Richard Sandiford5-28/+70
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
2007-01-18config.gcc (m68k-*-uclinux*): Base the port on the common and m68k GNU/Linux ↵Richard Sandiford1-15/+10
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
2007-01-18200x-xx-xx Julian Brown <julian@codesourcery.com> Richard Sandiford ↵Julian Brown3-1/+18
<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