This moves all D front-end specific target definitions out of the main
target headers, and into its own header that is included by tm_d.h
instead of pulling in the same headers as tm_p.h.
This fixes the build on target configurations that pull in the default D
language target hooks, and subsequently trigger an error because the
definition of PREFERRED_DEBUGGING_TYPE is behind tm.h, the one header
that is avoided from being included in default-d.cc.
PR d/105659
gcc/ChangeLog:
* config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
* config/aarch64/aarch64-d.cc: Include tm_d.h.
* config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
config/aarch64/aarch64-d.h.
(aarch64_d_register_target_info): Likewise.
* config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
tm_p.h.
* config/arm/arm-protos.h (arm_d_target_versions): Move to
config/arm/arm-d.h.
(arm_d_register_target_info): Likewise.
* config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/default-d.cc: Remove memmodel.h include.
* config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
* config/glibc-d.cc: Likewise.
* config/i386/i386-d.cc: Include tm_d.h.
* config/i386/i386-protos.h (ix86_d_target_versions): Move to
config/i386/i386-d.h.
(ix86_d_register_target_info): Likewise.
(ix86_d_has_stdcall_convention): Likewise.
* config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
(TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
* config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
* config/mips/mips-d.cc: Include tm_d.h.
* config/mips/mips-protos.h (mips_d_target_versions): Move to
config/mips/mips-d.h.
(mips_d_register_target_info): Likewise.
* config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
* config/openbsd-d.cc: Likewise.
* config/pa/pa-d.cc: Include tm_d.h.
* config/pa/pa-protos.h (pa_d_target_versions): Move to
config/pa/pa-d.h.
(pa_d_register_target_info): Likewise.
* config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/riscv/riscv-d.cc: Include tm_d.h.
* config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
config/riscv/riscv-d.h.
(riscv_d_register_target_info): Likewise.
* config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/rs6000/rs6000-d.cc: Include tm_d.h.
* config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
config/rs6000/rs6000-d.h.
(rs6000_d_register_target_info): Likewise.
* config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
(TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
* config/s390/s390-d.cc: Include tm_d.h.
* config/s390/s390-protos.h (s390_d_target_versions): Move to
config/s390/s390-d.h.
(s390_d_register_target_info): Likewise.
* config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
* config/sparc/sparc-d.cc: Include tm_d.h.
* config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
config/sparc/sparc-d.h.
(sparc_d_register_target_info): Likewise.
* config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* configure: Regenerate.
* configure.ac (tm_d_file): Remove defaults.h.
(tm_d_include_list): Remove options.h and insn-constants.h.
* config/aarch64/aarch64-d.h: New file.
* config/arm/arm-d.h: New file.
* config/i386/i386-d.h: New file.
* config/mips/mips-d.h: New file.
* config/pa/pa-d.h: New file.
* config/riscv/riscv-d.h: New file.
* config/rs6000/rs6000-d.h: New file.
* config/s390/s390-d.h: New file.
* config/sparc/sparc-d.h: New file.
(cherry picked from commit
d5ad6f8415171798adaff5787400505ce9882144)
esac
tm_file=${cpu_type}/${cpu_type}.h
-tm_d_file=${cpu_type}/${cpu_type}.h
if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
then
tm_p_file=${cpu_type}/${cpu_type}-protos.h
- tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
+fi
+
+tm_d_file=
+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-d.h
+then
+ tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-d.h"
fi
extra_modes=
*-*-darwin*)
tmake_file="t-darwin "
tm_file="${tm_file} darwin.h"
- tm_d_file="${tm_d_file} tm-dwarf2.h"
darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
# For historical reasons, the target files omit the 'x'.
tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
tm_p_file=stormy16/stormy16-protos.h
- tm_d_file="elfos.h stormy16/stormy16.h"
md_file=stormy16/stormy16.md
out_file=stormy16/stormy16.cc
extra_options=stormy16/stormy16.opt
#include "config.h"
#include "system.h"
#include "coretypes.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the AArch64 architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Defined in aarch64-d.cc */
+extern void aarch64_d_target_versions (void);
+extern void aarch64_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS aarch64_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO aarch64_d_register_target_info
void aarch64_get_all_extension_candidates (auto_vec<const char *> *candidates);
std::string aarch64_get_extension_string_for_isa_flags (uint64_t, uint64_t);
-/* Defined in aarch64-d.cc */
-extern void aarch64_d_target_versions (void);
-extern void aarch64_d_register_target_info (void);
-
rtl_opt_pass *make_pass_fma_steering (gcc::context *);
rtl_opt_pass *make_pass_track_speculation (gcc::context *);
rtl_opt_pass *make_pass_tag_collision_avoidance (gcc::context *);
#define TARGET_CPU_CPP_BUILTINS() \
aarch64_cpu_cpp_builtins (pfile)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS aarch64_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO aarch64_d_register_target_info
-
\f
#define REGISTER_TARGET_PRAGMAS() aarch64_register_pragmas ()
#include "system.h"
#include "coretypes.h"
#include "tm.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
+#include "arm-protos.h"
/* Implement TARGET_D_CPU_VERSIONS for ARM targets. */
--- /dev/null
+/* Definitions for the D front end on the ARM architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Defined in arm-d.cc */
+extern void arm_d_target_versions (void);
+extern void arm_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS arm_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO arm_d_register_target_info
extern void arm_register_target_pragmas (void);
extern void arm_cpu_cpp_builtins (struct cpp_reader *);
-/* Defined in arm-d.cc */
-extern void arm_d_target_versions (void);
-extern void arm_d_register_target_info (void);
-
extern bool arm_is_constant_pool_ref (rtx);
/* The bits in this mask specify which instruction scheduling options should
/* Target CPU builtins. */
#define TARGET_CPU_CPP_BUILTINS() arm_cpu_cpp_builtins (pfile)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS arm_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO arm_d_register_target_info
-
#include "config/arm/arm-opts.h"
/* The processor for which instructions should be scheduled. */
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "memmodel.h"
#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
+/* Do not include tm.h or tm_p.h here; definitions needed by the target
+ architecture to initialize targetdm should instead be added to tm_d.h. */
+
struct gcc_targetdm targetdm = TARGETDM_INITIALIZER;
#include "coretypes.h"
#include "memmodel.h"
#include "tm.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
#include "coretypes.h"
#include "tm.h"
#include "memmodel.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the x86 architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* In i386-d.cc */
+extern void ix86_d_target_versions (void);
+extern void ix86_d_register_target_info (void);
+extern bool ix86_d_has_stdcall_convention (unsigned int *, unsigned int *);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS ix86_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO ix86_d_register_target_info
+#define TARGET_D_HAS_STDCALL_CONVENTION ix86_d_has_stdcall_convention
extern void ix86_target_macros (void);
extern void ix86_register_pragmas (void);
-/* In i386-d.cc */
-extern void ix86_d_target_versions (void);
-extern void ix86_d_register_target_info (void);
-extern bool ix86_d_has_stdcall_convention (unsigned int *, unsigned int *);
-
/* In winnt.cc */
extern void i386_pe_unique_section (tree, int);
extern void i386_pe_declare_function_type (FILE *, const char *, int);
/* Target Pragmas. */
#define REGISTER_TARGET_PRAGMAS() ix86_register_pragmas ()
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS ix86_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO ix86_d_register_target_info
-#define TARGET_D_HAS_STDCALL_CONVENTION ix86_d_has_stdcall_convention
-
#ifndef CC1_SPEC
#define CC1_SPEC "%(cc1_cpu) "
#endif
#include "system.h"
#include "coretypes.h"
#include "target.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
-#include "tm_p.h"
/* Implement TARGET_D_OS_VERSIONS for Windows targets. */
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the MIPS architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Routines implemented in mips-d.cc */
+extern void mips_d_target_versions (void);
+extern void mips_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS mips_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO mips_d_register_target_info
extern void mips_expand_vec_cond_expr (machine_mode, machine_mode, rtx *);
extern void mips_expand_vec_cmp_expr (rtx *);
-/* Routines implemented in mips-d.cc */
-extern void mips_d_target_versions (void);
-extern void mips_d_register_target_info (void);
-
#endif /* ! GCC_MIPS_PROTOS_H */
} \
while (0)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS mips_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO mips_d_register_target_info
-
/* Default target_flags if no switches are specified */
#ifndef TARGET_DEFAULT
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
-#include "memmodel.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "memmodel.h"
-#include "tm.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
#include "system.h"
#include "coretypes.h"
#include "target.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the HPPA architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Routines implemented in pa-d.cc */
+extern void pa_d_target_versions (void);
+extern void pa_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS pa_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO pa_d_register_target_info
extern void hppa_profile_hook (int);
extern const int pa_magic_milli[];
-
-/* Routines implemented in pa-d.cc */
-extern void pa_d_target_versions (void);
-extern void pa_d_register_target_info (void);
#define NEED_INDICATE_EXEC_STACK 0
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS pa_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO pa_d_register_target_info
-
/* Output default function prologue for hpux. */
#define TARGET_ASM_FUNCTION_PROLOGUE pa_output_function_prologue
#include "system.h"
#include "coretypes.h"
#include "target.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the RISC-V architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Routines implemented in riscv-d.cc */
+extern void riscv_d_target_versions (void);
+extern void riscv_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS riscv_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO riscv_d_register_target_info
/* Routines implemented in riscv-c.cc. */
void riscv_cpu_cpp_builtins (cpp_reader *);
-/* Routines implemented in riscv-d.cc */
-extern void riscv_d_target_versions (void);
-extern void riscv_d_register_target_info (void);
-
/* Routines implemented in riscv-builtins.cc. */
extern void riscv_atomic_assign_expand_fenv (tree *, tree *, tree *);
extern rtx riscv_expand_builtin (tree, rtx, rtx, machine_mode, int);
/* Target CPU builtins. */
#define TARGET_CPU_CPP_BUILTINS() riscv_cpu_cpp_builtins (pfile)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS riscv_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO riscv_d_register_target_info
-
#ifdef TARGET_BIG_ENDIAN_DEFAULT
#define DEFAULT_ENDIAN_SPEC "b"
#else
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the PowerPC architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Declare functions in rs6000-d.cc */
+extern void rs6000_d_target_versions (void);
+extern void rs6000_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS rs6000_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO rs6000_d_register_target_info
extern void (*rs6000_target_modify_macros_ptr) (bool, HOST_WIDE_INT,
HOST_WIDE_INT);
-/* Declare functions in rs6000-d.cc */
-extern void rs6000_d_target_versions (void);
-extern void rs6000_d_register_target_info (void);
-
#ifdef NO_DOLLAR_IN_LABEL
const char * rs6000_xcoff_strip_dollar (const char *);
#endif
#define TARGET_CPU_CPP_BUILTINS() \
rs6000_cpu_cpp_builtins (pfile)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS rs6000_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO rs6000_d_register_target_info
-
/* This is used by rs6000_cpu_cpp_builtins to indicate the byte order
we're compiling for. Some configurations may need to override it. */
#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the IBM S/390 and zSeries architectures.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* s390-d.cc routines */
+extern void s390_d_target_versions (void);
+extern void s390_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS s390_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO s390_d_register_target_info
/* Routines for s390-c.cc */
extern bool s390_const_operand_ok (tree, int, int, tree);
-/* s390-d.cc routines */
-extern void s390_d_target_versions (void);
-extern void s390_d_register_target_info (void);
-
/* Pass management. */
namespace gcc { class context; }
class rtl_opt_pass;
/* Target CPU builtins. */
#define TARGET_CPU_CPP_BUILTINS() s390_cpu_cpp_builtins (pfile)
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS s390_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO s390_d_register_target_info
-
#ifdef DEFAULT_TARGET_64BIT
#define TARGET_DEFAULT (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP \
| MASK_OPT_HTM | MASK_OPT_VX)
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
-#include "memmodel.h"
-#include "tm_p.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "tm_d.h"
#include "d/d-target.h"
#include "d/d-target-def.h"
--- /dev/null
+/* Definitions for the D front end on the SPARC architecture.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Routines implemented in sparc-d.cc */
+extern void sparc_d_target_versions (void);
+extern void sparc_d_register_target_info (void);
+
+/* Target hooks for D language. */
+#define TARGET_D_CPU_VERSIONS sparc_d_target_versions
+#define TARGET_D_REGISTER_CPU_TARGET_INFO sparc_d_register_target_info
extern rtl_opt_pass *make_pass_work_around_errata (gcc::context *);
-/* Routines implemented in sparc-d.cc */
-extern void sparc_d_target_versions (void);
-extern void sparc_d_register_target_info (void);
-
#endif /* __SPARC_PROTOS_H__ */
#define TARGET_CPU_CPP_BUILTINS() sparc_target_macros ()
-/* Target hooks for D language. */
-#define TARGET_D_CPU_VERSIONS sparc_d_target_versions
-#define TARGET_D_REGISTER_CPU_TARGET_INFO sparc_d_register_target_info
-
/* Specify this in a cover file to provide bi-architecture (32/64) support. */
/* #define SPARC_BI_ARCH */
tm_file="${tm_file} defaults.h"
tm_p_file="${tm_p_file} tm-preds.h"
-tm_d_file="${tm_d_file} defaults.h"
host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
# We don't want ansidecl.h in target files, write code there in ISO/GNU C.
done
tm_d_file_list=
-tm_d_include_list="options.h insn-constants.h"
+tm_d_include_list=
for f in $tm_d_file; do
case $f in
- defaults.h )
- tm_d_file_list="${tm_d_file_list} \$(srcdir)/$f"
- tm_d_include_list="${tm_d_include_list} $f"
- ;;
* )
tm_d_file_list="${tm_d_file_list} \$(srcdir)/config/$f"
tm_d_include_list="${tm_d_include_list} config/$f"
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 19676 "configure"
+#line 19671 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 19782 "configure"
+#line 19777 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
tm_file="${tm_file} defaults.h"
tm_p_file="${tm_p_file} tm-preds.h"
-tm_d_file="${tm_d_file} defaults.h"
host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
# We don't want ansidecl.h in target files, write code there in ISO/GNU C.
done
tm_d_file_list=
-tm_d_include_list="options.h insn-constants.h"
+tm_d_include_list=
for f in $tm_d_file; do
case $f in
- defaults.h )
- tm_d_file_list="${tm_d_file_list} \$(srcdir)/$f"
- tm_d_include_list="${tm_d_include_list} $f"
- ;;
* )
tm_d_file_list="${tm_d_file_list} \$(srcdir)/config/$f"
tm_d_include_list="${tm_d_include_list} config/$f"