* src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 10 Jun 2007 21:17:14 +0000 (21:17 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 10 Jun 2007 21:17:14 +0000 (21:17 +0000)
* support/regression/tests/bug1734654.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4847 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/mcs51/peeph.def
support/regression/tests/bug1734654.c [new file with mode: 0644]

index dc4dc234daa6a27e0cde521dfdd09630bf224568..6d5c3a44e20cd7d7bf11d1a6c42095570d1fc424 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
+       * support/regression/tests/bug1734654.c: added
+
 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/SDCCast.c (decorateType): optimized '?' for equal operands
index 361f6a22f56783cbab9eb46d8f707a7969732bd1..d37d3b71b502f4c73e6d6c821f9e512a8477ce92 100644 (file)
@@ -740,17 +740,18 @@ replace {
        jc      %5
 } if operandsLiteral(%1)
 
-replace {
-       clr     c
-       mov     a,%1
-       subb    a,#%2
-       mov     %3,c
-} by {
-       ;       Peephole 132.d  optimized genCmpGt by inverse logic
-       mov     a,#0x100 - %2
-       add     a,%1
-       mov     %3,c
-} if operandsNotRelated('0x00' %2), operandsLiteral(%2)
+// disabled. See bug1734654.c
+//replace {
+//     clr     c
+//     mov     a,%1
+//     subb    a,#%2
+//     mov     %3,c
+//} by {
+//     ;       Peephole 132.d  optimized genCmpGt by inverse logic
+//     mov     a,#0x100 - %2
+//     add     a,%1
+//     mov     %3,c
+//} if operandsNotRelated('0x00' %2), operandsLiteral(%2)
 
 replace {
        clr     c
diff --git a/support/regression/tests/bug1734654.c b/support/regression/tests/bug1734654.c
new file mode 100644 (file)
index 0000000..4983bad
--- /dev/null
@@ -0,0 +1,19 @@
+/* bug1734654.c
+ */
+#include <testfwk.h>
+#include <stdbool.h>
+
+volatile bool b;
+volatile unsigned char c = 1;
+
+static void foo (void)
+{
+  b = (c<2);
+}
+
+void
+testMyFunc(void)
+{
+  foo ();
+  ASSERT (b);
+}