aboutsummaryrefslogtreecommitdiff
path: root/test/stage2
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-04-18 00:09:43 -0400
committerAndrew Kelley <andrew@ziglang.org>2020-04-19 19:31:50 -0400
commitbd4280decfd08b28041f96f552b3fec5087cbcd3 (patch)
treec10e0bfa1d57d1af7c2fbe2f3fe86e152948cdd0 /test/stage2
parent328eb8ed8dfdc646df28f899267c76e18645da40 (diff)
downloadzig-bd4280decfd08b28041f96f552b3fec5087cbcd3.tar.gz
zig-bd4280decfd08b28041f96f552b3fec5087cbcd3.zip
beginnings of zig ir parser
Diffstat (limited to 'test/stage2')
-rw-r--r--test/stage2/ir.zig37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/stage2/ir.zig b/test/stage2/ir.zig
new file mode 100644
index 0000000000..e948e7a8b8
--- /dev/null
+++ b/test/stage2/ir.zig
@@ -0,0 +1,37 @@
+test "hello world IR" {
+ exeCmp(
+ \\@0 = "Hello, world!\n"
+ \\
+ \\@1 = fn({
+ \\ %0 : usize = 1 ;SYS_write
+ \\ %1 : usize = 1 ;STDOUT_FILENO
+ \\ %2 = ptrtoint(@0) ; msg ptr
+ \\ %3 = fieldptr(@0, "len") ; msg len ptr
+ \\ %4 = deref(%3) ; msg len
+ \\ %5 = asm("syscall",
+ \\ volatile=1,
+ \\ output="={rax}",
+ \\ inputs=["{rax}", "{rdi}", "{rsi}", "{rdx}"],
+ \\ clobbers=["rcx", "r11", "memory"],
+ \\ args=[%0, %1, %2, %4])
+ \\
+ \\ %6 : usize = 231 ;SYS_exit_group
+ \\ %7 : usize = 0 ;exit code
+ \\ %8 = asm("syscall",
+ \\ volatile=1,
+ \\ output="={rax}",
+ \\ inputs=["{rax}", "{rdi}"],
+ \\ clobbers=["rcx", "r11", "memory"],
+ \\ args=[%6, %7])
+ \\
+ \\ %9 = unreachable()
+ \\}, cc=naked);
+ \\
+ \\@2 = export("_start", @1)
+ ,
+ \\Hello, world!
+ \\
+ );
+}
+
+fn exeCmp(src: []const u8, expected_stdout: []const u8) void {}