*/
arch_irn_flags_t (*get_flags)(const void *self, const ir_node *irn);
+ /**
+ * Set a bias for the stack pointer.
+ * If the node in question uses the stack pointer for indexing, it must
+ * consider the value of <code>bias</code> additionally.
+ * @param self The this pointer.
+ * @param irn The node in question.
+ * @param bias The bias.
+ */
+ void (*set_stack_bias)(const void *self, ir_node *irn, int bias);
};
/**
const arch_irn_ops_if_t *impl;
};
+extern void
+arch_set_stack_bias(const arch_env_t *env, ir_node *irn, int bias);
+
/**
* Get the register requirements for a node.
* @param env The architecture environment.
*/
ir_node *(*lower_reload)(void *self, ir_node *reload);
- /**
- * Called in lowering (e.g. alloca lowering) to set the
- * correct stack register.
- * @param self The code generator
- * @return The stack register for the current irg
- */
- const arch_register_t *(*get_stack_register)(void *self);
-
/**
* Called after everything happened.
* The code generator must also be de-allocated here.