https://bugzilla.novell.com/show_bug.cgi?id=623723

https://bugzilla.novell.com/show_bug.cgi?id=623723#c4


--- Comment #4 from Sebastien Pouliot <[email protected]> 2010-08-20 00:52:22 
UTC ---
The worst case (at least the one in your original report) seems to vanish when
ignoring NOP instructions. They should not matter* individually but CSC likes
to emit them a lot (like "NOP NOP NOP RET" as method epilogue) - so much it
gets tagged as a pattern.

* so I'm likely to commit that anyway, in the mean time here's the patch...

Index: CodeDuplicatedLocator.cs
===================================================================
--- CodeDuplicatedLocator.cs    (revision 160394)
+++ CodeDuplicatedLocator.cs    (working copy)
@@ -151,6 +151,9 @@

             for (int index = method.Body.Instructions.Count - 1; index >= 0;
index--) {
                 Instruction currentInstruction =
method.Body.Instructions[index];
+                // CSC abuse NOP
+                if (currentInstruction.Is (Code.Nop))
+                    continue;
                 stackCounter += currentInstruction.GetPushCount ();
                 stackCounter -= currentInstruction.GetPopCount (method);

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to