# stage2: implement argument passing and returning in LLVM backend · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/da545d6a3195c1cafca498d8a695082982f74676)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: da545d6a3195c1cafca498d8a695082982f74676

Requested commit: da545d6a3195c1cafca498d8a695082982f74676

Commit: da545d6a3195c1cafca498d8a695082982f74676

Tree: c85dc18ef61eee7982c98ddd80c81223a25f69db

Author: Timon Kruiper

Committer: Timon Kruiper

## Message

````
stage2: implement argument passing and returning in LLVM backend

Furthermore add the Not instruction.

The following now works:
```
export fn _start() noreturn {
    var x: bool = true;
    var other: bool = foo(x);
    exit();
}

fn foo(cond: bool) bool {
    return !cond;
}

fn exit() noreturn {
    unreachable;
}
```

````

## Parents

- [47a4d43e41b07b939b840fbf8230b89e27694093](https://git.cafe/gitcafe/zig/commit/47a4d43e41b07b939b840fbf8230b89e27694093?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/da545d6a3195c1cafca498d8a695082982f74676?format=markdown)
