OSDN Git Service

2002-03-03 Aldy Hernandez <aldyh@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / rtl.def
index 6c887bc..8fad650 100644 (file)
@@ -205,8 +205,9 @@ DEF_RTL_EXPR(DEFINE_PEEPHOLE, "define_peephole", "EsTV", 'x')
    3rd operand: vector of insn patterns to place into a SEQUENCE
    4th operand: optionally, some C code to execute before generating the
        insns.  This might, for example, create some RTX's and store them in
-       elements of `recog_operand' for use by the vector of insn-patterns.
-       (`operands' is an alias here for `recog_operand').   */
+       elements of `recog_data.operand' for use by the vector of
+       insn-patterns.
+       (`operands' is an alias here for `recog_data.operand').   */
 DEF_RTL_EXPR(DEFINE_SPLIT, "define_split", "EsES", 'x')
 
 /* Definition of an insn and associated split.
@@ -231,8 +232,9 @@ DEF_RTL_EXPR(DEFINE_SPLIT, "define_split", "EsES", 'x')
    5: vector of insn patterns to place into a SEQUENCE
    6: optionally, some C code to execute before generating the
        insns.  This might, for example, create some RTX's and store them in
-       elements of `recog_operand' for use by the vector of insn-patterns.
-       (`operands' is an alias here for `recog_operand').  
+       elements of `recog_data.operand' for use by the vector of
+       insn-patterns.
+       (`operands' is an alias here for `recog_data.operand').  
    7: optionally, a vector of attributes for this insn.  */
 DEF_RTL_EXPR(DEFINE_INSN_AND_SPLIT, "define_insn_and_split", "sEsTsESV", 'x')
 
@@ -247,13 +249,14 @@ DEF_RTL_EXPR(DEFINE_COMBINE, "define_combine", "Ess", 'x')
 /* Define how to generate multiple insns for a standard insn name.
    1st operand: the insn name.
    2nd operand: vector of insn-patterns.
-       Use match_operand to substitute an element of `recog_operand'.
+       Use match_operand to substitute an element of `recog_data.operand'.
    3rd operand: C expression that must be true for this to be available.
        This may not test any operands.
    4th operand: Extra C code to execute before generating the insns.
        This might, for example, create some RTX's and store them in
-       elements of `recog_operand' for use by the vector of insn-patterns.
-       (`operands' is an alias here for `recog_operand').  */
+       elements of `recog_data.operand' for use by the vector of
+       insn-patterns.
+       (`operands' is an alias here for `recog_data.operand').  */
 DEF_RTL_EXPR(DEFINE_EXPAND, "define_expand", "sEss", 'x')
    
 /* Define a requirement for delay slots.
@@ -514,6 +517,17 @@ DEF_RTL_EXPR(ADDR_VEC, "addr_vec", "E", 'x')
      
 DEF_RTL_EXPR(ADDR_DIFF_VEC, "addr_diff_vec", "eEee0", 'x')
 
+/* Memory prefetch, with attributes supported on some targets.
+   Operand 1 is the address of the memory to fetch.
+   Operand 2 is 1 for a write access, 0 otherwise.
+   Operand 3 is the level of temporal locality; 0 means there is no
+   temporal locality and 1, 2, and 3 are for increasing levels of temporal
+   locality.
+
+   The attributes specified by operands 2 and 3 are ignored for targets
+   whose prefetch instructions do not support them.  */
+DEF_RTL_EXPR(PREFETCH, "prefetch", "eee", 'x')
+
 /* ----------------------------------------------------------------------
    At the top level of an instruction (perhaps under PARALLEL).
    ---------------------------------------------------------------------- */
@@ -571,6 +585,9 @@ DEF_RTL_EXPR(CONST_INT, "const_int", "w", 'o')
    there may be from 1 to 4; see rtl.c.  */
 DEF_RTL_EXPR(CONST_DOUBLE, "const_double", CONST_DOUBLE_FORMAT, 'o')
 
+/* Describes a vector constant.  */
+DEF_RTL_EXPR(CONST_VECTOR, "const_vector", "E", 'x')
+
 /* String constant.  Used only for attributes right now.  */
 DEF_RTL_EXPR(CONST_STRING, "const_string", "s", 'o')
 
@@ -958,10 +975,6 @@ DEF_RTL_EXPR(VEC_SELECT, "vec_select", "ee", 'x')
    combined and is the concatenation of the two source vectors.  */
 DEF_RTL_EXPR(VEC_CONCAT, "vec_concat", "ee", 'x')
 
-/* Describes a vector constant.  Each part of the PARALLEL that is operand 0
-   describes a constant for one of the subparts.  */
-DEF_RTL_EXPR(VEC_CONST, "vec_const", "e", 'x')
-
 /* Describes an operation that converts a small vector into a larger one by
    duplicating the input values.  The output vector mode must have the same
    submodes as the input vector mode, and the number of output parts must be