+Thu Mar 5 02:45:48 1998 Richard Henderson <rth@cygnus.com>
+
+ * alpha/alpha.h (TARGET_WINDOWS_NT, TARGET_OPEN_VMS): Just make them
+ real constants, since they can't be changed.
+ (TARGET_AS_CAN_SUBTRACT_LABELS): New.
+ * alpha/alpha.md (builtin_setjmp_receiver): Use it.
+ * alpha/osf.h (TARGET_AS_CAN_SUBTRACT_LABELS): New.
+ * alpha/osf2or3.h (TARGET_AS_CAN_SUBTRACT_LABELS): New.
+ * alpha/vms.h (TARGET_OPEN_VMS): New.
+ * alpha/win-nt.h (TARGET_WINDOWS_NT): New.
+
Thu Mar 5 02:41:27 1998 Richard Henderson <rth@cygnus.com>
* reload.c (find_reloads): Always force (subreg (mem)) to be
/* Definitions of target machine for GNU compiler, for DEC Alpha.
- Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
#define MASK_IEEE_WITH_INEXACT 32
#define TARGET_IEEE_WITH_INEXACT (target_flags & MASK_IEEE_WITH_INEXACT)
-/* This means we are compiling for Windows NT. */
-
-#define MASK_WINDOWS_NT 64
-#define TARGET_WINDOWS_NT (target_flags & MASK_WINDOWS_NT)
-
/* This means we must construct all constants rather than emitting
them as literal data. */
#define MASK_BUILD_CONSTANTS 128
#define TARGET_BUILD_CONSTANTS (target_flags & MASK_BUILD_CONSTANTS)
-/* This means we are compiling for openVMS. */
-
-#define MASK_OPEN_VMS 256
-#define TARGET_OPEN_VMS (target_flags & MASK_OPEN_VMS)
-
/* This means we handle floating points in VAX F- (float)
or G- (double) Format. */
#define MASK_SUPPORT_ARCH 32768
#define TARGET_SUPPORT_ARCH (target_flags & MASK_SUPPORT_ARCH)
+/* These are for target os support and cannot be changed at runtime. */
+#ifndef TARGET_WINDOWS_NT
+#define TARGET_WINDOWS_NT 0
+#endif
+#ifndef TARGET_OPEN_VMS
+#define TARGET_OPEN_VMS 0
+#endif
+
+#ifndef TARGET_AS_CAN_SUBTRACT_LABELS
+#define TARGET_AS_CAN_SUBTRACT_LABELS TARGET_GAS
+#endif
+
+
/* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces,
each pair being { "NAME", VALUE }
;; Machine description for DEC Alpha for GNU C compiler
-;; Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
;; This file is part of GNU CC.
(define_insn "builtin_setjmp_receiver"
[(unspec_volatile [(match_operand 0 "" "")] 2)]
- "! TARGET_OPEN_VMS && ! TARGET_WINDOWS_NT"
+ "! TARGET_OPEN_VMS && ! TARGET_WINDOWS_NT && TARGET_AS_CAN_SUBTRACT_LABELS"
"\\n$LSJ%=:\;ldgp $29,$LSJ%=-%l0($27)")
+(define_insn ""
+ [(unspec_volatile [(match_operand 0 "" "")] 2)]
+ "! TARGET_OPEN_VMS && ! TARGET_WINDOWS_NT"
+ "br $27,$LSJ%=\\n$LSJ%=:\;ldgp $29,0($27)")
+
(define_expand "nonlocal_goto_receiver"
[(unspec_volatile [(const_int 0)] 1)
(set (reg:DI 27) (mem:DI (reg:DI 29)))
/* Definitions of target machine for GNU compiler, for DEC Alpha on OSF/1.
- Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+/* As of OSF 4.0, as can subtract adjacent labels. */
+
+#undef TARGET_AS_CAN_SUBTRACT_LABELS
+#define TARGET_AS_CAN_SUBTRACT_LABELS 1
/* Names to predefine in the preprocessor for this target machine. */
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} %{a:-lprof2} -lc"
+
+/* As of OSF 3.2, as still can't subtract adjacent labels. */
+
+#undef TARGET_AS_CAN_SUBTRACT_LABELS
+#define TARGET_AS_CAN_SUBTRACT_LABELS 0
+
/* Output variables, constants and external declarations, for GNU compiler.
- Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of GNU CC.
#define DOLLARS_IN_IDENTIFIERS 2
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FP|MASK_FPREGS|MASK_GAS|MASK_OPEN_VMS)
+#define TARGET_DEFAULT (MASK_FP|MASK_FPREGS|MASK_GAS)
+#undef TARGET_OPEN_VMS
+#define TARGET_OPEN_VMS 1
+
#undef TARGET_NAME
#define TARGET_NAME "OpenVMS/Alpha"
#undef TARGET_VERSION
/* Definitions of target machine for GNU compiler, for DEC Alpha
running Windows/NT.
- Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
Boston, MA 02111-1307, USA. */
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_WINDOWS_NT)
+#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS)
+
+#undef TARGET_WINDOWS_NT
+#define TARGET_WINDOWS_NT 1
/* Names to predefine in the preprocessor for this target machine. */