diff options
author | Richard Henderson <rth@redhat.com> | 2004-08-26 00:24:37 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2004-08-26 00:24:37 +0000 |
commit | 769c3a19b31ee9021a467aef4ad01c57d8535d04 (patch) | |
tree | 16040afedbe7456a6d5be99edc239c4efcbd88c1 /gcc/target.h | |
parent | 4ef6fd9e71fd4c4305efe76a8ab5d45f793ecdee (diff) |
* target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
* target.h (struct gcc_target): Add scalar_mode_supported_p.
* targhooks.c (default_scalar_mode_supported_p): New.
* targhooks.h (default_scalar_mode_supported_p): Declare.
* doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
* c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
before attempting to create types. Tidy.
* expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
* config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
(TARGET_SCALAR_MODE_SUPPORTED_P): New.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@86593 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/target.h b/gcc/target.h index 2c3798eaa5d..27e4086129e 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -381,7 +381,14 @@ struct gcc_target /* True if MODE is valid for a pointer in __attribute__((mode("MODE"))). */ bool (* valid_pointer_mode) (enum machine_mode mode); - /* True if MODE is valid for a vector. */ + /* True if MODE is valid for the target. By "valid", we mean able to + be manipulated in non-trivial ways. In particular, this means all + the arithmetic is supported. */ + bool (* scalar_mode_supported_p) (enum machine_mode mode); + + /* Similarly for vector modes. "Supported" here is less strict. At + least some operations are supported; need to check optabs or builtins + for further details. */ bool (* vector_mode_supported_p) (enum machine_mode mode); /* True if a vector is opaque. */ |