diff options
Diffstat (limited to 'gcc/tree.def')
-rw-r--r-- | gcc/tree.def | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/tree.def b/gcc/tree.def index fa58aba..4c1f986 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -366,6 +366,17 @@ DEFTREECODE (BIT_FIELD_REF, "bit_field_ref", tcc_reference, 3) /* C unary `*' or Pascal `^'. One operand, an expression for a pointer. */ DEFTREECODE (INDIRECT_REF, "indirect_ref", tcc_reference, 1) +/* Like above, but aligns the referenced address (i.e, if the address + in P is not aligned on TYPE_ALIGN boundary, then &(*P) != P). */ +DEFTREECODE (ALIGN_INDIRECT_REF, "align_indirect_ref", tcc_reference, 1) + +/* Same as INDIRECT_REF, but also specifies the alignment of the referenced + address: + Operand 0 is the referenced address (a pointer); + Operand 1 is an INTEGER_CST which represents the alignment of the address, + or 0 if the alignment is unknown. */ +DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2) + /* Array indexing. Operand 0 is the array; operand 1 is a (single) array index. Operand 2, if present, is a copy of TYPE_MIN_VALUE of the index. @@ -886,6 +897,28 @@ DEFTREECODE (TREE_BINFO, "tree_binfo", tcc_exceptional, 0) Operand 1 is the size of the type in the expression. */ DEFTREECODE (WITH_SIZE_EXPR, "with_size_expr", tcc_expression, 2) +/* Extract elements from two input vectors Operand 0 and Operand 1 + size VS, according to the offset OFF defined by Operand 2 as + follows: + If OFF > 0, the last VS - OFF elements of vector OP0 are concatenated to + the first OFF elements of the vector OP1. + If OFF == 0, then the returned vector is OP1. + On different targets OFF may take different forms; It can be an address, in + which case its low log2(VS)-1 bits define the offset, or it can be a mask + generated by the builtin targetm.vectorize.mask_for_load_builtin_decl. */ +DEFTREECODE (REALIGN_LOAD_EXPR, "realign_load", tcc_expression, 3) + +/* Extract elements from two input vectors Operand 0 and Operand 1 + size VS, according to the offset OFF defined by Operand 2 as + follows: + If OFF > 0, the last OFF elements of vector OP0 are concatenated to + the first VS - OFF elements of the vector OP1. + If OFF == 0, then the returned vector is OP0. + On different targets OFF may take different forms; It can be an address, in + which case its low log2(VS)-1 bits define the offset, or it can be a mask + generated by the builtin targetm.vectorize.mask_for_store_builtin_decl. */ +DEFTREECODE (REALIGN_STORE_EXPR, "realign_store", tcc_expression, 3) + /* Local variables: mode:c |