# stage2: passing threadlocal tests for x86_64-linux · gitcafe/zig

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

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

Visibility: public

Requested revision: 078037ab9b410fa13a86eabdfc30918fc83cdcf3

Requested commit: 078037ab9b410fa13a86eabdfc30918fc83cdcf3

Commit: 078037ab9b410fa13a86eabdfc30918fc83cdcf3

Tree: b5e80992e82d015393872fcc57911b03ca7211fd

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: passing threadlocal tests for x86_64-linux

 * use the real start code for LLVM backend with x86_64-linux
   - there is still a check for zig_backend after initializing the TLS
     area to skip some stuff.
 * introduce new AIR instructions and implement them for the LLVM
   backend. They are the same as `call` except with a modifier.
   - call_always_tail
   - call_never_tail
   - call_never_inline
 * LLVM backend calls hasRuntimeBitsIgnoringComptime in more places to
   avoid unnecessarily depending on comptimeOnly being resolved for some
   types.
 * LLVM backend: remove duplicate code for setting linkage and value
   name. The canonical place for this is in `updateDeclExports`.
 * LLVM backend: do some assembly template massaging to make `%%`
   rendered as `%`. More hacks will be needed to make inline assembly
   catch up with stage1.

```

## Parents

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

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