From: Michael Beck Date: Sat, 8 Apr 2006 00:57:42 +0000 (+0000) Subject: renamed register classes X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=21ae21f548b3d01d84d48820bee9429a608c621e;p=libfirm renamed register classes fixed empty comments --- diff --git a/ir/be/mips/bearch_mips.c b/ir/be/mips/bearch_mips.c index 3e96f2ff9..6371ec814 100644 --- a/ir/be/mips/bearch_mips.c +++ b/ir/be/mips/bearch_mips.c @@ -132,7 +132,7 @@ static const arch_register_req_t *mips_get_irn_reg_req(const void *self, arch_re assert(0 && "floating point not supported (yet)"); } else if (mode_is_int(mode) || mode_is_reference(mode)) { - memcpy(req, &(mips_default_req_mips_general_purpose.req), sizeof(*req)); + memcpy(req, &(mips_default_req_mips_gp.req), sizeof(*req)); } else if (mode == mode_T || mode == mode_M) { DBG((mod, LEVEL_1, "ignoring Phi node %+F\n", irn)); @@ -556,8 +556,8 @@ static void *mips_cg_init(const be_irg_t *birg) { static mips_isa_t mips_isa_template = { &mips_isa_if, - &mips_general_purpose_regs[REG_SP], - &mips_general_purpose_regs[REG_FP], + &mips_gp_regs[REG_SP], + &mips_gp_regs[REG_FP], -1, // stack direction 0, // num codegens?!? TODO what is this? NULL @@ -613,7 +613,7 @@ static const arch_register_class_t *mips_get_reg_class(const void *self, int i) */ const arch_register_class_t *mips_get_reg_class_for_mode(const void *self, const ir_mode *mode) { ASSERT_NO_FLOAT(mode); - return &mips_reg_classes[CLASS_mips_general_purpose]; + return &mips_reg_classes[CLASS_mips_gp]; } typedef struct { @@ -651,8 +651,8 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap dbg_info *dbg = NULL; // TODO where can I get this from? ir_node *block = get_irg_start_block(env->irg); mips_attr_t *attr; - ir_node *sp = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_SP]); - ir_node *fp = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_FP]); + ir_node *sp = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_SP]); + ir_node *fp = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_FP]); int initialstackframesize; if(env->debug) { @@ -670,13 +670,13 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap sp = new_rd_mips_addi(dbg, irg, block, sp, mode_Is); attr = get_mips_attr(sp); attr->tv = new_tarval_from_long(-initialstackframesize, mode_Is); - mips_set_irn_reg(NULL, sp, &mips_general_purpose_regs[REG_SP]); - //arch_set_irn_register(mips_get_arg_env(), sp, &mips_general_purpose_regs[REG_SP]); + mips_set_irn_reg(NULL, sp, &mips_gp_regs[REG_SP]); + //arch_set_irn_register(mips_get_arg_env(), sp, &mips_gp_regs[REG_SP]); /* TODO: where to get an edge with a0-a3 int i; for(i = 0; i < 4; ++i) { - ir_node *reg = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_A0 + i]); + ir_node *reg = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_A0 + i]); ir_node *store = new_rd_mips_store_r(dbg, irg, block, *mem, sp, reg, mode_T); attr = get_mips_attr(store); attr->load_store_mode = mode_Iu; @@ -686,7 +686,7 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap } */ - reg = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_FP]); + reg = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_FP]); store = new_rd_mips_store_r(dbg, irg, block, *mem, sp, reg, mode_T); attr = get_mips_attr(store); attr->modes.load_store_mode = mode_Iu; @@ -694,7 +694,7 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap mm[4] = new_r_Proj(irg, block, store, mode_M, pn_Store_M); - reg = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_RA]); + reg = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_RA]); store = new_rd_mips_store_r(dbg, irg, block, *mem, sp, reg, mode_T); attr = get_mips_attr(store); attr->modes.load_store_mode = mode_Iu; @@ -713,10 +713,10 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap sp = new_rd_mips_addi(dbg, irg, block, sp, mode_Is); attr = get_mips_attr(sp); attr->tv = new_tarval_from_long(-initialstackframesize, mode_Is); - mips_set_irn_reg(NULL, sp, &mips_general_purpose_regs[REG_SP]); - //arch_set_irn_register(mips_get_arg_env(), sp, &mips_general_purpose_regs[REG_SP]); + mips_set_irn_reg(NULL, sp, &mips_gp_regs[REG_SP]); + //arch_set_irn_register(mips_get_arg_env(), sp, &mips_gp_regs[REG_SP]); - reg = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_FP]); + reg = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_FP]); store = new_rd_mips_store_r(dbg, irg, block, *mem, sp, reg, mode_T); attr = get_mips_attr(store); attr->modes.load_store_mode = mode_Iu; @@ -729,13 +729,13 @@ static const arch_register_t *mips_abi_prologue(void *self, ir_node** mem, pmap fp = new_rd_mips_addi(dbg, irg, block, sp, mode_Is); attr = get_mips_attr(fp); attr->tv = new_tarval_from_long(initialstackframesize, mode_Is); - mips_set_irn_reg(NULL, fp, &mips_general_purpose_regs[REG_FP]); - //arch_set_irn_register(mips_get_arg_env(), fp, &mips_general_purpose_regs[REG_FP]); + mips_set_irn_reg(NULL, fp, &mips_gp_regs[REG_FP]); + //arch_set_irn_register(mips_get_arg_env(), fp, &mips_gp_regs[REG_FP]); - be_abi_reg_map_set(reg_map, &mips_general_purpose_regs[REG_FP], fp); - be_abi_reg_map_set(reg_map, &mips_general_purpose_regs[REG_SP], sp); + be_abi_reg_map_set(reg_map, &mips_gp_regs[REG_FP], fp); + be_abi_reg_map_set(reg_map, &mips_gp_regs[REG_SP], sp); - return &mips_general_purpose_regs[REG_SP]; + return &mips_gp_regs[REG_SP]; } static void mips_abi_epilogue(void *self, ir_node *block, ir_node **mem, pmap *reg_map) @@ -744,19 +744,19 @@ static void mips_abi_epilogue(void *self, ir_node *block, ir_node **mem, pmap *r ir_graph *irg = env->irg; dbg_info *dbg = NULL; // TODO where can I get this from? mips_attr_t *attr; - ir_node *sp = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_SP]); - ir_node *fp = be_abi_reg_map_get(reg_map, &mips_general_purpose_regs[REG_FP]); + ir_node *sp = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_SP]); + ir_node *fp = be_abi_reg_map_get(reg_map, &mips_gp_regs[REG_FP]); ir_node *load; int initial_frame_size = env->debug ? 24 : 4; int fp_save_offset = env->debug ? 16 : 0; // restore sp - //sp = be_new_IncSP(&mips_general_purpose_regs[REG_SP], irg, block, sp, *mem, BE_STACK_FRAME_SIZE, be_stack_dir_against); + //sp = be_new_IncSP(&mips_gp_regs[REG_SP], irg, block, sp, *mem, BE_STACK_FRAME_SIZE, be_stack_dir_against); // copy fp to sp sp = new_rd_mips_move(dbg, irg, block, fp, mode_Iu); - mips_set_irn_reg(NULL, sp, &mips_general_purpose_regs[REG_SP]); - //arch_set_irn_register(mips_get_arg_env(), fp, &mips_general_purpose_regs[REG_SP]); + mips_set_irn_reg(NULL, sp, &mips_gp_regs[REG_SP]); + //arch_set_irn_register(mips_get_arg_env(), fp, &mips_gp_regs[REG_SP]); // 1. restore fp load = new_rd_mips_load_r(dbg, irg, block, *mem, sp, mode_T); @@ -766,11 +766,11 @@ static void mips_abi_epilogue(void *self, ir_node *block, ir_node **mem, pmap *r attr->tv = new_tarval_from_long(fp_save_offset - initial_frame_size, mode_Is); fp = new_r_Proj(irg, block, load, mode_Iu, pn_Load_res); - mips_set_irn_reg(NULL, fp, &mips_general_purpose_regs[REG_FP]); - //arch_set_irn_register(mips_get_arg_env(), fp, &mips_general_purpose_regs[REG_FP]); + mips_set_irn_reg(NULL, fp, &mips_gp_regs[REG_FP]); + //arch_set_irn_register(mips_get_arg_env(), fp, &mips_gp_regs[REG_FP]); - be_abi_reg_map_set(reg_map, &mips_general_purpose_regs[REG_FP], fp); - be_abi_reg_map_set(reg_map, &mips_general_purpose_regs[REG_SP], sp); + be_abi_reg_map_set(reg_map, &mips_gp_regs[REG_FP], fp); + be_abi_reg_map_set(reg_map, &mips_gp_regs[REG_SP], sp); } /** @@ -867,7 +867,7 @@ static void mips_get_call_abi(const void *self, ir_type *method_type, be_abi_cal for (i = 0; i < n; i++) { // first 4 params in $a0-$a3, the others on the stack if(i < 4) { - reg = &mips_general_purpose_regs[REG_A0 + i]; + reg = &mips_gp_regs[REG_A0 + i]; be_abi_call_param_reg(abi, i, reg); } else { /* default: all parameters on stack */ @@ -885,7 +885,7 @@ static void mips_get_call_abi(const void *self, ir_type *method_type, be_abi_cal mode = get_type_mode(tp); ASSERT_NO_FLOAT(mode); - reg = &mips_general_purpose_regs[REG_V0 + i]; + reg = &mips_gp_regs[REG_V0 + i]; be_abi_call_res_reg(abi, i, reg); } } diff --git a/ir/be/mips/mips_scheduler.c b/ir/be/mips/mips_scheduler.c index 5b3a04307..aabc0f955 100644 --- a/ir/be/mips/mips_scheduler.c +++ b/ir/be/mips/mips_scheduler.c @@ -30,7 +30,7 @@ typedef struct { * have to pass before we can access that register again * (because mips will write the register value back in the WB phase of the pipeline) */ - int busy_registers[N_mips_general_purpose_REGS]; + int busy_registers[N_mips_gp_REGS]; /// current block ir_node* block; ir_node* last_nop; diff --git a/ir/be/mips/mips_spec.pl b/ir/be/mips/mips_spec.pl index c116c5801..99a1665d3 100644 --- a/ir/be/mips/mips_spec.pl +++ b/ir/be/mips/mips_spec.pl @@ -61,6 +61,9 @@ $comment_string = "#"; # for i = 1 .. arity: ir_node *op_i # ir_mode *mode # +# outs: if a node defines more than one output, the names of the projections +# nodes having outs having automatically the mode mode_T +# # comment: OPTIONAL comment for the node constructor # # rd_constructor: for every operation there will be a @@ -86,7 +89,7 @@ $comment_string = "#"; # 4 - ignore (do not assign this register) # NOTE: Last entry of each class is the largest Firm-Mode a register can hold\ %reg_classes = ( - "general_purpose" => [ + "gp" => [ { name => "zero", type => 4+2 }, # always zero { name => "at", type => 4 }, # reserved for assembler { name => "v0", type => 1 }, # first return value @@ -155,30 +158,30 @@ $comment_string = "#"; add => { op_flags => "C", - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. addu %D1, %S1, %S2' }, addi => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. addiu %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, and => { op_flags => "C", - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. and %D1, %S1, %S2', }, andi => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. andi %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, div => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "none", "none", "none", "none" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "none", "none", "none", "none" ] }, emit => ' mips_attr_t *attr = get_mips_attr(n); if (attr->modes.original_mode->sign) { @@ -191,114 +194,126 @@ div => { mult => { op_flags => "C", - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "none" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "none" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. mult %S1, %S2 - else + } + else { 2. multu %S1, %S2 -' + } +', }, nor => { op_flags => "C", - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. nor %D1, %S1, %S2' }, not => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. nor %D1, %S1, $zero' }, or => { op_flags => "C", - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. or %D1, %S1, %S2' }, ori => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. ori %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, sl => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. sal %D1, %S1, %S2 - else -2. sll %D1, %S1, %S2', + } + else { +2. sll %D1, %S1, %S2 + } +', }, sli => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. sal %D1, %S1, %C - else -2. sll %D1, %S1, %C', + } + else { +2. sll %D1, %S1, %C + } +', }, sra => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. sra %D1, %S1, %S2', }, srai => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. sra %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, sr => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. sra %D1, %S1, %S2 - else + } + else { 2. srl %D1, %S1, %S2 + } ', }, sri => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. sra %D1, %S1, %C - else + } + else { 2. srl %D1, %S1, %C + } ', }, srlv => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. srlv %D1, %S1, %S2', }, sllv => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. sllv %D1, %S1, %S2', }, sub => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. subu %D1, %S1, %S2', }, subuzero => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. subu %D1, $zero, %S1', }, xor => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => '. xor %D1, %S1, %S2' }, xori => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. xori %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, @@ -313,7 +328,7 @@ xori => { # load upper imediate lui => { op_flags => "c", - reg_req => { out => [ "general_purpose" ] }, + reg_req => { out => [ "gp" ] }, emit => '. lui %D1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, @@ -321,25 +336,25 @@ lui => { # load lower immediate lli => { op_flags => "c", - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. ori %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, la => { op_flags => "c", - reg_req => { out => [ "general_purpose" ] }, + reg_req => { out => [ "gp" ] }, emit => '. la %D1, %C', cmp_attr => 'return attr_a->symconst_id != attr_b->symconst_id;', }, mflo => { - reg_req => { in => [ "none" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "none" ], out => [ "gp" ] }, emit => '. mflo %D1' }, mfhi => { - reg_req => { in => [ "none" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "none" ], out => [ "gp" ] }, emit => '. mfhi %D1' }, @@ -358,22 +373,26 @@ zero => { # slt => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. slt %D1, %S1, %S2 - else + } + else { 2. sltu %D1, %S1, %S2 + } ', }, slti => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => ' - if (mode_is_signed(get_irn_mode(n))) + if (mode_is_signed(get_irn_mode(n))) { 2. slti %D1, %S1, %C - else + } + else { 2. sltiu %D1, %S1, %C + } ', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, @@ -381,7 +400,7 @@ slti => { beq => { op_flags => "X|Y", # TxT -> TxX - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "in_r0", "none" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "in_r0", "none" ] }, emit => ' ir_node *jumpblock = mips_get_jump_block(n, 1); assert(jumpblock != NULL); @@ -393,7 +412,7 @@ beq => { bne => { op_flags => "X|Y", # TxT -> TxX - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "in_r0", "none" ] }, + reg_req => { in => [ "gp", "gp" ], out => [ "in_r0", "none" ] }, emit => ' ir_node *jumpblock = mips_get_jump_block(n, 1); assert(jumpblock != NULL); @@ -405,7 +424,7 @@ bne => { bgtz => { op_flags => "X|Y", # TxT -> TxX - reg_req => { in => [ "general_purpose" ], out => [ "in_r0", "none" ] }, + reg_req => { in => [ "gp" ], out => [ "in_r0", "none" ] }, emit => ' ir_node *jumpblock = mips_get_jump_block(n, 1); assert(jumpblock != NULL); @@ -417,7 +436,7 @@ bgtz => { blez => { op_flags => "X|Y", # TxT -> TxX - reg_req => { in => [ "general_purpose" ], out => [ "in_r0", "none" ] }, + reg_req => { in => [ "gp" ], out => [ "in_r0", "none" ] }, emit => ' ir_node *jumpblock = mips_get_jump_block(n, 1); assert(jumpblock != NULL); @@ -428,7 +447,7 @@ blez => { j => { op_flags => "X", - reg_req => { in => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ] }, emit => '. j %S1', }, @@ -454,7 +473,7 @@ fallthrough => { SwitchJump => { op_flags => "X", # -> X,X,... - reg_req => { in => [ "general_purpose" ], out => [ "none" ] }, + reg_req => { in => [ "gp" ], out => [ "none" ] }, emit => '. j %S1' }, @@ -466,7 +485,7 @@ SwitchJump => { # load_r => { - reg_req => { in => [ "none", "general_purpose" ], out => [ "none", "none", "general_purpose" ] }, + reg_req => { in => [ "none", "gp" ], out => [ "none", "none", "gp" ] }, emit => ' mips_attr_t* attr = get_mips_attr(n); ir_mode *mode; @@ -475,16 +494,20 @@ load_r => { switch (get_mode_size_bits(mode)) { case 8: - if (mode_is_signed(mode)) + if (mode_is_signed(mode)) { 3. lb %D3, %C(%S2) - else + } + else { 3. lbu %D3, %C(%S2) + } break; case 16: - if (mode_is_signed(mode)) + if (mode_is_signed(mode)) { 3. lh %D3, %C(%S2) - else + } + else { 3. lhu %D3, %C(%S2) + } break; case 32: 2. lw %D3, %C(%S2) @@ -506,7 +529,7 @@ load_r => { # store_r => { - reg_req => { in => [ "none", "general_purpose", "general_purpose" ], out => [ "none", "none" ] }, + reg_req => { in => [ "none", "gp", "gp" ], out => [ "none", "none" ] }, emit => ' mips_attr_t* attr = get_mips_attr(n); ir_mode* mode; @@ -534,7 +557,7 @@ store_r => { }, store_i => { - reg_req => { in => [ "none", "none", "general_purpose" ], out => [ "none", "none" ] }, + reg_req => { in => [ "none", "none", "gp" ], out => [ "none", "none" ] }, emit => ' mips_attr_t* attr = get_mips_attr(n); ir_mode *mode; @@ -562,7 +585,7 @@ store_i => { }, move => { - reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, + reg_req => { in => [ "gp" ], out => [ "gp" ] }, emit => '. or %D1, $zero, %S1' }, @@ -571,7 +594,7 @@ move => { # reinterpret_conv => { - reg_req => { in => [ "general_purpose" ], out => [ "in_r1" ] }, + reg_req => { in => [ "gp" ], out => [ "in_r1" ] }, emit => '. # reinterpret %S1 -> %D1', }, diff --git a/ir/be/mips/mips_transform.c b/ir/be/mips/mips_transform.c index a22dd9a98..d50a2624d 100644 --- a/ir/be/mips/mips_transform.c +++ b/ir/be/mips/mips_transform.c @@ -79,7 +79,7 @@ static ir_node* mips_get_reg_node(mips_transform_env_t *env, const arch_register static ir_node* gen_zero_node(mips_transform_env_t *env, dbg_info *ebg, ir_graph *irg, ir_node *block) { - ir_node *zero = be_abi_get_callee_save_irn(env->cg->birg->abi, &mips_general_purpose_regs[REG_ZERO]); + ir_node *zero = be_abi_get_callee_save_irn(env->cg->birg->abi, &mips_gp_regs[REG_ZERO]); // TODO make zero nodes work //ir_node *unknown = new_rd_mips_zero(dbg, irg, block, mode); @@ -510,7 +510,7 @@ static ir_node *create_conv_store_load(mips_transform_env_t *env, ir_mode* srcmo ptr_i32type = new_d_type_pointer(id, i32type, mode_P, env->dbg); mem_entity = new_d_entity(get_irg_frame_type(env->irg), id, ptr_i32type, env->dbg); - sp = mips_get_reg_node(env, &mips_general_purpose_regs[REG_SP]); + sp = mips_get_reg_node(env, &mips_gp_regs[REG_SP]); nomem = new_ir_node(env->dbg, env->irg, env->block, op_NoMem, mode_M, 0, NULL); store = new_rd_mips_store_r(env->dbg, env->irg, env->block, nomem, sp, pred, mode_T);