aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86_64/Mir.zig
AgeCommit message (Collapse)Author
2025-09-26compiler: move self-hosted backends from src/arch to src/codegenAlex Rønne Petersen
2025-09-21Elf2: create a new linker from scratchJacob Young
This iteration already has significantly better incremental support. Closes #24110
2025-08-11linker: delete plan9 supportAndrew Kelley
This experimental target was never fully completed. The operating system is not that interesting or popular anyway, and the maintainer is no longer around. Not worth the maintenance burden. This code can be resurrected later if it is worth it. In such case it will be subject to greater scrutiny.
2025-06-19x86_64: increase passing test coverage on windowsJacob Young
Now that codegen has no references to linker state this is much easier. Closes #24153
2025-06-12x86_64: remove linker references from codegenJacob Young
2025-06-12x86_64: remove air references from mirJacob Young
2025-06-12compiler: get most backends compiling againmlugg
As of this commit, every backend other than self-hosted Wasm and self-hosted SPIR-V compiles and (at least somewhat) functions again. Those two backends are currently disabled with panics. Note that `Zcu.Feature.separate_thread` is *not* enabled for the fixed backends. Avoiding linker references from codegen is a non-trivial task, and can be done after this branch.
2025-06-06x86_64: add support for pie executablesJacob Young
2025-05-28x86_64: implement integer `@reduce(.Min)`Jacob Young
2025-05-28x86_64: implement optimized float `@reduce(.Add)`Jacob Young
2025-05-28x86_64: implement integer `@reduce(.Mul)`Jacob Young
2025-04-10x86_64: support rip-relative addressing to labels in inline asmJacob Young
2025-02-17x86_64: implement prefetchJacob Young
2025-02-17x86_64: rewrite unsafe int vector multiplicationJacob Young
2025-02-15x86_64: rewrite unsafe scalar int multiplicationJacob Young
2025-01-26x86_64: rewrite `@min`/`@max` for scalar floatsJacob Young
2025-01-24x86_64: rewrite scalar float equality comparisonsJacob Young
2025-01-21x86_64: rewrite `@abs` for scalar floatsJacob Young
2025-01-20x86_64: rewrite `@abs`Jacob Young
2025-01-18x86_64: add a bunch of instruction encodingsJacob Young
Closes #19773
2025-01-16x86_64: implement a custom calling convention for the Zig languageJacob Young
2025-01-16x86_64: fix unnecessary register savingJacob Young
2025-01-16x86_64: implement switch jump tablesJacob Young
2025-01-16x86_64: implement clz and notJacob Young
2025-01-16x86_64: demolish the oldJacob Young
2025-01-16x86_64: testingJacob Young
2025-01-16x86_64: rewrite arithmeticJacob Young
2024-11-24dwarf: fix stepping through an inline loop containing one statementJacob Young
Previously, stepping from the single statement within the loop would always exit the loop because all of the code unrolled from the loop is associated with the same line and treated by the debugger as one line.
2024-10-09Dwarf: implement and test lexical blocksJacob Young
2024-08-29compiler: avoid field/decl name conflictsmlugg
Most of the required renames here are net wins for readaibility, I'd say. The ones in `arch` are a little more verbose, but I think better. I didn't bother renaming the non-conflicting functions in `arch/arm/bits.zig` and `arch/aarch64/bits.zig`, since these backends are pretty bit-rotted anyway AIUI.
2024-08-28std: update `std.builtin.Type` fields to follow naming conventionsmlugg
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
2024-08-27Dwarf: implement .eh_frameJacob Young
2024-08-22Dwarf: add missing var args info on function declsJacob Young
2024-08-20x86_64: support more dwarf locationsJacob Young
2024-08-20Dwarf: emit info about inline call sitesJacob Young
2024-08-16Dwarf: rework self-hosted debug info from scratchJacob Young
This is in preparation for incremental and actually being able to debug executables built by the x86_64 backend.
2024-08-13x86_64: emit call rel32 for near calls with linker relocJakub Konka
2024-03-01compiler: audit debug mode checksJacob Young
* Introduce `-Ddebug-extensions` for enabling compiler debug helpers * Replace safety mode checks with `std.debug.runtime_safety` * Replace debugger helper checks with `!builtin.strip_debug_info` Sometimes, you just have to debug optimized compilers...
2024-02-25x86_64: fix avx2 `@truncacte`Jacob Young
2024-02-25Sema: implement vector coercionsJacob Young
These used to be lowered elementwise in air, and now are a single air instruction that can be lowered elementwise in the backend if necessary.
2024-02-25x86_64: implement `@select`Jacob Young
2024-02-12x86_64: implement mul, div, and mod of large integersJacob Young
This enables the last compiler-rt test disabled for the x86_64 backend.
2024-02-06add the `clflush` mnemDavid Rubin
2023-11-12Dwarf: improve x86_64 backend debug infoJacob Young
Closes #17811
2023-11-03x86_64: fix std test failuresJacob Young
2023-10-29x86_64: refactor codegen memory reprJacob Young
Also refactor linker reloc lowering.
2023-10-28x86_64: do not hardcode memory passed by Elf linkerJakub Konka
2023-10-25x86_64: pass more testsJacob Young
* 128-bit integer multiplication with overflow * more instruction encodings used by std inline asm * implement the `try_ptr` air instruction * follow correct stack frame abi * enable full panic handler * enable stack traces
2023-10-23x86_64: implement 128-bit builtinsJacob Young
* `@clz` * `@ctz` * `@popCount` * `@byteSwap` * `@bitReverse` * various encodings used by std
2023-10-23x86_64: implement enough to pass unicode testsJacob Young
* implement vector comparison * implement reduce for bool vectors * fix `@memcpy` bug * enable passing std tests