2007-02-03 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sat, 3 Feb 2007 17:33:02 +0000 (17:33 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sat, 3 Feb 2007 17:33:02 +0000 (17:33 -0000)
* mini-ia64.c inssel-sparc.brg mini-sparc.c cpu-sparc.md: Get rid of OP_SETREG/
OP_SETREGIMM, use OP_MOVE/OP_ICONST instead.

svn path=/trunk/mono/; revision=72235

mono/mini/ChangeLog
mono/mini/cpu-sparc.md
mono/mini/inssel-sparc.brg
mono/mini/mini-ia64.c
mono/mini/mini-sparc.c

index e45d94031ab58ef14b9a94714b092e9f99efc085..2806b20f67f4d0c40a2ac004e4c943b6b13c0110 100644 (file)
@@ -1,5 +1,8 @@
 2007-02-03  Zoltan Varga  <vargaz@gmail.com>
 
+       * mini-ia64.c inssel-sparc.brg mini-sparc.c cpu-sparc.md: Get rid of OP_SETREG/
+       OP_SETREGIMM, use OP_MOVE/OP_ICONST instead.
+
        * mini-amd64.c (mono_arch_output_basic_block): Fix ATOMIC_EXCHANGE in the
        presence of frame pointer elimination.
 
index 8c0f2810b42662b0891e5623e931decba9621497..dd6aecf20a2e2bd32c76177e0c81311b066c0efe 100644 (file)
@@ -141,8 +141,6 @@ setfret: dest:f src1:f len:8
 outarg: src1:i len:1
 outarg_imm: len:5
 setret: dest:a src1:i len:4
-setreg: dest:i src1:i len:4 clob:r
-setregimm: dest:i len:64 clob:r
 setfreg: dest:f src1:f len:4 clob:r
 sparc_setfreg_float: dest:f src1:f len:4 clob:r
 checkthis: src1:b len:4
index 2a30772ca4574010345694ec896446aa2343649f..2ac83335820c334d68a74ff360f4984fa5fea38f 100644 (file)
@@ -27,7 +27,7 @@ stmt: CEE_STIND_I8 (OP_REGVAR, lreg) {
 lreg: CEE_LDIND_I8 (OP_REGVAR) {
        /* reg2 contains the most significant word */
        MONO_EMIT_NEW_UNALU (s, OP_MOVE, state->reg2, state->left->tree->dreg);
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = state->reg1;
        tree->sreg1 = state->left->tree->dreg + 1;
        mono_bblock_add_inst (s->cbb, tree);
@@ -103,7 +103,7 @@ base: OP_LDADDR (reg) {
 stmt: OP_OUTARG (OP_LDADDR (reg)) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->sreg1 = state->left->left->tree->dreg;
        mono_bblock_add_inst (s->cbb, tree);
@@ -143,7 +143,7 @@ stmt: OP_SETRET (OP_ICONST) {
 stmt: OP_OUTARG (reg) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->sreg1 = state->left->reg1;
        mono_bblock_add_inst (s->cbb, tree);
@@ -154,7 +154,7 @@ stmt: OP_OUTARG (reg) {
 stmt: OP_OUTARG (OP_REGVAR) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->sreg1 = state->left->tree->dreg;
        mono_bblock_add_inst (s->cbb, tree);
@@ -165,7 +165,7 @@ stmt: OP_OUTARG (OP_REGVAR) {
 stmt: OP_OUTARG (OP_ICONST) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREGIMM;
+       tree->opcode = OP_ICONST;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->inst_c0 = state->left->tree->inst_c0;
        mono_bblock_add_inst (s->cbb, tree);
@@ -176,7 +176,7 @@ stmt: OP_OUTARG (OP_ICONST) {
 stmt: OP_OUTARG (OP_I8CONST) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREGIMM;
+       tree->opcode = OP_ICONST;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->inst_c0 = state->left->tree->inst_c0;
        mono_bblock_add_inst (s->cbb, tree);
@@ -216,8 +216,8 @@ stmt: OP_SPARC_OUTARG_REGPAIR (lreg) {
        int dreg = mono_regstate_next_int (s->rs);
        int dreg2 = mono_regstate_next_int (s->rs);
 
-       MONO_EMIT_NEW_UNALU (s, OP_SETREG, dreg, state->left->reg2);
-       tree->opcode = OP_SETREG;
+       MONO_EMIT_NEW_UNALU (s, OP_MOVE, dreg, state->left->reg2);
+       tree->opcode = OP_MOVE;
        tree->dreg = dreg2;
        tree->sreg1 = state->left->reg1;
        mono_bblock_add_inst (s->cbb, tree);
@@ -288,7 +288,7 @@ stmt: OP_SPARC_OUTARG_SPLIT_REG_STACK (lreg) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
        int dreg = mono_regstate_next_int (s->rs);
-       MONO_EMIT_NEW_UNALU (s, OP_SETREG, dreg, state->left->reg2);
+       MONO_EMIT_NEW_UNALU (s, OP_MOVE, dreg, state->left->reg2);
        tree->opcode = OP_STOREI4_MEMBASE_REG;
        tree->inst_destbasereg = tree->inst_right->inst_basereg;
        tree->inst_offset = tree->inst_right->inst_imm + 4;
@@ -361,7 +361,7 @@ reg: OP_OUTARG_VT (base) {
 stmt: OP_OUTARG (CEE_LDIND_REF (OP_REGVAR)) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->sreg1 = state->left->left->tree->dreg;
        tree->dreg = mono_regstate_next_int (s->rs);
        mono_bblock_add_inst (s->cbb, tree);
@@ -382,7 +382,7 @@ stmt: OP_OUTARG (CEE_LDIND_REF (OP_REGOFFSET)) {
 stmt: OP_OUTARG_VT (OP_ICONST) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREGIMM;
+       tree->opcode = OP_ICONST;
        tree->dreg = mono_regstate_next_int (s->rs); 
        tree->inst_imm = state->left->tree->inst_c0;
        mono_bblock_add_inst (s->cbb, tree);
@@ -593,14 +593,14 @@ stmt: OP_SETRET (CEE_LDIND_U4(base)) {
 }
 
 stmt: OP_SETRET (CEE_LDIND_I4(OP_REGVAR)) {
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = sparc_i0;
        tree->sreg1 = state->left->left->tree->dreg;
        mono_bblock_add_inst (s->cbb, tree);
 }
 
 stmt: OP_SETRET (CEE_LDIND_I(OP_REGVAR)) {
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = sparc_i0;
        tree->sreg1 = state->left->left->tree->dreg;
        mono_bblock_add_inst (s->cbb, tree);
@@ -610,7 +610,7 @@ stmt: OP_OUTARG (CEE_LDIND_I (OP_REGVAR)),
 stmt: OP_OUTARG (CEE_LDIND_I4 (OP_REGVAR)) {
        MonoCallInst *call = (MonoCallInst*)tree->inst_right->inst_left;
 
-       tree->opcode = OP_SETREG;
+       tree->opcode = OP_MOVE;
        tree->dreg = mono_regstate_next_int (s->rs);
        tree->sreg1 = state->left->left->tree->dreg;
        mono_bblock_add_inst (s->cbb, tree);
index 42b627835765b4b197feff60d1697395080f2b73..682e80a07ccbd5dfd26280b1f8408149693840f3 100644 (file)
@@ -1235,7 +1235,6 @@ peephole_pass (MonoCompile *cfg, MonoBasicBlock *bb)
                switch (ins->opcode) {
                case OP_MOVE:
                case OP_FMOVE:
-               case OP_SETREG:
                        /*
                         * Removes:
                         *
index 3e9fee039c9ee2a0cd0e4c235da744d9505257bb..cd4547e1c3341702940d22de18b42f72418f3fa0 100644 (file)
@@ -2717,7 +2717,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        EMIT_COND_SYSTEM_EXCEPTION_GENERAL (ins, sparc_bne, "OverflowException", TRUE, sparc_icc_short);
                        break;
                case OP_ICONST:
-               case OP_SETREGIMM:
                        sparc_set (code, ins->inst_c0, ins->dreg);
                        break;
                case OP_I8CONST:
@@ -2730,7 +2729,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                case CEE_CONV_I4:
                case CEE_CONV_U4:
                case OP_MOVE:
-               case OP_SETREG:
                        if (ins->sreg1 != ins->dreg)
                                sparc_mov_reg_reg (code, ins->sreg1, ins->dreg);
                        break;
@@ -4234,7 +4232,7 @@ mono_arch_emit_this_vret_args (MonoCompile *cfg, MonoCallInst *call, int this_re
        if (vt_reg != -1) {
 #ifdef SPARCV9
                MonoInst *ins;
-               MONO_INST_NEW (cfg, ins, OP_SETREG);
+               MONO_INST_NEW (cfg, ins, OP_MOVE);
                ins->sreg1 = vt_reg;
                ins->dreg = mono_regstate_next_int (cfg->rs);
                mono_bblock_add_inst (cfg->cbb, ins);
@@ -4251,7 +4249,7 @@ mono_arch_emit_this_vret_args (MonoCompile *cfg, MonoCallInst *call, int this_re
        /* add the this argument */
        if (this_reg != -1) {
                MonoInst *this;
-               MONO_INST_NEW (cfg, this, OP_SETREG);
+               MONO_INST_NEW (cfg, this, OP_MOVE);
                this->type = this_type;
                this->sreg1 = this_reg;
                this->dreg = mono_regstate_next_int (cfg->rs);