Jacob Young
0ecf0cf867
x86_64: fix debug arg spills clobbering other args
2024-08-16 15:22:56 -04:00
Jacob Young
00ca818805
Dwarf: incremental also needs end_sequence
...
The spec says that addresses can only increase within a sequence, so
every decl must be a separate sequence since they are not sorted.
2024-08-16 15:22:56 -04:00
Jacob Young
ad634537ce
x86_64: move end of prologue to after function arguments are spilled
...
This prevents the first step in to a function from displaying bogus
argument values.
2024-08-16 15:22:56 -04:00
Jacob Young
7a0acc8be6
Dwarf: fix cross-module inline function line info
2024-08-16 15:22:56 -04:00
Jacob Young
ef11bc9899
Dwarf: rework self-hosted debug info from scratch
...
This is in preparation for incremental and actually being able to debug
executables built by the x86_64 backend.
2024-08-16 15:22:55 -04:00
Jakub Konka
90989be0e3
Merge pull request #21065 from ziglang/elf-zig-got
...
elf: replace .got.zig with a zig jump table
2024-08-16 21:19:44 +02:00
David Rubin
f1eed99f3d
add an error for stack allocations in naked functions ( #21082 )
...
closes #72
2024-08-16 09:41:58 -07:00
Jakub Konka
73f385eec5
Update src/arch/x86_64/CodeGen.zig
...
Co-authored-by: Jacob Young <jacobly0@users.noreply.github.com>
2024-08-16 11:49:23 +02:00
Jacob Young
624016e8f3
riscv64: fix incorrect branch target
2024-08-16 05:44:55 -04:00
Andrew Kelley
11176d22f8
Merge pull request #21073 from alexrp/test-changes
...
`test`: QoL for port work, more mips re-enablement
2024-08-15 22:23:48 -07:00
Andrew Kelley
05c7968920
Merge pull request #21020 from alexrp/target-fixes
...
`std.Target`: Assorted corrections, plus cleanup around ELF/COFF machine types
2024-08-15 22:13:31 -07:00
Andrew Kelley
b917d778c6
Merge pull request #21056 from alexrp/start-fix-precedence
...
`start`: Avoid string concatenation in inline asm.
2024-08-15 22:10:59 -07:00
Igor Anić
72bcc3b7a5
std.tar: add writer ( #19603 )
...
Simplifies code in docs creation where we used `std.tar.output.Header`.
Writer uses that Header internally and provides higher level interface.
Updates checksum on write, handles long file names, allows setting mtime and file permission mode. Provides handy interface for passing `Dir.WalkerEntry`.
2024-08-15 22:05:53 -07:00
Jakub Konka
4d5bf0f09a
x86_64: deref GOT pointer when requesting var value
2024-08-15 14:23:36 +02:00
Alex Rønne Petersen
7a8e86e46c
llvm: Don't emit extra debug instructions for dbg_var_val in naked functions.
2024-08-15 10:56:33 +02:00
Alex Rønne Petersen
acad2fae44
llvm: Remove the aarch64-windows @llvm.dbg.value() workaround.
...
https://github.com/llvm/llvm-project/issues/56484
2024-08-15 10:56:33 +02:00
Alex Rønne Petersen
2bf244c0e9
llvm: Always omit the frame pointer for naked functions.
2024-08-15 10:56:33 +02:00
Alex Rønne Petersen
550438653d
std.Target: Pull toCoffMachine()/toElfMachine() up from Arch to Target.
...
This enables them to give more correct results.
Contributes to #20771 .
2024-08-15 10:55:46 +02:00
Alex Rønne Petersen
ac9ca7d30c
std.coff: Remove MachineType.fromTargetCpuArch().
...
This does the same thing as std.Target.Cpu.Arch.toCoffMachine(). Just use that.
2024-08-15 10:55:46 +02:00
Jakub Konka
79418fa0ab
riscv: remove redundant by-symbol-name check; just check for PIC and extern ptr
2024-08-15 10:52:06 +02:00
Jakub Konka
c79290467f
elf: fix GOT32 reloc resolution logic
2024-08-15 10:36:37 +02:00
Jakub Konka
f0df0acd70
x86_64: fix handling on externs in lower/emit
2024-08-15 10:33:30 +02:00
Jakub Konka
0fd0b11bc4
riscv: do not emit GOT relocations for special linker symbols
2024-08-15 10:21:20 +02:00
Jakub Konka
8a0cb7002e
elf: introduce Symbol.flags.is_extern_ptr for refs potentially needing GOT
2024-08-15 10:05:41 +02:00
David Rubin
2e8351cc9e
elf: fix up riscv for .got.zig rewrite
2024-08-15 08:53:41 +02:00
Jakub Konka
c9db887800
builtin: init test_functions to empty slice to avoid coercing to undefined
2024-08-15 08:38:08 +02:00
Jakub Konka
b8203fac1b
elf: check for relocs before deciding on shndx in getNavShdrIndex
2024-08-15 08:37:13 +02:00
YANG Xudong
0f0f543a9a
loongarch: add glibc start.S to make zig-bootstrap work for loongarch64-linux-gnu ( #21015 )
2024-08-14 21:32:03 +00:00
Andrew Kelley
78fb9c0a17
Merge pull request #21031 from linusg/std-target-naming
...
std.Target: Function naming cleanup
2024-08-14 10:36:24 -07:00
Andrew Kelley
b7a1ef3e19
Merge pull request #21075 from ziglang/fuzz
...
fix several debug info bugs
2024-08-14 04:55:32 -07:00
Jakub Konka
f26573fddf
elf: re-use old atom slot for a trampoline to that atom
...
This is the initial implementation of Jacob Young's idea of
re-using old function slots as trampolines for new function's
location. This way the trampoline is guaranteed to be aligned
to the function's alignment.
The only edge case is if an incremental update further overaligns
the function in which case we skip/delete the trampoline and
re-evaluate all references.
2024-08-14 12:10:40 +02:00
Andrew Kelley
e8e49efe21
ZigLLVMTargetMachineEmitToFile: put sanitizers in registerOptimizerLastEPCallback
...
matching the default of clang's behavior. I originally put them in
registerOptimizerEarlyEPCallback because I thought clang was doing that,
but I see now it is behind the flag `--sanitizer-early-opt-ep` which is
disabled by default.
2024-08-13 15:02:53 -07:00
Alex Rønne Petersen
819fe51a7e
llvm: Disable f128 on powerpc*-aix.
...
https://github.com/llvm/llvm-project/issues/101545
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
2f101e2b6e
llvm: Disable f128 on mips64(el).
...
https://github.com/llvm/llvm-project/issues/96432
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
18e94c355e
llvm: Also disable f16/f128 on aarch64_be with soft float.
2024-08-13 23:30:43 +02:00
Jakub Konka
1bd54a55fa
fix compile errors in other codegen backends
2024-08-13 21:52:40 +02:00
Robin Voetter
bcfc7cf13c
nvptx: add implementations for GPU builtins
2024-08-13 20:07:23 +02:00
Jakub Konka
97ab420dcf
elf: do not emit zig jump table in relocatables
2024-08-13 13:30:24 +02:00
Jakub Konka
49d78cc793
elf: only apply zig jump table indirection to function calls (PLT32)
2024-08-13 13:30:24 +02:00
Jakub Konka
9daf5e81c4
elf: commit non-indirected symbol address to symtab
2024-08-13 13:30:24 +02:00
Jakub Konka
df80ccf760
elf: pretty print alingment when pretty printing atoms
2024-08-13 13:30:24 +02:00
Jakub Konka
39ee346681
elf: make .text.zig bigger now that jump table is part of it
2024-08-13 13:30:24 +02:00
Jakub Konka
afaec5c3e4
x86_64: fix generating lazy symbol refs
2024-08-13 13:30:24 +02:00
Jakub Konka
edd72c75eb
elf: fix circular dep loop in zig jump table
2024-08-13 13:30:24 +02:00
Jakub Konka
57f7209508
elf: replace use of linker_extern_fn with more generic Immediate.reloc
2024-08-13 13:30:24 +02:00
Jakub Konka
ce8886d57d
elf: make zig jump table indirection implicit via Symbol.address
2024-08-13 13:30:24 +02:00
Jakub Konka
d25c93a868
x86_64: emit call rel32 for near calls with linker reloc
2024-08-13 13:30:24 +02:00
Jakub Konka
ffcf0478fe
x86_64: remove handling of .call since it's unused for now
2024-08-13 13:30:24 +02:00
Jakub Konka
78b1c73602
elf: rename OffsetTable to JumpTable
2024-08-13 13:30:24 +02:00
Jakub Konka
e1ce9a7065
elf: add poorman's reporting tool for unallocated NAVs/UAVs
2024-08-13 13:30:24 +02:00