-/**
- * Get the index of a position.
- * @param pos The position.
- * @return The index of the position.
- */
-#define arch_pos_get_index(pos) _BEARCH_TRANSFORM_INDEX(<, pos)
-
-struct _arch_irn_ops_t {
-
- /**
- * Get the register requirements for a given operand.
- * @param self The self pointer.
- * @param irn The node.
- * @param pos The operand's position.
- * @return The register requirements for the selected operand.
- * The pointer returned is never NULL.
- */
- const arch_register_req_t *(*get_irn_reg_req)(const arch_irn_ops_t *self,
- arch_register_req_t *req,
- const ir_node *irn, int pos);
-
- /**
- * Get the number of operands of a node.
- * @param irn The node.
- * @param in_out Denotes wither input (a number >= 0) or
- * output (a number < 0).
- * @return The number of operands for either in, or output.
- */
- int (*get_n_operands)(const arch_irn_ops_t *self, const ir_node *irn, int in_out);
-
- /**
- * Set the register for an output operand.
- * @param irn The node.
- * @param pos The position of the output operand.
- * @param reg The register allocated to that operand.
- * @note If the operand is not a register operand,
- * the call is ignored.
- */
- void (*set_irn_reg)(const arch_irn_ops_t *self, ir_node *irn,
- int idx, const arch_register_t *reg);
-
- /**
- * Get the register allocated for an output operand.
- * @param irn The node.
- * @param pos The index of the output operand.
- * @return The register allocated at that operand. NULL, if
- * the operand was no register operand or
- * @c arch_register_invalid, if no register has yet been
- * allocated for this node.
- */
- const arch_register_t *(*get_irn_reg)(const arch_irn_ops_t *self,
- const ir_node *irn, int idx);
-
- /**
- * Classify the node.
- * @param irn The node.
- * @return A classification.
- */
- arch_irn_class_t (*classify)(const arch_irn_ops_t *self, const ir_node *irn);
-
- /**
- * Get the flags of a node.
- * @param self The irn ops themselves.
- * @param irn The node.
- * @return A set of flags.
- */
- arch_irn_flags_t (*get_flags)(const arch_irn_ops_t *self, const ir_node *irn);
-
-};
-
-extern int
-arch_get_n_operands(const arch_env_t *env, const ir_node *irm, int in_out);
+extern int arch_get_op_estimated_cost(const arch_env_t *env, const ir_node *irn);
+extern arch_inverse_t *arch_get_inverse(const arch_env_t *env, const ir_node *irn, int i, arch_inverse_t *inverse, struct obstack *obstack);
+extern int arch_possible_memory_operand(const arch_env_t *env, const ir_node *irn, unsigned int i);
+extern void arch_perform_memory_operand(const arch_env_t *env, ir_node *irn, ir_node *spill, unsigned int i);