From: Michael Beck Date: Fri, 15 Jun 2007 13:05:03 +0000 (+0000) Subject: be_get_FrameAddr_frame() added X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=8b5f5ff3484444ec7f2143e19e9b0029892cf1af;p=libfirm be_get_FrameAddr_frame() added [r14518] --- diff --git a/ir/be/benode.c b/ir/be/benode.c index f9dabc7c8..90414fbea 100644 --- a/ir/be/benode.c +++ b/ir/be/benode.c @@ -576,6 +576,7 @@ void be_Keep_add_node(ir_node *keep, const arch_register_class_t *cls, ir_node * be_node_set_reg_class(keep, n, cls); } +/* creates a be_Call */ ir_node *be_new_Call(dbg_info *dbg, ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *sp, ir_node *ptr, int n_outs, int n, ir_node *in[], ir_type *call_tp) { @@ -860,6 +861,11 @@ ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, return optimize_node(irn); } +ir_node *be_get_FrameAddr_frame(ir_node *node) { + assert(be_is_FrameAddr(node)); + return get_irn_n(node, be_pos_FrameAddr_ptr); +} + ir_node *be_new_CopyKeep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *src, int n, ir_node *in_keep[], ir_mode *mode) { ir_node *irn; diff --git a/ir/be/benode_t.h b/ir/be/benode_t.h index 59f214a0a..72289c34d 100644 --- a/ir/be/benode_t.h +++ b/ir/be/benode_t.h @@ -195,8 +195,12 @@ enum { be_pos_FrameAddr_ptr = 0 }; +/** Create a new FrameAddr node. */ ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_entity *ent); +/** Return the frame input of a FrameAddr node. */ +ir_node *be_get_FrameAddr_frame(ir_node *node); + /** * Position numbers for the be_AddSP inputs */