aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-04-20 19:19:35 -0400
committerAndrew Kelley <andrew@ziglang.org>2020-04-20 19:21:03 -0400
commitcc1c2bd5684a6195e9535fff38ca54ffb70ebe5a (patch)
treec9a3979ec26f9072b1ce643cab19d4522d77ee43 /test
parentaf4ccf34c1aac9c9914aa9cd5f3c857b7b90615d (diff)
downloadzig-cc1c2bd5684a6195e9535fff38ca54ffb70ebe5a.tar.gz
zig-cc1c2bd5684a6195e9535fff38ca54ffb70ebe5a.zip
simplify ZIR spec; separate parsing/rendering from analysis
Diffstat (limited to 'test')
-rw-r--r--test/stage2/ir.zig51
1 files changed, 34 insertions, 17 deletions
diff --git a/test/stage2/ir.zig b/test/stage2/ir.zig
index 498db3a4eb..450d8fa102 100644
--- a/test/stage2/ir.zig
+++ b/test/stage2/ir.zig
@@ -1,33 +1,50 @@
test "hello world IR" {
exeCmp(
- \\@0 = "Hello, world!\n"
+ \\@0 = str("Hello, world!\n")
+ \\@1 = primitive(void)
+ \\@2 = primitive(usize)
+ \\@3 = fntype([], @1, cc=Naked)
+ \\@4 = int(0)
+ \\@5 = int(1)
+ \\@6 = int(231)
+ \\@7 = str("len")
\\
- \\@1 = fn({
- \\ %0 : usize = 1 ;SYS_write
- \\ %1 : usize = 1 ;STDOUT_FILENO
+ \\@8 = fn(@3, {
+ \\ %0 = as(@2, @5) ; SYS_write
+ \\ %1 = as(@2, @5) ; STDOUT_FILENO
\\ %2 = ptrtoint(@0) ; msg ptr
- \\ %3 = fieldptr(@0, "len") ; msg len ptr
+ \\ %3 = fieldptr(@0, @7) ; msg len ptr
\\ %4 = deref(%3) ; msg len
- \\ %5 = asm("syscall",
+ \\ %sysoutreg = str("={rax}")
+ \\ %rax = str("{rax}")
+ \\ %rdi = str("{rdi}")
+ \\ %rsi = str("{rsi}")
+ \\ %rdx = str("{rdx}")
+ \\ %rcx = str("rcx")
+ \\ %r11 = str("r11")
+ \\ %memory = str("memory")
+ \\ %syscall = str("syscall")
+ \\ %5 = asm(%syscall, @2,
\\ volatile=1,
- \\ output="={rax}",
- \\ inputs=["{rax}", "{rdi}", "{rsi}", "{rdx}"],
- \\ clobbers=["rcx", "r11", "memory"],
+ \\ output=%sysoutreg,
+ \\ 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",
+ \\ %6 = as(@2, @6) ;SYS_exit_group
+ \\ %7 = as(@2, @4) ;exit code
+ \\ %8 = asm(%syscall, @2,
\\ volatile=1,
- \\ output="={rax}",
- \\ inputs=["{rax}", "{rdi}"],
- \\ clobbers=["rcx", "r11", "memory"],
+ \\ output=%sysoutreg,
+ \\ inputs=[%rax, %rdi],
+ \\ clobbers=[%rcx, %r11, %memory],
\\ args=[%6, %7])
\\
\\ %9 = unreachable()
- \\}, cc=naked)
+ \\})
\\
- \\@2 = export("_start", @1)
+ \\@9 = str("_start")
+ \\@10 = export(@9, @8)
,
\\Hello, world!
\\