X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeirg.h;h=1b7c1a825f11cd76e2238c0757706b6875313667;hb=0318dc1a48ce72b311592c28affc31fabc95f026;hp=6f3360f2fae5ae1f6f5b2d87ddc582ba2875a6ec;hpb=ad9464a5db0b98cb926aae609abe84db70b74291;p=libfirm diff --git a/ir/be/beirg.h b/ir/be/beirg.h index 6f3360f2f..1b7c1a825 100644 --- a/ir/be/beirg.h +++ b/ir/be/beirg.h @@ -49,25 +49,25 @@ void be_free_birg(ir_graph *irg); /** * This type describes the stack layout. * The stack is divided into 3 parts: - * - arg_type: A struct type describing the stack arguments and it's order. + * - arg_type: A struct type describing the stack arguments and its order. * - between_type: A struct type describing the stack layout between arguments * and frame type. In architectures that put the return address * automatically on the stack, the return address is put here. * - frame_type: A class type describing the frame layout. */ struct be_stack_layout_t { - ir_type *arg_type; /**< A type describing the stack argument layout. */ - ir_type *between_type; /**< A type describing the "between" layout. */ - ir_type *frame_type; /**< The frame type. */ - - ir_type *order[N_FRAME_TYPES]; /**< arg, between and frame types ordered. */ - - ir_entity **param_map; /**< An array mapping type parameters to arg_type entries */ - int initial_offset; /**< the initial difference between stack pointer and frame pointer */ - int initial_bias; /**< the initial stack bias */ - int stack_dir; /**< -1 for decreasing, 1 for increasing. */ - bool sp_relative : 1; /**< entities are addressed relative to - stack pointer (omit-fp mode) */ + ir_type *arg_type; /**< A type describing the stack argument layout. */ + ir_type *between_type; /**< A type describing the "between" layout. */ + ir_type *frame_type; /**< The frame type. */ + + ir_type *order[N_FRAME_TYPES]; /**< arg, between and frame types ordered. */ + + ir_entity **param_map; /**< An array mapping type parameters to arg_type entries */ + int initial_offset; /**< the initial difference between stack pointer and frame pointer */ + int initial_bias; /**< the initial stack bias */ + int stack_dir; /**< -1 for decreasing, 1 for increasing. */ + bool sp_relative : 1; /**< entities are addressed relative to + stack pointer (omit-fp mode) */ }; /** @@ -82,6 +82,8 @@ typedef struct be_irg_t { be_dom_front_info_t *dom_front; be_lv_t *lv; be_stack_layout_t stack_layout; + unsigned *allocatable_regs; /**< registers available for the + allocator */ arch_register_req_t *sp_req; /**< requirements for stackpointer producing nodes. */ struct obstack obst; /**< birg obstack (mainly used to keep