diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-04-20 19:19:35 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-04-20 19:21:03 -0400 |
| commit | cc1c2bd5684a6195e9535fff38ca54ffb70ebe5a (patch) | |
| tree | c9a3979ec26f9072b1ce643cab19d4522d77ee43 /test | |
| parent | af4ccf34c1aac9c9914aa9cd5f3c857b7b90615d (diff) | |
| download | zig-cc1c2bd5684a6195e9535fff38ca54ffb70ebe5a.tar.gz zig-cc1c2bd5684a6195e9535fff38ca54ffb70ebe5a.zip | |
simplify ZIR spec; separate parsing/rendering from analysis
Diffstat (limited to 'test')
| -rw-r--r-- | test/stage2/ir.zig | 51 |
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! \\ |
