X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_transform.c;h=91e75e3649c8c7b8149f87aec918f7c4d865abd2;hb=863d31d7a5c8210432fef88b30fc3e8353131538;hp=02cc859af863733a958459349d2452e6124de25b;hpb=fbc27d3a198b65b7519a88ec3cc97c76fd1d8509;p=libfirm diff --git a/ir/be/arm/arm_transform.c b/ir/be/arm/arm_transform.c index 02cc859af..91e75e364 100644 --- a/ir/be/arm/arm_transform.c +++ b/ir/be/arm/arm_transform.c @@ -139,7 +139,6 @@ unsigned int arm_decode_imm_w_shift(tarval *tv) { */ static ir_node *create_const_graph_value(ir_node *irn, ir_node *block, unsigned int value) { ir_node *result; - int negate = 0; vals v, vn; int cnt; ir_mode *mode = get_irn_mode(irn); @@ -951,23 +950,23 @@ static ir_node *gen_CopyB(ir_node *irn, arm_code_gen_t *cg) { * access must be done relative the the fist IncSP ... */ static int get_sp_expand_offset(ir_node *inc_sp) { - unsigned offset = be_get_IncSP_offset(inc_sp); - be_stack_dir_t dir = be_get_IncSP_direction(inc_sp); + int offset = be_get_IncSP_offset(inc_sp); - if (offset == BE_STACK_FRAME_SIZE) + if (offset == BE_STACK_FRAME_SIZE_EXPAND) return 0; - return dir == be_stack_dir_expand ? (int)offset : -(int)offset; + + return offset; } -static ir_node *gen_StackParam(ir_node *irn, arm_code_gen_t *cg) { #if 0 - ir_node *new_op = NULL; - ir_node *block = get_nodes_block(irn); - ir_node *noreg = ia32_new_NoReg_gp(env->cg); - ir_node *mem = new_rd_NoMem(env->irg); - ir_node *ptr = get_irn_n(irn, 0); - entity *ent = be_get_frame_entity(irn); - ir_mode *mode = env->mode; +static ir_node *gen_StackParam(ir_node *irn, arm_code_gen_t *cg) { + ir_node *new_op = NULL; + ir_node *block = get_nodes_block(irn); + ir_node *noreg = ia32_new_NoReg_gp(env->cg); + ir_node *mem = new_rd_NoMem(env->irg); + ir_node *ptr = get_irn_n(irn, 0); + ir_entity *ent = be_get_frame_entity(irn); + ir_mode *mode = env->mode; // /* If the StackParam has only one user -> */ // /* put it in the Block where the user resides */ @@ -998,16 +997,16 @@ static ir_node *gen_StackParam(ir_node *irn, arm_code_gen_t *cg) { SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn)); return new_rd_Proj(env->dbg, env->irg, block, new_op, mode, 0); -#endif } +#endif /** * Transforms a FrameAddr into an ia32 Add. */ static ir_node *gen_be_FrameAddr(ir_node *irn, arm_code_gen_t *cg) { ir_node *block = get_nodes_block(irn); - entity *ent = be_get_frame_entity(irn); - int offset = get_entity_offset_bytes(ent); + ir_entity *ent = be_get_frame_entity(irn); + int offset = get_entity_offset(ent); ir_node *op = get_irn_n(irn, 0); ir_node *cnst; ir_mode *mode = get_irn_mode(irn); @@ -1024,17 +1023,17 @@ static ir_node *gen_be_FrameAddr(ir_node *irn, arm_code_gen_t *cg) { return new_rd_arm_Add(dbg, current_ir_graph, block, op, cnst, mode, ARM_SHF_NONE, NULL); } +#if 0 /** * Transforms a FrameLoad into an ia32 Load. */ static ir_node *gen_FrameLoad(ir_node *irn, arm_code_gen_t *cg) { -#if 0 - ir_node *new_op = NULL; - ir_node *noreg = ia32_new_NoReg_gp(env->cg); - ir_node *mem = get_irn_n(irn, 0); - ir_node *ptr = get_irn_n(irn, 1); - entity *ent = be_get_frame_entity(irn); - ir_mode *mode = get_type_mode(get_entity_type(ent)); + ir_node *new_op = NULL; + ir_node *noreg = ia32_new_NoReg_gp(env->cg); + ir_node *mem = get_irn_n(irn, 0); + ir_node *ptr = get_irn_n(irn, 1); + ir_entity *ent = be_get_frame_entity(irn); + ir_mode *mode = get_type_mode(get_entity_type(ent)); if (mode_is_float(mode)) { if (USE_SSE2(env->cg)) @@ -1059,22 +1058,21 @@ static ir_node *gen_FrameLoad(ir_node *irn, arm_code_gen_t *cg) { SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn)); return new_op; -#endif } +#endif - +#if 0 /** * Transforms a FrameStore into an ia32 Store. */ static ir_node *gen_FrameStore(ir_node *irn, arm_code_gen_t *cg) { -#if 0 - ir_node *new_op = NULL; - ir_node *noreg = ia32_new_NoReg_gp(env->cg); - ir_node *mem = get_irn_n(irn, 0); - ir_node *ptr = get_irn_n(irn, 1); - ir_node *val = get_irn_n(irn, 2); - entity *ent = be_get_frame_entity(irn); - ir_mode *mode = get_irn_mode(val); + ir_node *new_op = NULL; + ir_node *noreg = ia32_new_NoReg_gp(env->cg); + ir_node *mem = get_irn_n(irn, 0); + ir_node *ptr = get_irn_n(irn, 1); + ir_node *val = get_irn_n(irn, 2); + ir_entity *ent = be_get_frame_entity(irn); + ir_mode *mode = get_irn_mode(val); if (mode_is_float(mode)) { if (USE_SSE2(env->cg)) @@ -1102,8 +1100,8 @@ static ir_node *gen_FrameStore(ir_node *irn, arm_code_gen_t *cg) { SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env->cg, env->irn)); return new_op; -#endif } +#endif // static ir_node *gen_be_Copy(ir_node *irn, arm_code_gen_t *cg) { @@ -1124,7 +1122,6 @@ static ir_node *gen_FrameStore(ir_node *irn, arm_code_gen_t *cg) { * move constants out of the start block */ void arm_move_consts(ir_node *node, void *env) { - arm_code_gen_t *cgenv = (arm_code_gen_t *)env; int i; if (is_Block(node)) @@ -1133,7 +1130,7 @@ void arm_move_consts(ir_node *node, void *env) { if (is_Phi(node)) { for (i = get_irn_arity(node) - 1; i >= 0; --i) { ir_node *pred = get_irn_n(node,i); - opcode pred_code = get_irn_opcode(pred); + ir_opcode pred_code = get_irn_opcode(pred); if (pred_code == iro_Const) { ir_node *const_graph; const_graph = create_const_graph(pred, get_nodes_block(get_irn_n(get_nodes_block(node),i))); @@ -1155,7 +1152,7 @@ void arm_move_consts(ir_node *node, void *env) { } for (i = 0; i < get_irn_arity(node); i++) { ir_node *pred = get_irn_n(node,i); - opcode pred_code = get_irn_opcode(pred); + ir_opcode pred_code = get_irn_opcode(pred); if (pred_code == iro_Const) { ir_node *const_graph; const_graph = create_const_graph(pred, get_nodes_block(node)); @@ -1182,8 +1179,8 @@ void arm_move_symconsts(ir_node *node, void *env) { return; for (i = 0; i < get_irn_arity(node); i++) { - ir_node *pred = get_irn_n(node,i); - opcode pred_code = get_irn_opcode(pred); + ir_node *pred = get_irn_n(node,i); + ir_opcode pred_code = get_irn_opcode(pred); if (pred_code == iro_SymConst) { const char *str = get_sc_name(pred);