aboutsummaryrefslogtreecommitdiff
path: root/src/arch
AgeCommit message (Collapse)Author
2023-02-20aarch64: alloc new mcv in bitcast if cannot reuse operandJakub Konka
2023-02-20x86: alloc new mcv in bitcast if cannot reuse operandJakub Konka
Implement missing pointees when ptr is in register.
2023-02-19implement `writeToMemory`/`readFromMemory` for pointersVeikka Tuominen
2023-02-18update std lib and compiler sources to new for loop syntaxAndrew Kelley
2023-02-03link: remove `FnData` and make it self-ownedLuuk de Gram
This finishes the work started in #14502 where atoms are owned by the linker themselves. This now makes debug atoms fully owned by dwarf, and no information is left stored on the decl.
2023-02-02Merge pull request #14502 from ziglang/link-owned-atomsJakub Konka
link: move ownership of linker atom from frontend to the linkers
2023-02-01link: remove union types which are now internal to backendsJakub Konka
2023-02-01link: make Wasm atoms fully owned by the linkerLuuk de Gram
2023-02-01link: decouple DI atoms from linker atoms, and manage them in Dwarf linkerJakub Konka
2023-02-01link: make Plan9 atoms fully owned by the linkerJakub Konka
2023-01-31link: make Coff atoms fully owned by the linkerJakub Konka
2023-01-31link: make Elf atoms fully owned by the linkerJakub Konka
2023-01-31wasm: apply request changeTechatrix
2023-01-31wasm: correctly handle optional slicesTechatrix
2023-01-31link: make MachO atoms fully owned by the linkerJakub Konka
2023-01-29stage2 AArch64: move copy-register-arg-to-stack code to fn prologuejoachimschmidt557
This enhances the debugging experience as upon encountering a breakpoint in a function, all arguments passed as registers have already been moved to the stack, ready to be inspected by the debugger.
2023-01-27wasm: migrate to new non-allocateDeclIndexes APILuuk de Gram
2023-01-26coff: migrate to new non-allocateDeclIndexes APIJakub Konka
2023-01-26elf: migrate to new non-allocateDeclIndexes APIJakub Konka
2023-01-26self-hosted: clean up calling logic for x86_64 and aarch64 across linkersJakub Konka
2023-01-26macho: completely remove allocateDeclIndexes in favor of linker trackingJakub Konka
2023-01-25self-hosted: rename codegen Result.appended to Result.okJakub Konka
2023-01-25self-hosted: remove unused `externally_managed` prong for Decls codeJakub Konka
2023-01-22stage2 ARM: add basic debug info for localsjoachimschmidt557
Also disables one behavior test which was failing
2023-01-14llvm: correctly handle C ABI structs with f32/f64 alignment differencesVeikka Tuominen
Closes #13830
2023-01-14add C ABI tests for exotic float typesVeikka Tuominen
2023-01-03stage2 AArch64: bump up alignment of stack items fitting in regsjoachimschmidt557
This enables us to use more efficient loading and storing for these small stack items
2022-12-31Merge pull request #14130 from Vexu/debug-infoVeikka Tuominen
Debug info fixes
2022-12-30x86_64: remove extra whitespaceManlio Perillo
Remove extra whitespace at the end of a line in Emit.zig, in regions where zig fmt is off.
2022-12-30fix generic function arg debug info referencing wrong parameterVeikka Tuominen
Closes #14123
2022-12-29stage2 AArch64: implement errUnion{Err,Payload} for registersjoachimschmidt557
2022-12-27stage2 AArch64: implement field_parent_ptrjoachimschmidt557
2022-12-27stage2 AArch64: unify callee-preserved regs on all targetsjoachimschmidt557
also enables many passing behavior tests
2022-12-21wasm: refactor extended instructionsLuuk de Gram
The extended instructions starting with opcode `0xFC` are refactored to make the work the same as the SIMD instructions. This means a `Mir` instruction no longer contains a field 'secondary'. Instead, we use the `payload` field to store the index into the extra list which contains the extended opcode value. In case of instructions such as 'memory.fill' which also have an immediate value, such values will also be stored in the extra list right after the instruction itself. This makes each `Mir` instruction smaller.
2022-12-20llvm: fix C ABI for <=256 bit vectorsVeikka Tuominen
Closes #13918
2022-12-18Merge pull request #13914 from Vexu/variadicAndrew Kelley
implement defining C variadic functions
2022-12-17std.builtin: rename Type.UnionField and Type.StructField's field_type to typer00ster91
2022-12-17implement defining C variadic functionsVeikka Tuominen
2022-12-15port packed vector elem ptr logic from stage1Veikka Tuominen
Closes #12812 Closes #13925
2022-12-13Merge pull request #13907 from Vexu/call-mergeAndrew Kelley
Remove `stack` option from `@call`
2022-12-13remove `stack` option from `@call`Veikka Tuominen
2022-12-12wasm: `splat` for vector elements divisible by 8Luuk de Gram
This implements `@splat` for vectors where the element type is divisible by 8 and a power of two. This is fairly simple as we can store the values directly within the virtual stack. But for all other sizes, we must first shift and bitwise-or the values before we can store them to fit them like a packed-struct, rather than an array.
2022-12-12wasm: implement the 'splat' instruction part 1Luuk de Gram
This implements `airSplat` for the native WebAssembly backend when the features 'simd128' or 'relaxed-simd' are enabled. The commit supports splat where the value lives in the linear memory segment, as well as on the stack. This saves a lot of instruction cost. When it detects the element type is not 8, 16, 32 or 64 bits, the backend will instead use the same strategy as if the features where disabled.
2022-12-12wasm: load+store simd immediate valuesLuuk de Gram
This implements loading and storing immediate values representing a vector with exactly 128 bits. When the vector does not equal to 128 bits, or when the simd128 or relaxed-simd features are disabled the value will be treated as an array instead.
2022-12-10stage2: sparc64: Implement airMinMaxKoakuma
2022-12-10stage2: sparc64: Implement airBitReverseKoakuma
2022-12-10stage2: sparc64: Add more types for genTypedValueKoakuma
2022-12-10stage2: sparc64: Log generated function name for debug purposesKoakuma
2022-12-10stage2: sparc64: Implement atomic opsKoakuma
2022-12-10stage2: sparc64: Implement stack argumentKoakuma