aboutsummaryrefslogtreecommitdiff
path: root/src/arch
AgeCommit message (Collapse)Author
2023-04-02x86_64: implement large cmpJacob Young
2023-04-02x86_64: implement error nameJacob Young
2023-04-02x86_64: implement calling var args functionsJacob Young
2023-04-02x86_64: implement aggregate init of a packed structJacob Young
2023-03-30new builtins: @workItemId, @workGroupId, @workGroupSizeRobin Voetter
* @workItemId returns the index of the work item in a work group for a dimension. * @workGroupId returns the index of the work group in the kernel dispatch for a dimension. * @workGroupSize returns the size of the work group for a dimension. These builtins are mainly useful for GPU backends. They are currently only implemented for the AMDGCN LLVM backend.
2023-03-28link: pass expected lib name as hint in getGlobalSymbol()Jakub Konka
2023-03-27x86_64: cleanup debug mir dumpingJacob Young
2023-03-27x86_64: fix popcnt and disable regressed testJacob Young
2023-03-27x86_64: implement trunc with large sourceJacob Young
2023-03-27x86_64: fix 64-bit multiply by 32-bit immediateJacob Young
2023-03-27x86_64: implement some binary ops for large valuesJacob Young
2023-03-27x86_64: add live codegen debugJacob Young
2023-03-27x86_64: factor out lowering from emittingJacob Young
2023-03-27x86_64: enable mem dst bin ops, and fix uncovered bugsJacob Young
2023-03-26wasm: implement float operations with compiler-rtTechatrix
2023-03-25x86_64: remove unused Mir encodingsJacob Young
This also restores the size of Mir.Inst and simplifies logic in general.
2023-03-25x86_64: implement teb inline assembly for windowsJacob Young
2023-03-25x86_64: implement atomic loopsJacob Young
2023-03-25x86_64: fix cmpxchgJacob Young
2023-03-25x86_64: implement 128-bit intcastJacob Young
2023-03-25x86_64: implement 128-bit shiftsJacob Young
2023-03-25x86_64: implement large ptr_elem_valJacob Young
2023-03-25x86_64: implement struct_field_val for packed containersJacob Young
2023-03-25x86_64: implement struct_field_ptr for packed containersJacob Young
2023-03-25x86_64: implement saturating arithmeticJacob Young
2023-03-24x86_64: add back assume unusedJacob Young
This seems to have been asserting due to a value tracking bug that has since been fixed.
2023-03-24x86_64: detect canonicalisation hazardsJacob Young
2023-03-24x86_64: try to fix br canonicalizationJacob Young
2023-03-24x86_64: canonicalize each br of a blockJacob Young
2023-03-24x86_64: fix block result value trackingJacob Young
2023-03-24x86_64: fix more value tracking bugsJacob Young
2023-03-24x86_64: fix value tracking bugsJacob Young
2023-03-21x86_64: implement @byteSwap and @bitReverseJacob Young
2023-03-21x86_64: implement atomic and fence opsJacob Young
2023-03-21codegen: fix backend breakage due to optional layout changeJacob Young
2023-03-21x86_64: implement some slice opsJacob Young
2023-03-21x86_64: implement @popCount for older processorsJacob Young
This fixes the behavior tests when compiled for baseline.
2023-03-21x86_64: (re)implement optional opsJacob Young
Note that this commit also changes the layout of optional for all other backends using `src/codegen.zig` without updating them!
2023-03-21x86_64: implement some error union opsJacob Young
2023-03-21x86_64: improve codegen for neg and notJacob Young
2023-03-21x86_64: implement @returnAddress and @frameAddressJacob Young
2023-03-21x86_64: implement clz, ctz, and popCountJacob Young
2023-03-21x86_64: reimplement inline memcpy and memsetJacob Young
2023-03-21x86_64: implement float division intrinsicsJacob Young
2023-03-21x86_64: fix OBOJacob Young
These loops were skipping over the top stack entry, and there's already a function that does this correctly.
2023-03-21x86_64: implement basic float opsJacob Young
2023-03-21x86_64: implement min and max as commutative binary opsJacob Young
2023-03-18wasm: add atomics opcodes and refactoringLuuk de Gram
This adds the atomic opcodes for the Threads proposal to the WebAssembly specification: https://github.com/WebAssembly/threads PrefixedOpcode has been renamed to MiscOpcode as there's multiple types of prefixed opcodes. This naming is similar to other tools such as LLVM. As we now use the 0xFE prefix, we moved the function_index MIR instruction as it was occupying the same value. This commit includes renaming all related opcodes.
2023-03-15x86_64: turn packed struct crashes into compile errorsJacob Young
2023-03-15x86_64: implement more binary immediate combinationsJacob Young