summaryrefslogtreecommitdiffhomepage
path: root/ir/be/benode.h
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2014-10-07 15:45:55 +0200
committerMatthias Braun <matze@braunis.de>2014-10-07 15:54:34 +0200
commitb719d82d7dd040cd03fca522a86f12c52f2b8953 (patch)
tree6f72717867a27bab4f0393cfacd145cd4db9f94e /ir/be/benode.h
parent14b3c4c7035bac15503d5c3d26bcf11dd65f757c (diff)
API change+fix for IncSP alignment
- alignment is set on each single IncSP now instead of a global arch_env setting - fixed ia32 not requesting any alignment anymore (even on darwin where we need it) - fixed amd64 creating IncSP nodes without flag_modifies_flags set
Diffstat (limited to 'ir/be/benode.h')
-rw-r--r--ir/be/benode.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/ir/be/benode.h b/ir/be/benode.h
index 2f45608..c8dae7e 100644
--- a/ir/be/benode.h
+++ b/ir/be/benode.h
@@ -113,14 +113,14 @@ void be_Keep_add_node(ir_node *keep, const arch_register_class_t *cls,
* (negative offset). Note that the offset is independent of the
* natural stack direction of the architecture but just specifies
* abstract expanding/shrinking of the stack area.
- * @param align force stack alignment to this power of 2. (i.e. specifying 3
- * results in a 2^3 = 8byte stack alignment)
+ * @param align force stack alignment to this power of 2. (i.e. specifying 4
+ * results in a 2**4 = 16 bytes stack alignment)
* @return A new stack pointer increment/decrement node.
* @note This node sets a register constraint to the @p sp register on
* its output.
*/
ir_node *be_new_IncSP(const arch_register_t *sp, ir_node *block,
- ir_node *old_sp, int offset, int align);
+ ir_node *old_sp, int offset, unsigned align);
/** Returns the previous node that computes the stack pointer. */
ir_node *be_get_IncSP_pred(ir_node *incsp);
@@ -138,7 +138,9 @@ void be_set_IncSP_offset(ir_node *irn, int offset);
/** Gets the offset from a IncSP node. */
int be_get_IncSP_offset(const ir_node *irn);
-int be_get_IncSP_align(const ir_node *irn);
+/** Return requested stack alignment (as a logarithm of two, i.e. 4 means
+ * the stack alignment will be 2**4=16 bytes) */
+unsigned be_get_IncSP_align(const ir_node *irn);
enum {
n_be_CopyKeep_op,