aboutsummaryrefslogtreecommitdiff
path: root/src/arch
AgeCommit message (Collapse)Author
2022-12-10stage2: sparc64: Implement airWrapErrUnionPayloadKoakuma
2022-12-10stage2: sparc64: Add extra note about stack_offset MCVKoakuma
2022-12-10stage2: sparc64: Implement airTruncKoakuma
2022-12-10stage2: sparc64: Implement airSplatKoakuma
2022-12-10stage2: sparc64: Implement airUnionInitKoakuma
2022-12-10stage2: sparc64: Implement airErrorNameKoakuma
2022-12-10stage2: sparc64: Implement get/setUnionTagKoakuma
2022-12-09Eliminate `BoundFn` type from the languageVeikka Tuominen
Closes #9484
2022-12-05dwarf: pull out debug line program internals into DeclState helpersJakub Konka
2022-12-04wasm codegen: fix some missing Liveness reapsAndrew Kelley
I did not do a full audit, but I did notice a few issues which are resolved in this commit. Probably it would be worth adding debug infrastructure to assert that the number of reaps equals the number of calls to resolveInst() per air lowering function.
2022-12-03Merge pull request #13744 from Vexu/stage2-fixesAndrew Kelley
Improve error messages, fix dependency loops
2022-12-03Sema: fix comparisons between lazy and runtime valuesVeikka Tuominen
Closes #12498
2022-12-02dwarf: pass linker Tag and owner Decl.Index instead of *AtomJakub Konka
2022-12-02x86: do not deref ptr type, let Dwart do itJakub Konka
2022-12-02dwarf: use common DI union object for arg and var genJakub Konka
2022-12-01dwarf: move Wasm specific dwarf gen out of codegenJakub Konka
2022-12-01dwarf: refactor arm and riscv64 to the new schemeJakub Konka
2022-12-01dwarf: fix typos after refactoring dbi genJakub Konka
2022-12-01codegen: make LinkerLoad a common struct shared by backendsJakub Konka
2022-12-01dwarf: extract common logic for generating func var dbg infoJakub Konka
2022-12-01dwarf: update arm and riscv codegens to the new modelJakub Konka
2022-12-01dwarf: extract common logic for generating func arg dbg infoJakub Konka
2022-11-30codegen: support generating packed structsLuuk de Gram
2022-11-30wasm: Fix pointer to field of packed structLuuk de Gram
When requesting a pointer to a field of a packed struct (of which is not byte-aligned), we simply provide the address of the packed struct itself.
2022-11-30wasm: support non-natural alignment in load/storeLuuk de Gram
This implements support for loading and storing where the lhs is of pointer type with host_size != 0. e.g. when loading a specific field from a packed struct with a non-byte alignment such as (0:1:3).
2022-11-30wasm: airAggregateInit - Support packed structsLuuk de Gram
This allows the Wasm backend to construct an instance of a packed struct during runtime. We first allocate a local, and then shift+or each field's value into the result local. We then finally return this result local as value. The commit also fixes a type-issue in `airElemVal` where we used the element type instead of a pointer type to store the value's address into.
2022-11-30wasm: support passing packed struct over C-ABILuuk de Gram
This also adds support loading a runtime pointer from a packed struct. Also, this commit improves many utility functions such as `trunc` and `intcast` to also support non-integer types such as booleans.
2022-11-30wasm: airStructFieldPtr - Support packed structsLuuk de Gram
Simplifies the airStructFieldPtr(index) functions to only obtain the correct struct type and field index, which is then passed into the structFieldPtr function. This function now calculates the byte-offset of the field's address and returns a new `WValue` with this offset. This means we only have to do this calculation in a single function, and no longer have to duplicate any logic. This also handles both regular (tagged) unions and packed unions.
2022-11-30wasm: airStructFieldVal - Support packed structsLuuk de Gram
This implements loading a field from a packed struct, regardless of its field's type. This means it supports pointers, floats and integers. The commit also extracts the logic from airTrunc into its own `trunc` function so it can be re-used.
2022-11-30wasm: Support bitcasting between floats and intsLuuk de Gram
2022-11-30wasm: add support packed structs in lowerConstantLuuk de Gram
When lowering constants of packed structs, which are smaller than 65 bits, we lower the value to an integer rather than store it in the constant data section. This allows us to use an immediate value, for quick loads and stores.
2022-11-29std.mem.Allocator: allow shrink to failAndrew Kelley
closes #13535
2022-11-23add tests for tuple declarationsVeikka Tuominen
2022-11-23llvm: fix x86_64 sysV ABI of big vectors on avx512 enabled CPUsVeikka Tuominen
Closes #13629
2022-11-21stage2 ARM: misc fixesjoachimschmidt557
- remove redundant `new` from `binOpRegisterNew` name - fix mul_with_overflow
2022-11-20compute LLVMTypes in ParamTypeIterator (#13592)Guillaume Wenzek
follow up on #13376 - fixes a bug in the x86_64 C ABI. Co-authored-by: Veikka Tuominen <git@vexu.eu>
2022-11-18run zig fmt on everything checked by CIStevie Hryciw
2022-11-10Merge pull request #13495 from ziglang/macho-dsymJakub Konka
stage2: misc DWARF debug info fixes and additions for x86_64 and aarch64
2022-11-09aarch64: handle .stack_argument_offset as a valid local varJakub Konka
2022-11-09x86_64: add DWARF encoding for vector registersJakub Konka
Clean up how we handle emitting of DWARF debug info for `x86_64` codegen.
2022-11-09aarch64: emit DWARF debug info for fn params and localsJakub Konka
We postpone emitting debug info until *after* we generate the function so that we have an idea of the consumed stack space. The stack offsets encoded within DWARF are with respect to the frame pointer `.fp`.
2022-11-08aarch64: circumvent zig0 inference problemsJakub Konka
2022-11-08aarch64: revert changes to .callJakub Konka
2022-11-08aarch64: fix implementation of .is_null and .is_non_nullJakub Konka
2022-11-08aarch64: implement .wrap_optional always saving to the stackJakub Konka
2022-11-08aarch64: implement optionalPayload when mcv is registerJakub Konka
2022-11-08aarch64: implement isNull() for non-pointer optionalsJakub Konka
2022-11-08aarch64: partially implement optionalPayload()Jakub Konka
2022-11-08aarch64: partially implement isNull()Jakub Konka
2022-11-05coff: compile and link simple exit program on arm64Jakub Konka
* make image base target dependent * fix relocs to imports