aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/x86_64/CodeGen.zig
AgeCommit message (Collapse)Author
2025-11-04x86_64: implement split vector storesJacob Young
Closes #25809
2025-10-29x86_64: continue hacking around unimplemented linker logicJacob Young
Closes #25666
2025-10-10Coff: implement threadlocal variablesJacob Young
2025-10-03x86_64: fix bool vector init register clobberJacob Young
Closes #25439
2025-10-02x86_64: fix windows calling convention abiJacob Young
2025-09-27x86_64: fix `@mulAdd` miscompJacob Young
2025-09-27x86_64: fix `~`/`!` miscompsJacob Young
2025-09-27x86_64: fix `@floatFromInt` miscompsJacob Young
2025-09-27x86_64: fix unencodable `rem` loweringsmlugg
The memory operand might use one of the extended GPRs R8 through R15 and hence require a REX prefix, but having a REX prefix makes the high-byte register AH unencodeable as the src operand. This latent bug was exposed by this branch, presumably because `select` now happens to be putting something in an extended GPR instead of a legacy GPR. In theory this could be fixed with minimal cost by introducing a way to communicate to `select` that neither the destination memory nor the other temporary can be in an extended GPR. However, I just went for the simple solution which comes at a cost of one trivial instruction: copy the remainder from AH to AL, and *then* copy AL to the destination.
2025-09-27x86_64: fix miscompilation of `mul` on vectors of large intsmlugg
2025-09-27x86_64: generate better constant memcpy codemlugg
`rep movsb` isn't usually a great idea here. This commit makes the logic which tentatively existed in `genInlineMemcpy` apply in more cases, and in particular applies it to the "new" backend logic. Put simply, all copies of 128 bytes or fewer will now attempt this path first, where---provided there is an SSE register and/or a general-purpose register available---we will lower the operation using a sequence of 32, 16, 8, 4, 2, and 1 byte copy operations. The feedback I got on this diff was "Push it to master and if it miscomps I'll revert it" so don't blame me when it explodes
2025-09-26compiler: move self-hosted backends from src/arch to src/codegenAlex Rønne Petersen