Author: zoltan
Date: 2006-04-18 10:09:57 -0400 (Tue, 18 Apr 2006)
New Revision: 59590

Modified:
   branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog
   branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
Log:
2006-04-18  Zoltan Varga  <[EMAIL PROTECTED]>

        * method-to-ir.c (mono_spill_global_vars): Disable the lvreg 
optimization for
        now since it leads to unsolvable situations in the local register 
allocator.


Modified: branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog     2006-04-18 
12:36:59 UTC (rev 59589)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/ChangeLog     2006-04-18 
14:09:57 UTC (rev 59590)
@@ -1,3 +1,8 @@
+2006-04-18  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * method-to-ir.c (mono_spill_global_vars): Disable the lvreg 
optimization for
+       now since it leads to unsolvable situations in the local register 
allocator.
+
 2006-04-16  Zoltan Varga  <[EMAIL PROTECTED]>
 
        * mini-ops.h: Add OP_VTARG_ADDR opcode.

Modified: branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c        
2006-04-18 12:36:59 UTC (rev 59589)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c        
2006-04-18 14:09:57 UTC (rev 59590)
@@ -9763,10 +9763,24 @@
                                                                         */
                                                                        sreg = 
ins->dreg;
                                                                }
-
+                                                               /* 
+                                                                * FIXME: This 
causes assertions in the local allocator.
+                                                                * Specially, 
in Mono.Globalization.Unicode.SimpleCollator:.ctor:
+                                                                * there is a 
instruction of the form:
+                                                                * int_div R112 
<- R250 R111 clobbers: d
+                                                                * Here, R112 
is assigned to RDX, R250 is assigned to
+                                                                * RCX. int_div 
has the following spec:
+                                                                * int_div: 
dest:a src1:a src2:i len:15 clob:d
+                                                                * So we need 
to copy from RCX to RAX, and the
+                                                                * instruction 
clobbers RDX before accessing SREG1
+                                                                * and SREG2, 
so there are no registers left for
+                                                                * SREG2. Not 
sure how this can be fixed.
+                                                                */
+#if 0
                                                                vreg_to_lvreg 
[var->dreg] = sreg;
                                                                g_assert 
(lvregs_len < 1024);
                                                                lvregs 
[lvregs_len ++] = var->dreg;
+#endif
                                                        }
                                                }
 
@@ -9793,10 +9807,13 @@
                        }
 
                        if (dest_has_lvreg) {
+                               /* FIXME: This causes assertions in the local 
allocator */
+#if 0
                                vreg_to_lvreg [prev_dreg] = ins->dreg;
                                g_assert (lvregs_len < 1024);
                                lvregs [lvregs_len ++] = prev_dreg;
                                dest_has_lvreg = FALSE;
+#endif
                        }
 
                        if (store) {

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

Reply via email to