machmode.def (V1DImode): New mode.
* machmode.def (V1DImode): New mode. A single element vector. * tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums. (unsigned_V1DI_type_node, V1D1_type_node): New type nodes. * tree.c (build_common_tree_nodes_2): Build unsigned_V1DI_type_node and V1D1_type_node. * c-common.c (c_common_type_for_mode): Return unsigned_V1DI_type_node or V1D1_type_node for V1DImode. * rtl.c (class_narrowest_): Start integer vector nodes with V1DImode. From-SVN: r57248
This commit is contained in:
parent
838c4534d4
commit
256e9fd21a
@ -1,3 +1,14 @@
|
|||||||
|
2002-09-17 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
* machmode.def (V1DImode): New mode. A single element vector.
|
||||||
|
* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
|
||||||
|
(unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
|
||||||
|
* tree.c (build_common_tree_nodes_2): Build
|
||||||
|
unsigned_V1DI_type_node and V1D1_type_node.
|
||||||
|
* c-common.c (c_common_type_for_mode): Return
|
||||||
|
unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
|
||||||
|
* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.
|
||||||
|
|
||||||
Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
|
Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
|
||||||
|
|
||||||
* doc/objc.texi (Constant string objects): Extended documentation
|
* doc/objc.texi (Constant string objects): Extended documentation
|
||||||
|
@ -2029,6 +2029,8 @@ c_common_type_for_mode (mode, unsignedp)
|
|||||||
return unsignedp ? unsigned_V4HI_type_node : V4HI_type_node;
|
return unsignedp ? unsigned_V4HI_type_node : V4HI_type_node;
|
||||||
case V8QImode:
|
case V8QImode:
|
||||||
return unsignedp ? unsigned_V8QI_type_node : V8QI_type_node;
|
return unsignedp ? unsigned_V8QI_type_node : V8QI_type_node;
|
||||||
|
case V1DImode:
|
||||||
|
return unsignedp ? unsigned_V1DI_type_node : V1DI_type_node;
|
||||||
case V16SFmode:
|
case V16SFmode:
|
||||||
return V16SF_type_node;
|
return V16SF_type_node;
|
||||||
case V4SFmode:
|
case V4SFmode:
|
||||||
|
@ -113,11 +113,10 @@ DEF_MACHMODE (CTImode, "CTI", MODE_COMPLEX_INT, BITS_PER_UNIT*32, 32, 16, COImod
|
|||||||
DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, OImode)
|
DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, OImode)
|
||||||
|
|
||||||
/* Vector modes. */
|
/* Vector modes. */
|
||||||
/* There are no V1xx vector modes. These are equivalent to normal
|
|
||||||
scalar modes. */
|
|
||||||
/* The wider mode field for vectors follows in order of increasing bit
|
/* The wider mode field for vectors follows in order of increasing bit
|
||||||
size with QI coming before HI, HI before SI, and SI before DI
|
size with QI coming before HI, HI before SI, and SI before DI
|
||||||
within same bit sizes. */
|
within same bit sizes. */
|
||||||
|
DEF_MACHMODE (V1DImode, "V1DI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 8, V2QImode, DImode)
|
||||||
DEF_MACHMODE (V2QImode, "V2QI", MODE_VECTOR_INT, BITS_PER_UNIT*2, 2, 1, V4QImode, QImode)
|
DEF_MACHMODE (V2QImode, "V2QI", MODE_VECTOR_INT, BITS_PER_UNIT*2, 2, 1, V4QImode, QImode)
|
||||||
DEF_MACHMODE (V2HImode, "V2HI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 2, V8QImode, HImode)
|
DEF_MACHMODE (V2HImode, "V2HI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 2, V8QImode, HImode)
|
||||||
DEF_MACHMODE (V2SImode, "V2SI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 4, V16QImode, SImode)
|
DEF_MACHMODE (V2SImode, "V2SI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 4, V16QImode, SImode)
|
||||||
|
@ -152,7 +152,7 @@ const enum machine_mode class_narrowest_mode[(int) MAX_MODE_CLASS] = {
|
|||||||
/* MODE_CC */ CCmode,
|
/* MODE_CC */ CCmode,
|
||||||
/* MODE_COMPLEX_INT */ CQImode,
|
/* MODE_COMPLEX_INT */ CQImode,
|
||||||
/* MODE_COMPLEX_FLOAT */ QCmode,
|
/* MODE_COMPLEX_FLOAT */ QCmode,
|
||||||
/* MODE_VECTOR_INT */ V2QImode,
|
/* MODE_VECTOR_INT */ V1DImode,
|
||||||
/* MODE_VECTOR_FLOAT */ V2SFmode
|
/* MODE_VECTOR_FLOAT */ V2SFmode
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4775,6 +4775,8 @@ build_common_tree_nodes_2 (short_double)
|
|||||||
= make_vector (V8HImode, unsigned_intHI_type_node, 1);
|
= make_vector (V8HImode, unsigned_intHI_type_node, 1);
|
||||||
unsigned_V16QI_type_node
|
unsigned_V16QI_type_node
|
||||||
= make_vector (V16QImode, unsigned_intQI_type_node, 1);
|
= make_vector (V16QImode, unsigned_intQI_type_node, 1);
|
||||||
|
unsigned_V1DI_type_node
|
||||||
|
= make_vector (V1DImode, unsigned_intDI_type_node, 1);
|
||||||
|
|
||||||
V16SF_type_node = make_vector (V16SFmode, float_type_node, 0);
|
V16SF_type_node = make_vector (V16SFmode, float_type_node, 0);
|
||||||
V4SF_type_node = make_vector (V4SFmode, float_type_node, 0);
|
V4SF_type_node = make_vector (V4SFmode, float_type_node, 0);
|
||||||
@ -4787,6 +4789,7 @@ build_common_tree_nodes_2 (short_double)
|
|||||||
V2SF_type_node = make_vector (V2SFmode, float_type_node, 0);
|
V2SF_type_node = make_vector (V2SFmode, float_type_node, 0);
|
||||||
V2DF_type_node = make_vector (V2DFmode, double_type_node, 0);
|
V2DF_type_node = make_vector (V2DFmode, double_type_node, 0);
|
||||||
V16QI_type_node = make_vector (V16QImode, intQI_type_node, 0);
|
V16QI_type_node = make_vector (V16QImode, intQI_type_node, 0);
|
||||||
|
V1DI_type_node = make_vector (V1DImode, intDI_type_node, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns a vector tree node given a vector mode, the inner type, and
|
/* Returns a vector tree node given a vector mode, the inner type, and
|
||||||
|
@ -1968,6 +1968,7 @@ enum tree_index
|
|||||||
TI_UV2SI_TYPE,
|
TI_UV2SI_TYPE,
|
||||||
TI_UV2SF_TYPE,
|
TI_UV2SF_TYPE,
|
||||||
TI_UV2DI_TYPE,
|
TI_UV2DI_TYPE,
|
||||||
|
TI_UV1DI_TYPE,
|
||||||
TI_UV16QI_TYPE,
|
TI_UV16QI_TYPE,
|
||||||
|
|
||||||
TI_V4SF_TYPE,
|
TI_V4SF_TYPE,
|
||||||
@ -1980,6 +1981,7 @@ enum tree_index
|
|||||||
TI_V2SF_TYPE,
|
TI_V2SF_TYPE,
|
||||||
TI_V2DF_TYPE,
|
TI_V2DF_TYPE,
|
||||||
TI_V2DI_TYPE,
|
TI_V2DI_TYPE,
|
||||||
|
TI_V1DI_TYPE,
|
||||||
TI_V16QI_TYPE,
|
TI_V16QI_TYPE,
|
||||||
|
|
||||||
TI_MAIN_IDENTIFIER,
|
TI_MAIN_IDENTIFIER,
|
||||||
@ -2048,6 +2050,7 @@ extern GTY(()) tree global_trees[TI_MAX];
|
|||||||
#define unsigned_V4HI_type_node global_trees[TI_UV4HI_TYPE]
|
#define unsigned_V4HI_type_node global_trees[TI_UV4HI_TYPE]
|
||||||
#define unsigned_V2SI_type_node global_trees[TI_UV2SI_TYPE]
|
#define unsigned_V2SI_type_node global_trees[TI_UV2SI_TYPE]
|
||||||
#define unsigned_V2DI_type_node global_trees[TI_UV2DI_TYPE]
|
#define unsigned_V2DI_type_node global_trees[TI_UV2DI_TYPE]
|
||||||
|
#define unsigned_V1DI_type_node global_trees[TI_UV1DI_TYPE]
|
||||||
|
|
||||||
#define V16QI_type_node global_trees[TI_V16QI_TYPE]
|
#define V16QI_type_node global_trees[TI_V16QI_TYPE]
|
||||||
#define V4SF_type_node global_trees[TI_V4SF_TYPE]
|
#define V4SF_type_node global_trees[TI_V4SF_TYPE]
|
||||||
@ -2060,6 +2063,7 @@ extern GTY(()) tree global_trees[TI_MAX];
|
|||||||
#define V2DI_type_node global_trees[TI_V2DI_TYPE]
|
#define V2DI_type_node global_trees[TI_V2DI_TYPE]
|
||||||
#define V2DF_type_node global_trees[TI_V2DF_TYPE]
|
#define V2DF_type_node global_trees[TI_V2DF_TYPE]
|
||||||
#define V16SF_type_node global_trees[TI_V16SF_TYPE]
|
#define V16SF_type_node global_trees[TI_V16SF_TYPE]
|
||||||
|
#define V1DI_type_node global_trees[TI_V1DI_TYPE]
|
||||||
|
|
||||||
/* An enumeration of the standard C integer types. These must be
|
/* An enumeration of the standard C integer types. These must be
|
||||||
ordered so that shorter types appear before longer ones, and so
|
ordered so that shorter types appear before longer ones, and so
|
||||||
|
Loading…
x
Reference in New Issue
Block a user