diff options
author | Richard Henderson <rth@redhat.com> | 2004-08-25 17:24:37 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-08-25 17:24:37 -0700 |
commit | 6dd53648e913ea6ad55131ed0c8cc2709e9a3316 (patch) | |
tree | 16040afedbe7456a6d5be99edc239c4efcbd88c1 /gcc/target.h | |
parent | 9950712b1dd1615314417b98f8a26cfe5c6b2f32 (diff) | |
download | gcc-6dd53648e913ea6ad55131ed0c8cc2709e9a3316.zip gcc-6dd53648e913ea6ad55131ed0c8cc2709e9a3316.tar.gz gcc-6dd53648e913ea6ad55131ed0c8cc2709e9a3316.tar.bz2 |
target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
* 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.
From-SVN: r86593
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 2c3798e..27e4086 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. */ |