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

Reply via email to