Added tests
authormichaelh <michaelh@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 15 Oct 2001 05:50:48 +0000 (05:50 +0000)
committermichaelh <michaelh@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 15 Oct 2001 05:50:48 +0000 (05:50 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1401 4a8a32a2-be11-0410-ad9d-d568d2c75423

support/regression/tests/packcast.c [new file with mode: 0644]
support/regression/tests/stacks.c [new file with mode: 0644]
support/regression/tests/structidx.c [new file with mode: 0644]

diff --git a/support/regression/tests/packcast.c b/support/regression/tests/packcast.c
new file mode 100644 (file)
index 0000000..f44542d
--- /dev/null
@@ -0,0 +1,25 @@
+/* Tests that a cast used as a parameter gets packed into
+   HL
+*/
+#include <testfwk.h>
+
+void
+spoil(int a)
+{
+  UNUSED(a);
+}
+
+void
+testCastPack(char x)
+{
+  int i, j;
+  volatile char a = x;
+
+  for (i = 0; i < 5; i++)
+    {
+      for (j = 0; j < 5; j++)
+        {
+          spoil(a);
+        }
+    }
+}
diff --git a/support/regression/tests/stacks.c b/support/regression/tests/stacks.c
new file mode 100644 (file)
index 0000000..59b0d1c
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+  size: 126, 127, 128, 129
+ */
+#include <testfwk.h>
+
+void
+spoil(char a)
+{
+  UNUSED(a);
+}
+
+void
+spoilPtr(char *p)
+{
+  UNUSED(p);
+}
+
+void
+testStack(void)
+{
+  volatile char above;
+  volatile char above2;
+  volatile char ac[{size}];
+  volatile char below;
+  volatile char * volatile p;
+
+  spoil(ac[0]);
+  spoilPtr(&above);
+  spoilPtr(&below);
+
+  p = &above2;
+  spoilPtr(p);
+}
diff --git a/support/regression/tests/structidx.c b/support/regression/tests/structidx.c
new file mode 100644 (file)
index 0000000..9bfca09
--- /dev/null
@@ -0,0 +1,32 @@
+/* Code to generate code to see how structure indexs are evaluated.
+   Originally part of gbdk/examples/gb/paint.c
+
+ */
+#include <testfwk.h>
+
+typedef unsigned char UBYTE;
+
+typedef struct cursor_info_
+{
+  UBYTE data_idx;
+  UBYTE w, h;
+  UBYTE hot_x, hot_y;
+} cursor_info;
+
+const cursor_info cursors[] =
+{
+  { 0, 1, 1, 0, 0 },
+  { 1, 2, 2, 0, 15 },
+  { 5, 2, 2, 0, 15 },
+  { 9, 2, 2, 2, 15 },
+  { 13, 2, 2, 0, 15 },
+  { 17, 2, 2, 5, 10 }
+};
+
+UBYTE current_cursor;
+
+UBYTE
+getWidth(void)
+{
+  return cursors[current_cursor].w;
+}