nn = node->in[n + 1];
if (nn == NULL) {
- /* only block inputs are allowed to be NULL */
- assert(n == -1 && "NULL input of a node");
+ /* only block and Anchor inputs are allowed to be NULL */
+ assert((node->op == op_Anchor || n == -1) && "NULL input of a node");
return NULL;
}
if (nn->op != op_Id) return nn;
return (_get_irn_op(node) == op_Not);
}
+static INLINE int
+_is_Shl(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shl);
+}
+
+static INLINE int
+_is_Shr(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shr);
+}
+
+static INLINE int
+_is_Shrs(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shrs);
+}
+
+static INLINE int
+_is_Rot(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Rot);
+}
+
static INLINE int
_is_Psi(const ir_node *node) {
assert(node);
return (_get_irn_op(node) == op_ASM);
}
+static INLINE int
+_is_Anchor(const ir_node *node) {
+ return (_get_irn_op(node) == op_Anchor);
+}
+
static INLINE int
_is_no_Block(const ir_node *node) {
assert(node && _is_ir_node(node));
#define is_Jmp(node) _is_Jmp(node)
#define is_Raise(node) _is_Raise(node)
#define is_ASM(node) _is_ASM(node)
+#define is_Anchor(node) _is_Anchor(node)
#define is_Bad(node) _is_Bad(node)
#define is_NoMem(node) _is_NoMem(node)
#define is_Start(node) _is_Start(node)
#define is_Eor(node) _is_Eor(node)
#define is_Sub(node) _is_Sub(node)
#define is_Not(node) _is_Not(node)
+#define is_Shl(node) _is_Shl(node)
+#define is_Shr(node) _is_Shr(node)
+#define is_Shrs(node) _is_Shrs(node)
+#define is_Rot(node) _is_Rot(node)
#define is_Psi(node) _is_Psi(node)
#define is_Tuple(node) _is_Tuple(node)
#define is_no_Block(node) _is_no_Block(node)