Author: zoltan
Date: 2008-02-19 19:13:46 -0500 (Tue, 19 Feb 2008)
New Revision: 96211
Modified:
trunk/mono/mono/mini/ChangeLog
trunk/mono/mono/mini/mini-ia64.c
Log:
2008-02-20 Zoltan Varga <[EMAIL PROTECTED]>
* mini-ia64.c (mono_arch_lowering_pass): Add some more opcodes. Use
mono_op_imm_to_op ().
Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog 2008-02-20 00:07:22 UTC (rev 96210)
+++ trunk/mono/mono/mini/ChangeLog 2008-02-20 00:13:46 UTC (rev 96211)
@@ -1,5 +1,8 @@
2008-02-20 Zoltan Varga <[EMAIL PROTECTED]>
+ * mini-ia64.c (mono_arch_lowering_pass): Add some more opcodes. Use
+ mono_op_imm_to_op ().
+
* mini-sparc.c (opcode_to_sparc_cond): Use the mono_opcode_to_cond ()
functions
instead of a switch statement.
Modified: trunk/mono/mono/mini/mini-ia64.c
===================================================================
--- trunk/mono/mono/mini/mini-ia64.c 2008-02-20 00:07:22 UTC (rev 96210)
+++ trunk/mono/mono/mini/mini-ia64.c 2008-02-20 00:13:46 UTC (rev 96211)
@@ -1473,11 +1473,16 @@
break;
case OP_ADD_IMM:
case OP_IADD_IMM:
+ case OP_LADD_IMM:
case OP_ISUB_IMM:
+ case OP_LSUB_IMM:
+ case OP_AND_IMM:
case OP_IAND_IMM:
+ case OP_LAND_IMM:
case OP_IOR_IMM:
+ case OP_LOR_IMM:
case OP_IXOR_IMM:
- case OP_AND_IMM:
+ case OP_LXOR_IMM:
case OP_SHL_IMM:
case OP_SHR_IMM:
case OP_ISHL_IMM:
@@ -1497,10 +1502,12 @@
switch (ins->opcode) {
case OP_ADD_IMM:
case OP_IADD_IMM:
+ case OP_LADD_IMM:
is_imm = ia64_is_imm14 (ins->inst_imm);
switched = TRUE;
break;
case OP_ISUB_IMM:
+ case OP_LSUB_IMM:
is_imm = ia64_is_imm14 (- (ins->inst_imm));
if (is_imm) {
/* A = B - IMM -> A = B + (-IMM) */
@@ -1513,6 +1520,9 @@
case OP_IOR_IMM:
case OP_IXOR_IMM:
case OP_AND_IMM:
+ case OP_LAND_IMM:
+ case OP_LOR_IMM:
+ case OP_LXOR_IMM:
is_imm = ia64_is_imm8 (ins->inst_imm);
switched = TRUE;
break;
@@ -1536,55 +1546,7 @@
break;
}
- switch (ins->opcode) {
- case OP_ADD_IMM:
- ins->opcode = OP_LADD;
- break;
- case OP_IADD_IMM:
- ins->opcode = OP_IADD;
- break;
- case OP_ISUB_IMM:
- ins->opcode = OP_ISUB;
- break;
- case OP_IAND_IMM:
- ins->opcode = OP_IAND;
- break;
- case OP_IOR_IMM:
- ins->opcode = OP_IOR;
- break;
- case OP_IXOR_IMM:
- ins->opcode = OP_IXOR;
- break;
- case OP_ISHL_IMM:
- ins->opcode = OP_ISHL;
- break;
- case OP_ISHR_IMM:
- ins->opcode = OP_ISHR;
- break;
- case OP_ISHR_UN_IMM:
- ins->opcode = OP_ISHR_UN;
- break;
- case OP_AND_IMM:
- ins->opcode = OP_LAND;
- break;
- case OP_SHL_IMM:
- ins->opcode = OP_LSHL;
- break;
- case OP_SHR_IMM:
- ins->opcode = OP_LSHR;
- break;
- case OP_LSHL_IMM:
- ins->opcode = OP_LSHL;
- break;
- case OP_LSHR_IMM:
- ins->opcode = OP_LSHR;
- break;
- case OP_LSHR_UN_IMM:
- ins->opcode = OP_LSHR_UN;
- break;
- default:
- g_assert_not_reached ();
- }
+ ins->opcode = mono_op_imm_to_op (ins->opcode);
if (ins->inst_imm == 0)
ins->sreg2 = IA64_R0;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches