alpha.c (vms_valid_pointer_mode): New function.
authorDouglas B Rupp <rupp@gnat.com>
Mon, 17 Aug 2009 16:22:48 +0000 (16:22 +0000)
committerDouglas Rupp <rupp@gcc.gnu.org>
Mon, 17 Aug 2009 16:22:48 +0000 (16:22 +0000)
* config/alpha/alpha.c (vms_valid_pointer_mode): New function.
* config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.

From-SVN: r150849

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/vms.h

index 6dc1f55..953397e 100644 (file)
@@ -1,3 +1,8 @@
+2009-08-17  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
+       * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
+
 2009-08-16  Douglas B Rupp  <rupp@gnat.com>
 
        * doc/invoke.texi (Target options):
index 8dc9a3e..442dd17 100644 (file)
@@ -200,6 +200,7 @@ static rtx alpha_emit_xfloating_compare (enum rtx_code *, rtx, rtx);
 
 #if TARGET_ABI_OPEN_VMS
 static void alpha_write_linkage (FILE *, const char *, tree);
+static bool vms_valid_pointer_mode (enum machine_mode);
 #endif
 
 static void unicosmk_output_deferred_case_vectors (FILE *);
@@ -774,6 +775,12 @@ alpha_in_small_data_p (const_tree exp)
 
 #if TARGET_ABI_OPEN_VMS
 static bool
+vms_valid_pointer_mode (enum machine_mode mode)
+{
+  return (mode == SImode || mode == DImode);
+}
+
+static bool
 alpha_linkage_symbol_p (const char *symname)
 {
   int symlen = strlen (symname);
index 819dee4..e3781b5 100644 (file)
@@ -394,3 +394,6 @@ typedef struct crtl_name_spec
 #define INIT_SECTION_ASM_OP "\t.section LIB$INITIALIZE,GBL,NOWRT"
 
 #define LONGLONG_STANDALONE 1
+
+#undef TARGET_VALID_POINTER_MODE
+#define TARGET_VALID_POINTER_MODE vms_valid_pointer_mode