Several changes
[libfirm] / ir / be / bearch.h
index 1083dd7..0c0cf0d 100644 (file)
@@ -251,6 +251,15 @@ struct _arch_irn_ops_if_t {
    */
   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);
 };
 
 /**
@@ -260,6 +269,9 @@ struct _arch_irn_ops_t {
        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.