Author: zoltan
Date: 2007-12-14 09:58:48 -0500 (Fri, 14 Dec 2007)
New Revision: 91289
Modified:
trunk/mono/mono/mini/ChangeLog
trunk/mono/mono/mini/aliasing.c
trunk/mono/mono/mini/graph.c
trunk/mono/mono/mini/inssel-alpha.brg
trunk/mono/mono/mini/inssel-arm.brg
trunk/mono/mono/mini/inssel-hppa.brg
trunk/mono/mono/mini/inssel-mips.brg
trunk/mono/mono/mini/inssel.brg
trunk/mono/mono/mini/mini-arm.c
trunk/mono/mono/mini/mini-hppa.c
trunk/mono/mono/mini/mini-mips.c
trunk/mono/mono/mini/mini-ops.h
trunk/mono/mono/mini/mini.c
trunk/mono/mono/mini/ssa.c
Log:
2007-12-14 Zoltan Varga <[EMAIL PROTECTED]>
* mini-ops.h: Add OP_SWITCH.
* mini.c graph.c ssa.c aliasing.c mini-<ARCH>.c inssel-<ARCH>.brg:
Avoid using
CEE_SWITCH in back-end code, use OP_SWITCH instead.
Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/ChangeLog 2007-12-14 14:58:48 UTC (rev 91289)
@@ -1,3 +1,10 @@
+2007-12-14 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * mini-ops.h: Add OP_SWITCH.
+
+ * mini.c graph.c ssa.c aliasing.c mini-<ARCH>.c inssel-<ARCH>.brg:
Avoid using
+ CEE_SWITCH in back-end code, use OP_SWITCH instead.
+
2007-12-11 Geoff Norton <[EMAIL PROTECTED]>
* mini-s390x.c: Minor change to the MAX() define to allow
Modified: trunk/mono/mono/mini/aliasing.c
===================================================================
--- trunk/mono/mono/mini/aliasing.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/aliasing.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -643,7 +643,7 @@
} else if ((inst->opcode == OP_UNBOXCAST) || OP_IS_PCONV (inst->opcode)
|| OP_IS_ICONV (inst->opcode)) {
father_alias->type = context.subtree_aliases [0].type;
father_alias->variable_index = context.subtree_aliases
[0].variable_index;
- } else if ((inst->opcode == CEE_LDELEMA) || (inst->opcode ==
OP_COMPARE) || (inst->opcode == CEE_SWITCH)) {
+ } else if ((inst->opcode == CEE_LDELEMA) || (inst->opcode ==
OP_COMPARE) || (inst->opcode == OP_SWITCH)) {
if (father_alias != NULL) {
father_alias->type = MONO_ALIASING_TYPE_NO_ALIAS;
}
Modified: trunk/mono/mono/mini/graph.c
===================================================================
--- trunk/mono/mono/mini/graph.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/graph.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -226,7 +226,7 @@
case OP_BR:
fprintf (fp, "[B%d]", tree->inst_target_bb->block_num);
break;
- case CEE_SWITCH:
+ case OP_SWITCH:
case CEE_ISINST:
case CEE_CASTCLASS:
case OP_OUTARG:
Modified: trunk/mono/mono/mini/inssel-alpha.brg
===================================================================
--- trunk/mono/mono/mini/inssel-alpha.brg 2007-12-14 14:36:35 UTC (rev
91288)
+++ trunk/mono/mono/mini/inssel-alpha.brg 2007-12-14 14:58:48 UTC (rev
91289)
@@ -213,7 +213,7 @@
mono_bblock_add_inst (s->cbb, tree);
}
-stmt: CEE_SWITCH (reg) {
+stmt: OP_SWITCH (reg) {
MonoInst *label;
int offset_reg = mono_regstate_next_int (s->rs);
int target_reg = mono_regstate_next_int (s->rs);
Modified: trunk/mono/mono/mini/inssel-arm.brg
===================================================================
--- trunk/mono/mono/mini/inssel-arm.brg 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/inssel-arm.brg 2007-12-14 14:58:48 UTC (rev 91289)
@@ -488,7 +488,7 @@
MONO_EMIT_BIALU (s, tree, tree->opcode, state->reg1, state->left->reg1,
state->right->reg1);
}
-stmt: CEE_SWITCH (reg) {
+stmt: OP_SWITCH (reg) {
MonoInst *label;
int n = GPOINTER_TO_INT (tree->klass);
Modified: trunk/mono/mono/mini/inssel-hppa.brg
===================================================================
--- trunk/mono/mono/mini/inssel-hppa.brg 2007-12-14 14:36:35 UTC (rev
91288)
+++ trunk/mono/mono/mini/inssel-hppa.brg 2007-12-14 14:58:48 UTC (rev
91289)
@@ -311,7 +311,7 @@
MONO_EMIT_NEW_ICONST (s, state->reg1, tree->inst_c0);
}
-stmt: CEE_SWITCH (reg) {
+stmt: OP_SWITCH (reg) {
MonoInst *label, *inst;
int n = GPOINTER_TO_INT (tree->klass);
int sreg = mono_regstate_next_int (s->rs);
Modified: trunk/mono/mono/mini/inssel-mips.brg
===================================================================
--- trunk/mono/mono/mini/inssel-mips.brg 2007-12-14 14:36:35 UTC (rev
91288)
+++ trunk/mono/mono/mini/inssel-mips.brg 2007-12-14 14:58:48 UTC (rev
91289)
@@ -271,7 +271,7 @@
mono_bblock_add_inst (s->cbb, tree);
}
-stmt: CEE_SWITCH (reg) {
+stmt: OP_SWITCH (reg) {
MonoInst *label;
int n = GPOINTER_TO_INT (tree->klass);
Modified: trunk/mono/mono/mini/inssel.brg
===================================================================
--- trunk/mono/mono/mini/inssel.brg 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/inssel.brg 2007-12-14 14:58:48 UTC (rev 91289)
@@ -807,7 +807,7 @@
mono_bblock_add_inst (s->cbb, tree);
}
-stmt: CEE_SWITCH (reg) "2" {
+stmt: OP_SWITCH (reg) "2" {
MonoInst *label;
int offset_reg = mono_regstate_next_int (s->rs);
int target_reg = mono_regstate_next_int (s->rs);
Modified: trunk/mono/mono/mini/mini-arm.c
===================================================================
--- trunk/mono/mono/mini/mini-arm.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/mini-arm.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -2629,7 +2629,7 @@
case OP_BR_REG:
ARM_MOV_REG_REG (code, ARMREG_PC, ins->sreg1);
break;
- case CEE_SWITCH:
+ case OP_SWITCH:
/*
* In the normal case we have:
* ldr pc, [pc, ins->sreg1 << 2]
Modified: trunk/mono/mono/mini/mini-hppa.c
===================================================================
--- trunk/mono/mono/mini/mini-hppa.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/mini-hppa.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -1767,7 +1767,7 @@
hppa_nop(code);
break;
- case CEE_SWITCH: {
+ case OP_SWITCH: {
int i;
max_len += 8 * GPOINTER_TO_INT (ins->klass);
Modified: trunk/mono/mono/mini/mini-mips.c
===================================================================
--- trunk/mono/mono/mini/mini-mips.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/mini-mips.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -2483,7 +2483,7 @@
mips_jr (code, ins->sreg1);
mips_nop (code);
break;
- case CEE_SWITCH: {
+ case OP_SWITCH: {
int i;
max_len += 4 * GPOINTER_TO_INT (ins->klass);
Modified: trunk/mono/mono/mini/mini-ops.h
===================================================================
--- trunk/mono/mono/mini/mini-ops.h 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/mini-ops.h 2007-12-14 14:58:48 UTC (rev 91289)
@@ -60,6 +60,7 @@
MINI_OP(OP_REG, "reg")
MINI_OP(OP_REGOFFSET, "regoffset")
MINI_OP(OP_LABEL, "label")
+MINI_OP(OP_SWITCH, "switch")
MINI_OP(OP_CHECK_ARRAY_TYPE, "check_array_type")
MINI_OP(OP_ARRAY_RANK, "array_rank")
MINI_OP(OP_THROW, "throw")
Modified: trunk/mono/mono/mini/mini.c
===================================================================
--- trunk/mono/mono/mini/mini.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/mini.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -124,7 +124,7 @@
#define MONO_IS_COND_BRANCH_OP(ins) (((ins)->opcode >= CEE_BEQ &&
(ins)->opcode <= CEE_BLT_UN) || ((ins)->opcode >= OP_LBEQ && (ins)->opcode <=
OP_LBLT_UN) || ((ins)->opcode >= OP_FBEQ && (ins)->opcode <= OP_FBLT_UN) ||
((ins)->opcode >= OP_IBEQ && (ins)->opcode <= OP_IBLT_UN))
#define MONO_IS_COND_BRANCH_NOFP(ins) (MONO_IS_COND_BRANCH_OP(ins) &&
(ins)->inst_left->inst_left->type != STACK_R8)
-#define MONO_IS_BRANCH_OP(ins) (MONO_IS_COND_BRANCH_OP(ins) || ((ins)->opcode
== OP_BR) || ((ins)->opcode == OP_BR_REG) || ((ins)->opcode == CEE_SWITCH))
+#define MONO_IS_BRANCH_OP(ins) (MONO_IS_COND_BRANCH_OP(ins) || ((ins)->opcode
== OP_BR) || ((ins)->opcode == OP_BR_REG) || ((ins)->opcode == OP_SWITCH))
#define MONO_CHECK_THIS(ins) (mono_method_signature (cfg->method)->hasthis &&
(ins)->ssa_op == MONO_SSA_LOAD && (ins)->inst_left->inst_c0 == 0)
@@ -1858,7 +1858,7 @@
case CEE_BLE_UN:
case CEE_BLT_UN:
case OP_BR:
- case CEE_SWITCH:
+ case OP_SWITCH:
prev = bb->code;
while (prev->next && prev->next != bb->last_ins)
prev = prev->next;
@@ -5728,7 +5728,7 @@
CHECK_OPSIZE (5);
CHECK_STACK (1);
n = read32 (ip + 1);
- MONO_INST_NEW (cfg, ins, *ip);
+ MONO_INST_NEW (cfg, ins, OP_SWITCH);
--sp;
ins->inst_left = *sp;
if ((ins->inst_left->type != STACK_I4) &&
(ins->inst_left->type != STACK_PTR))
@@ -8639,7 +8639,7 @@
case OP_CALL_HANDLER:
printf ("[B%d]", tree->inst_target_bb->block_num);
break;
- case CEE_SWITCH:
+ case OP_SWITCH:
case CEE_ISINST:
case CEE_CASTCLASS:
case OP_OUTARG:
@@ -10101,7 +10101,7 @@
bb->last_ins->inst_target_bb = repl;
}
break;
- case CEE_SWITCH: {
+ case OP_SWITCH: {
int i;
int n = GPOINTER_TO_INT (bb->last_ins->klass);
for (i = 0; i < n; i++ ) {
@@ -10190,7 +10190,7 @@
}
/* Do not touch BBs following a switch (they are the "default" branch)
*/
- if ((previous_bb->last_ins != NULL) && (previous_bb->last_ins->opcode
== CEE_SWITCH)) {
+ if ((previous_bb->last_ins != NULL) && (previous_bb->last_ins->opcode
== OP_SWITCH)) {
return FALSE;
}
@@ -10230,7 +10230,7 @@
((previous_bb->last_ins == NULL) ||
((previous_bb->last_ins->opcode != OP_BR) &&
(! (MONO_IS_COND_BRANCH_OP
(previous_bb->last_ins))) &&
- (previous_bb->last_ins->opcode !=
CEE_SWITCH)))) {
+ (previous_bb->last_ins->opcode != OP_SWITCH))))
{
for (i = 0; i < previous_bb->out_count; i++) {
if (previous_bb->out_bb [i] == target_bb) {
MonoInst *jump;
@@ -11088,7 +11088,7 @@
if
((previous_bb->last_ins == NULL) ||
((previous_bb->last_ins->opcode != OP_BR) &&
(!
(MONO_IS_COND_BRANCH_OP (previous_bb->last_ins))) &&
-
(previous_bb->last_ins->opcode != CEE_SWITCH))) {
+
(previous_bb->last_ins->opcode != OP_SWITCH))) {
int i;
/* Make sure
previous_bb really falls through bb */
for (i = 0; i <
previous_bb->out_count; i++) {
Modified: trunk/mono/mono/mini/ssa.c
===================================================================
--- trunk/mono/mono/mini/ssa.c 2007-12-14 14:36:35 UTC (rev 91288)
+++ trunk/mono/mono/mini/ssa.c 2007-12-14 14:58:48 UTC (rev 91289)
@@ -938,7 +938,7 @@
inst->opcode = OP_BR;
inst->inst_target_bb = target;
}
- } else if (inst->opcode == CEE_SWITCH && (evaluate_const_tree (cfg,
inst->inst_left, &a, carray) == 1) && (a >= 0) && (a < GPOINTER_TO_INT
(inst->klass))) {
+ } else if (inst->opcode == OP_SWITCH && (evaluate_const_tree (cfg,
inst->inst_left, &a, carray) == 1) && (a >= 0) && (a < GPOINTER_TO_INT
(inst->klass))) {
bb->out_bb [0] = inst->inst_many_bb [a];
bb->out_count = 1;
inst->inst_target_bb = bb->out_bb [0];
@@ -972,7 +972,7 @@
{
g_assert (inst);
- if (inst->opcode == CEE_SWITCH) {
+ if (inst->opcode == OP_SWITCH) {
int r1, i, a;
int cases = GPOINTER_TO_INT (inst->klass);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches