projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
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
diff --git
a/ir/be/ia32/ia32_common_transform.h
b/ir/be/ia32/ia32_common_transform.h
index
1f7a524
..
28fd0dd
100644
(file)
--- a/
ir/be/ia32/ia32_common_transform.h
+++ b/
ir/be/ia32/ia32_common_transform.h
@@
-21,13
+21,14
@@
* @file
* @brief This file implements the common parts of IR transformation from
* firm into ia32-Firm.
* @file
* @brief This file implements the common parts of IR transformation from
* firm into ia32-Firm.
- * @author Sebastian Buchwald
+ * @author
Matthias Braun,
Sebastian Buchwald
* @version $Id: ia32_common_transform.h 20999 2008-08-05 16:48:29Z beck $
*/
#ifndef FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H
#define FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H
#include "bearch_ia32_t.h"
* @version $Id: ia32_common_transform.h 20999 2008-08-05 16:48:29Z beck $
*/
#ifndef FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H
#define FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H
#include "bearch_ia32_t.h"
+#include "height.h"
/**
* An assembler constraint.
/**
* An assembler constraint.
@@
-43,6
+44,7
@@
struct constraint_t {
};
extern ia32_code_gen_t *env_cg;
};
extern ia32_code_gen_t *env_cg;
+extern heights_t *heights;
/**
* Get an atomic entity that is initialized with a tarval forming
/**
* Get an atomic entity that is initialized with a tarval forming
@@
-84,6
+86,18
@@
int ia32_mode_needs_gp_reg(ir_mode *mode);
*/
ir_node *gen_ASM(ir_node *node);
*/
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
/**
* This function just sets the register for the Unknown node
* as this is not done during register allocation because Unknown
@@
-96,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);
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 */
ir_node *try_create_Immediate(ir_node *node, char immediate_constraint_type);
#endif /* FIRM_BE_IA32_IA32_COMMON_TRANSFORM_H */