aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/alpha
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2011-06-27 12:51:09 +0000
committerTristan Gingold <gingold@gcc.gnu.org>2011-06-27 12:51:09 +0000
commitdb8b22ef4925f80ce5cabb585852896548f78c7e (patch)
tree13f91471f1f0706179d3d23de8d17a9151cb080c /gcc/config/alpha
parentb213221d256fa5e5732756d4814e48c9ef09df93 (diff)
downloadgcc-db8b22ef4925f80ce5cabb585852896548f78c7e.zip
gcc-db8b22ef4925f80ce5cabb585852896548f78c7e.tar.gz
gcc-db8b22ef4925f80ce5cabb585852896548f78c7e.tar.bz2
re PR target/44241 (vms-crtl.h, vms-crtl-64.h need many more symbols)
2011-06-27 Tristan Gingold <gingold@adacore.com> PR target/44241 * config/vms/vms-protos.h: New file. * config/vms/vms-crtlmap.map: New file. * config/vms/vms.c: New file. * config/vms/make-crtlmap.awk: New file. * config/vms/vms-crtl.h: File removed. * config/vms/vms-crtl-64.h: File removed. * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets. * config/alpha/vms64.h: Do not include vms-crtl-64.h * config/alpha/alpha.c (alpha_init_builtins): Remove code to clear some builtins on VMS. Calls vms_patch_builtins. (avms_asm_output_external): Remove. * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove. (struct crtl_name_spec): Remove (DO_CTRL_NAMES): Remove. * config/ia64/vms.h (struct crtl_name_spec): Remove (DO_CTRL_NAMES): Remove. * config/ia64/ia64.c (alpha_init_builtins): Remove code to clear some builtins on VMS. Calls vms_patch_builtins. (ia64_asm_output_external): Remove DO_CRTL_NAME. * config/ia64/vms64.h: Do not include vms-crtl-64.h * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file. From-SVN: r175523
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r--gcc/config/alpha/alpha.c17
-rw-r--r--gcc/config/alpha/vms.h49
-rw-r--r--gcc/config/alpha/vms64.h2
3 files changed, 2 insertions, 66 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 510c1a8..5d656f1 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -6367,12 +6367,6 @@ alpha_init_builtins (void)
dimode_integer_type_node = lang_hooks.types.type_for_mode (DImode, 0);
- /* Fwrite on VMS is non-standard. */
-#if TARGET_ABI_OPEN_VMS
- implicit_built_in_decls[(int) BUILT_IN_FWRITE] = NULL_TREE;
- implicit_built_in_decls[(int) BUILT_IN_FWRITE_UNLOCKED] = NULL_TREE;
-#endif
-
ftype = build_function_type_list (dimode_integer_type_node, NULL_TREE);
alpha_add_builtins (zero_arg_builtins, ARRAY_SIZE (zero_arg_builtins),
ftype);
@@ -6409,6 +6403,8 @@ alpha_init_builtins (void)
NULL_TREE);
alpha_builtin_function ("__builtin_revert_vms_condition_handler", ftype,
ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER, 0);
+
+ vms_patch_builtins ();
}
alpha_v8qi_u = build_vector_type (unsigned_intQI_type_node, 8);
@@ -8169,15 +8165,6 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
inside_function = FALSE;
}
-#if TARGET_ABI_OPEN_VMS
-void avms_asm_output_external (FILE *file, tree decl ATTRIBUTE_UNUSED, const char *name)
-{
-#ifdef DO_CRTL_NAMES
- DO_CRTL_NAMES;
-#endif
-}
-#endif
-
#if TARGET_ABI_OSF
/* Emit a tail call to FUNCTION after adjusting THIS by DELTA.
diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h
index f730ea1..fc74c23 100644
--- a/gcc/config/alpha/vms.h
+++ b/gcc/config/alpha/vms.h
@@ -225,55 +225,6 @@ typedef struct {int num_args; enum avms_arg_type atypes[6];} avms_arg_info;
#define LINK_EH_SPEC "vms-dwarf2eh.o%s "
#define LINK_GCC_C_SEQUENCE_SPEC "%G"
-#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
- avms_asm_output_external (FILE, DECL, NAME)
-
-typedef struct crtl_name_spec
-{
- const char *const name;
- const char *deccname;
- int referenced;
-} crtl_name_spec;
-
-#include "config/vms/vms-crtl.h"
-
-/* Alias CRTL names to 32/64bit DECCRTL functions.
- Fixme: This should do a binary search. */
-#define DO_CRTL_NAMES \
- do \
- { \
- int i; \
- static crtl_name_spec vms_crtl_names[] = CRTL_NAMES; \
- static int malloc64_init = 0; \
- \
- if ((malloc64_init == 0) && TARGET_MALLOC64) \
- { \
- for (i=0; vms_crtl_names [i].name; i++) \
- { \
- if (strcmp ("calloc", vms_crtl_names [i].name) == 0) \
- vms_crtl_names [i].deccname = "decc$_calloc64"; \
- else \
- if (strcmp ("malloc", vms_crtl_names [i].name) == 0) \
- vms_crtl_names [i].deccname = "decc$_malloc64"; \
- else \
- if (strcmp ("realloc", vms_crtl_names [i].name) == 0) \
- vms_crtl_names [i].deccname = "decc$_realloc64"; \
- else \
- if (strcmp ("strdup", vms_crtl_names [i].name) == 0) \
- vms_crtl_names [i].deccname = "decc$_strdup64"; \
- } \
- malloc64_init = 1; \
- } \
- for (i=0; vms_crtl_names [i].name; i++) \
- if (!vms_crtl_names [i].referenced && \
- (strcmp (name, vms_crtl_names [i].name) == 0)) \
- { \
- fprintf (file, "\t%s=%s\n", \
- name, vms_crtl_names [i].deccname); \
- vms_crtl_names [i].referenced = 1; \
- } \
- } while (0)
-
/* This is how to output an assembler line
that says to advance the location counter
to a multiple of 2**LOG bytes. */
diff --git a/gcc/config/alpha/vms64.h b/gcc/config/alpha/vms64.h
index 07424d0..495d3c6 100644
--- a/gcc/config/alpha/vms64.h
+++ b/gcc/config/alpha/vms64.h
@@ -49,5 +49,3 @@ along with GCC; see the file COPYING3. If not see
/* Defaults to "long int" */
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
-
-# include "config/vms/vms-crtl-64.h"