aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-03-31 23:09:14 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-03-31 23:09:14 +0300
commit59148d666a78d671198d56caabe7fe4d7fb3fee1 (patch)
tree4c54666dca7090fd8d4f898160afe080ed0f1fa6 /tests
parent1dcaa90d8b706118235bc74a0f2cbdcb836d29bb (diff)
downloadqbt-59148d666a78d671198d56caabe7fe4d7fb3fee1.tar.gz
qbt-59148d666a78d671198d56caabe7fe4d7fb3fee1.zip
produce some very limited assembly output
+ Several subsystems missing critical features, but enough to do some basic things like calling procedures, printing to screen and doing loops
Diffstat (limited to 'tests')
-rw-r--r--tests/1.qbt15
-rw-r--r--tests/2.qbt4
-rw-r--r--tests/3.qbt13
-rw-r--r--tests/4.qbt18
-rw-r--r--tests/5.qbt5
5 files changed, 51 insertions, 4 deletions
diff --git a/tests/1.qbt b/tests/1.qbt
index e45553a..e87fddc 100644
--- a/tests/1.qbt
+++ b/tests/1.qbt
@@ -1,12 +1,19 @@
+do_stuff (i27 a0, i27 a1)
+{
+ i27 r0 = a0 + a1;
+ i27 r1 = a0 - a1;
+ => (r0, r1);
+}
+
/* this is a function of some kind */
-do_stuff (i27 a0, i27 a1 => i27,,)
+main (i27 a0, i27 a1)
{
i27 r0 = a0 + a1;
/* r0 is reassigned */
- (i27 r0, i27 r1,) = &do_more_stuff (r0, i9 29);
+ &do_stuff (r0, i9 29) => (r0, r1);
r0 < r1 -> somewhere_else;
- => (r1,,);
+ => (r1);
somewhere_else:
- => (r0,,);
+ => (r0);
}
diff --git a/tests/2.qbt b/tests/2.qbt
new file mode 100644
index 0000000..9c63342
--- /dev/null
+++ b/tests/2.qbt
@@ -0,0 +1,4 @@
+main()
+{
+ => ();
+}
diff --git a/tests/3.qbt b/tests/3.qbt
new file mode 100644
index 0000000..7d3217a
--- /dev/null
+++ b/tests/3.qbt
@@ -0,0 +1,13 @@
+main()
+{
+ i27 i = 0;
+ i27 max = 1000000000;
+ i27 sum = 0;
+
+top:
+ i27 sum = sum + i;
+ i27 i = i + i27 1;
+ i < max -> top;
+ &_putchar(sum) => ();
+ => ();
+}
diff --git a/tests/4.qbt b/tests/4.qbt
new file mode 100644
index 0000000..0a5734a
--- /dev/null
+++ b/tests/4.qbt
@@ -0,0 +1,18 @@
+main()
+{
+ &_putchar (i9 'H') => ();
+ &_putchar (i9 'e') => ();
+ &_putchar (i9 'l') => ();
+ &_putchar (i9 'l') => ();
+ &_putchar (i9 'o') => ();
+ &_putchar (i9 ',') => ();
+ &_putchar (i9 ' ') => ();
+ &_putchar (i9 'W') => ();
+ &_putchar (i9 'o') => ();
+ &_putchar (i9 'r') => ();
+ &_putchar (i9 'l') => ();
+ &_putchar (i9 'd') => ();
+ &_putchar (i9 '!') => ();
+ &_putchar (i9 '\n') => ();
+ => ();
+}
diff --git a/tests/5.qbt b/tests/5.qbt
new file mode 100644
index 0000000..213592e
--- /dev/null
+++ b/tests/5.qbt
@@ -0,0 +1,5 @@
+main()
+{
+ &_putchar(i9 'H') => ();
+ => ();
+}