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