Jakub Konka
5006fb6846
macho: fix compilation for 32bit targets
2022-09-09 08:30:27 +02:00
Jakub Konka
8378cde743
macho: prefill any space between __DATA and __LINKEDIT with 0s if required
...
If there are zerofill sections, the loader may copy the contents of
the physical space in file directly into memory and attach that to
the zerofill section. This is a performance optimisation in the loader
but requires us, the linker, to properly zero-out any space between
__DATA and __LINKEDIT segments in file. This is of course completely
skipped if there are no zerofill sections present.
2022-09-09 00:01:22 +02:00
Jakub Konka
0ae2ea671b
wasm: temporarily save curr file pointer before pwriting on Win
...
This is a temporary workaround to an unclear platform-dependence
behavior we have in libstd for `std.fs.File` abstraction. See
https://github.com/ziglang/zig/issues/12783 for more information.
2022-09-08 14:29:54 +02:00
Jakub Konka
b98b3252be
revert part of 945111ae92c28f8ad642a64af4dc83acd3bef4a5
2022-09-07 23:18:57 +02:00
Jakub Konka
0e152b76ac
tests: force LLD off for stage2 backends until auto-select deems worthy
2022-09-07 23:16:42 +02:00
Jakub Konka
c4d297b1af
test-cases: add missing incremental x86_64-windows test cases
2022-09-07 22:42:59 +02:00
Jakub Konka
a226aef36c
test-cases: enable stage2 tests on Windows
2022-09-07 22:42:59 +02:00
Jakub Konka
678e07b924
macho+wasm: unify and clean up closing file handles
2022-09-07 22:42:59 +02:00
Jakub Konka
639237c7b4
macho: set file instance in linkOneShot only if not already set
2022-09-07 22:42:59 +02:00
Jakub Konka
8ef1c62f2e
macho: properly close file handles owned by the linker in deinit()
2022-09-07 22:42:59 +02:00
Jakub Konka
215fce8c51
coff: fix tracking of got and import entries; free relocs in update* fns
2022-09-07 22:42:59 +02:00
Jakub Konka
99c2cb72e8
coff: track globals in contiguous array to allow for tombstones
2022-09-07 22:42:59 +02:00
Jakub Konka
f3e4e44a2b
coff: fix memory leak in incorrectly disposing of globals table
2022-09-07 22:42:58 +02:00
Jakub Konka
945111ae92
enable testing of x86_64-windows-gnu using self-hosted backend and linker
2022-09-07 22:42:58 +02:00
Jakub Konka
7b8cc599d9
coff: use more generous initial memory sizes for sections
2022-09-07 22:42:58 +02:00
Jakub Konka
16ca47b9b8
coff: remove redundant bits and clean up
2022-09-07 22:42:58 +02:00
Jakub Konka
2b373b0579
coff: grow section in virtual address space when required
2022-09-07 22:42:58 +02:00
Jakub Konka
9116e0f746
coff: find new file space for a section (file offsets)
2022-09-07 22:42:58 +02:00
Jakub Konka
79e51c5e4b
coff: differentiate between file space and VM space for alloc
2022-09-07 22:42:58 +02:00
Jakub Konka
08f6546c84
coff: create a helper for allocating sections
2022-09-07 22:42:58 +02:00
Jakub Konka
f1bdf3f62f
coff: fix writing strtab to PE image file
2022-09-07 22:42:57 +02:00
Jakub Konka
467d69c68a
x86_64: fix SystemV calling convention
2022-09-07 22:42:57 +02:00
Jakub Konka
56a131d27a
test-cases: fix compiler error locations for hello world with updates
2022-09-07 22:42:57 +02:00
Jakub Konka
66bad3eaaf
coff: mark relocations dirty when target atoms change
2022-09-07 22:42:57 +02:00
Jakub Konka
1e2a2d6fad
coff: fix bug in lowerUnnamedConst
2022-09-07 22:42:57 +02:00
Jakub Konka
423f424c27
libstd: use windows.GetStdHandle() with stage2_x86_64 backend for now
2022-09-07 22:42:57 +02:00
Jakub Konka
e0167ae0e3
x86_64: allow for any index register in complex SIB encodings
...
This relieves register pressure, and reduce generated code size
(since now we can use the same index register for both `mov_scale_src`
and `mov_scale_dst` MIR instructions).
Fix lowering of ModRM + SIB encodings where index register is extended
- previously, we would carelessly ignore the fact generating incorrect
encodings.
2022-09-07 22:42:57 +02:00
Jakub Konka
619d82234e
x86_64: clean up return registers for unspecified cc
2022-09-07 22:42:57 +02:00
Jakub Konka
28f525baa4
x86_64: handle ptr_stack_offset for blocks
2022-09-07 22:42:56 +02:00
Jakub Konka
1d57b347e9
x86_64: clean up logging
2022-09-07 22:42:56 +02:00
Jakub Konka
b9c31a8703
x86_64: refactor cond_br with canonicaliseBranches helper
2022-09-07 22:42:56 +02:00
Jakub Konka
c0e288c782
x86_64: implement canonicalising branches in switch expression
2022-09-07 22:42:56 +02:00
Jakub Konka
3a4c69c018
x86_64: implement Windows x64 calling convention
2022-09-07 22:42:56 +02:00
Jakub Konka
38573fed0b
coff: fix runtime traps
2022-09-07 22:42:56 +02:00
Jakub Konka
49b1716064
coff: implement lowering unnamed consts
2022-09-07 22:42:56 +02:00
Jakub Konka
a19e6adbf9
x86_64: add support for Win64/C calling convention
2022-09-07 22:42:56 +02:00
Jakub Konka
aac4c1d3b2
coff: fix contents of IAT, and ensure codegen loads addr into reg
...
As far as I can see, unlike with MachO, we don't have any stubs
helper routines available and need to load a bound pointer into
a register to then call it.
2022-09-07 22:42:55 +02:00
Jakub Konka
0ebeb58d91
coff: populate import address table dir
2022-09-07 22:42:55 +02:00
Jakub Konka
1ab149c5fc
coff: create import atoms and matching bindings
2022-09-07 22:42:55 +02:00
Jakub Konka
51fba37af7
coff: add relocation for call_extern
2022-09-07 22:42:55 +02:00
Jakub Konka
a35f156cf6
coff: re-enable default entrypoint for Windows
2022-09-07 22:42:55 +02:00
Jakub Konka
11d14a23a3
win-ci: add missing ZIGPREFIXPATH variable def
2022-09-07 22:21:12 +02:00
Dan Ellis Echavarria
924679abc4
std.simd: change T to u16
...
The `element_bit_size` would break if `T` was signed due to `ceilPowerOfTwo` only working on unsigned numbers.
2022-09-07 15:22:30 +03:00
bfredl
e02b9f458d
build-exe: allow combination of -fno-emit-bin and --verbose-air
...
Currently, `zig build-exe -fno-emit-bin --verbose-air src/main.zig`
results in no output at all. With this refactor, it dumps AIR
and then exits without invoking LLVM, as expected
2022-09-07 14:53:31 +03:00
Evan Haas
e283a40d17
translate-c: convert tabs to \t in object-like macro string literals
...
Closes #12549
2022-09-07 14:46:58 +03:00
Loris Cro
e2bb92b2e2
Merge pull request #12736 from alichraghi/patch-2
...
autodoc: fix highlighted line in light mode
2022-09-05 17:37:12 +02:00
Loris Cro
201dca323e
autodoc: improve rendering of long fn signatures
2022-09-05 17:26:59 +02:00
Loris Cro
3deb33fffa
Merge pull request #12738 from der-teufel-programming/autodoc-opaque-types
...
autodoc: Opaque now handled like other container types
2022-09-04 22:51:03 +02:00
Der Teufel
b8001335c4
autodoc: Opaque now handled like other container types
2022-09-04 22:47:58 +02:00
Loris Cro
dbd60e3d29
autodoc: add support for doc tests
2022-09-04 22:45:57 +02:00