Author: zoltan
Date: 2006-06-10 09:34:28 -0400 (Sat, 10 Jun 2006)
New Revision: 61615

Modified:
   trunk/mono/mono/mini/ChangeLog
   trunk/mono/mono/mini/mini-ia64.c
Log:
2006-06-10  Zoltan Varga  <[EMAIL PROTECTED]>

        * mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication.


Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog      2006-06-10 13:26:58 UTC (rev 61614)
+++ trunk/mono/mono/mini/ChangeLog      2006-06-10 13:34:28 UTC (rev 61615)
@@ -1,3 +1,10 @@
+2006-06-10  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication.
+       
+       * mini-ia64.c inssel-ia64.brg: Implement the new net 2.0 Interlocked.Add
+       methods as instrinsics.
+
 2006-06-09  Wade Berrier <[EMAIL PROTECTED]>
 
        * Makefile.am: Fix sources list for svn rename so that make dist 
succeeds

Modified: trunk/mono/mono/mini/mini-ia64.c
===================================================================
--- trunk/mono/mono/mini/mini-ia64.c    2006-06-10 13:26:58 UTC (rev 61614)
+++ trunk/mono/mono/mini/mini-ia64.c    2006-06-10 13:34:28 UTC (rev 61615)
@@ -1600,29 +1600,6 @@
                case OP_LOAD_MEMBASE:
                case OP_LOADR4_MEMBASE:
                case OP_LOADR8_MEMBASE:
-                       /* There are no load_membase instructions on ia64 */
-                       if (ins->inst_offset == 0) {
-                               break;
-                       }
-                       else if (ia64_is_imm14 (ins->inst_offset)) {
-                               NEW_INS (cfg, temp2, OP_ADD_IMM);
-                               temp2->sreg1 = ins->inst_basereg;
-                               temp2->inst_imm = ins->inst_offset;
-                               temp2->dreg = mono_regstate_next_int (cfg->rs);
-                       }
-                       else {
-                               NEW_INS (cfg, temp, OP_I8CONST);
-                               temp->inst_c0 = ins->inst_offset;
-                               temp->dreg = mono_regstate_next_int (cfg->rs);
-                               NEW_INS (cfg, temp2, CEE_ADD);
-                               temp2->sreg1 = ins->inst_basereg;
-                               temp2->sreg2 = temp->dreg;
-                               temp2->dreg = mono_regstate_next_int (cfg->rs);
-                       }
-
-                       ins->inst_offset = 0;
-                       ins->inst_basereg = temp2->dreg;
-                       break;
                case OP_IA64_FETCHADD4_IMM:
                case OP_IA64_FETCHADD8_IMM:
                case OP_ATOMIC_EXCHANGE_I4:
@@ -1630,7 +1607,10 @@
                case OP_ATOMIC_ADD_NEW_I4:
                case OP_ATOMIC_ADD_NEW_I8:
                        /* There are no membase instructions on ia64 */
-                       if (ia64_is_imm14 (ins->inst_offset)) {
+                       if (ins->inst_offset == 0) {
+                               break;
+                       }
+                       else if (ia64_is_imm14 (ins->inst_offset)) {
                                NEW_INS (cfg, temp2, OP_ADD_IMM);
                                temp2->sreg1 = ins->inst_basereg;
                                temp2->inst_imm = ins->inst_offset;
@@ -1645,6 +1625,7 @@
                                temp2->sreg2 = temp->dreg;
                                temp2->dreg = mono_regstate_next_int (cfg->rs);
                        }
+
                        ins->inst_offset = 0;
                        ins->inst_basereg = temp2->dreg;
                        break;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to