before Bernhard, the watch dog, starts complaining again :)
[fw/sdcc] / src / regression / compare2.c
index 7ef1aa0958bbb664303de528bbeb619ebb3637ef..9655808fc3f529a1cc4494f2c8bc448ba5cde944 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success = 0;
@@ -77,6 +79,80 @@ char_gte_lit (void)
 }
 
 
+/* now repeat test using negative logic */
+void
+char_lt_char_else (void)
+{
+  if (achar0 >= achar1)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_gt_char_else (void)
+{
+  if (achar1 <= achar0)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_lte_char_else (void)
+{
+  if (achar0 > achar1)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_gte_char_else (void)
+{
+  if (achar1 < achar0)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_lt_lit_else (void)
+{
+  if (achar1 >= 0x10)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_gt_lit_else (void)
+{
+  if (achar1 <= 0x10)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_lte_lit_else (void)
+{
+  if (achar1 > 0x0f)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+char_gte_lit_else (void)
+{
+  if (achar1 < 0x11)
+    dummy++;
+  else
+    failures++;
+}
+
+
 /* ints */
 
 void
@@ -138,6 +214,82 @@ int_gte_lit (void)
 
 
 
+/* now repeat int comparisons using negative logic */
+
+void
+int_lt_int_else (void)
+{
+  if (aint0 >= aint1)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_gt_int_else (void)
+{
+  if (aint1 <= aint0)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_lte_int_else (void)
+{
+  if (aint0 > aint1)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_gte_int_else (void)
+{
+  if (aint1 < aint0)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_lt_lit_else (void)
+{
+  if (aint1 >= 0x10)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_gt_lit_else (void)
+{
+  if (aint1 <= 0x10)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_lte_lit_else (void)
+{
+  if (aint1 > 0x0f)
+    dummy++;
+  else
+    failures++;
+}
+
+void
+int_gte_lit_else (void)
+{
+  if (aint1 < 0x11)
+    dummy++;
+  else
+    failures++;
+}
+
+
+
 
 
 
@@ -161,6 +313,25 @@ main (void)
   char_gte_lit ();
 
 
+  achar0 = 0;
+  achar1 = 0;
+
+  char_lt_char_else ();
+  char_gt_char_else ();
+
+  achar0++;
+  char_lt_char_else ();
+  char_gt_char_else ();
+  char_gte_char_else ();
+  char_lte_char_else ();
+
+  achar1 = 0x10;
+  char_lt_lit_else ();
+  char_gt_lit_else ();
+  char_lte_lit_else ();
+  char_gte_lit_else ();
+
+
 
   int_lt_int ();
   int_gt_int ();
@@ -174,6 +345,25 @@ main (void)
   aint1 = 0x10;
   int_lt_lit ();
   int_gt_lit ();
+  int_lte_lit ();
+  int_gte_lit ();
+
+  aint0=0;
+  aint1=0;
+  int_lt_int_else ();
+  int_gt_int_else ();
+
+  aint0++;
+  int_lt_int_else ();
+  int_gt_int_else ();
+  int_gte_int_else ();
+  int_lte_int_else ();
+
+  aint1 = 0x10;
+  int_lt_lit_else ();
+  int_gt_lit_else ();
+  int_lte_lit_else ();
+  int_gte_lit_else ();
 
   success = failures;
   done ();