Do not emit cld in the CopyB prologue. The ABI mandates that DF is cleared, so do...
[libfirm] / ir / be / ia32 / ia32_common_transform.h
index 6d6b3bf..28fd0dd 100644 (file)
@@ -86,6 +86,18 @@ int ia32_mode_needs_gp_reg(ir_mode *mode);
  */
 ir_node *gen_ASM(ir_node *node);
 
+/**
+ * Transforms a CopyB node.
+ *
+ * @return The transformed node.
+ */
+ir_node *gen_CopyB(ir_node *node);
+
+/**
+ * Transform the Thread Local Storage Proj.
+ */
+ir_node *gen_Proj_tls(ir_node *node);
+
 /**
  * This function just sets the register for the Unknown node
  * as this is not done during register allocation because Unknown
@@ -98,6 +110,12 @@ const arch_register_req_t *make_register_req(const constraint_t *constraint,
 
 const arch_register_req_t *parse_clobber(const char *clobber);
 
+/**
+ * Checks whether other node inputs depend on the am_candidate (via mem-proj).
+ */
+int prevents_AM(ir_node *const block, ir_node *const am_candidate,
+                       ir_node *const other);
+
 ir_node *try_create_Immediate(ir_node *node, char immediate_constraint_type);
 
 #endif /* FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H */