aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86_64/CodeGen.zig
AgeCommit message (Collapse)Author
2023-04-16x86_64: fix overflow of extended multiplyJacob Young
2023-04-16x86_64: fix @clz directionJacob Young
2023-04-15x86_64: fix loading/storing pointers from linker deferred memory locationsJakub Konka
2023-04-15x86_64: cleanup different memory load typesJakub Konka
Split `MCValue.linker_load` into `.load_got`, `.load_direct`, and `.lea_direct`.
2023-04-15x86_64: split MCValue.tlv_reloc into .load_tlv and .lea_tlvJakub Konka
`.load_tlv` signifies we want to load the value of a TLV `.lea_tlv` signifies we want to load effective address of a TLV
2023-04-13x86_64: make TLV a separate MCValueJakub Konka
2023-04-13x86_64: fix load() and store() to accommodate TLVJakub Konka
2023-04-13x86_64: emit pointer to TLV for machoJakub Konka
2023-04-13x86_64: remove loadMemPtrIntoRegister() now redundantJakub Konka
2023-04-13x86_64: simplify genInlineMemset() when setting value in memoryJakub Konka
2023-04-13x86_64: simplify genInlineMemcpy() when copying from memoryJakub Konka
2023-04-13x86_64: simplify genSetStack() when storing value from memoryJakub Konka
2023-04-13x86_64: simplify genSetStackArg() when storing value from memoryJakub Konka
2023-04-13x86_64: simplify isNull() when loading optional from memoryJakub Konka
2023-04-13x86_64: simplify airArrayElemVal() when pulling array from memoryJakub Konka
2023-04-13x86_64: simplify genBinOp() and genBinOpMir() when modifying value in memoryJakub Konka
2023-04-13x86_64: simplify genUnOpMir() when modifying value in memoryJakub Konka
2023-04-13x86_64: simplify store() logic when ptr is in memoryJakub Konka
2023-04-13x86_64: simplify store() logic when value is in memoryJakub Konka
2023-04-13x86_64: remove loadMemPtrIntoRegister in genSetRegJakub Konka
Add two emit helpers for linker reloc based `lea` and `mov` instructions: `asmMovLinker` and `asmLeaLinker`.
2023-04-13x86_64: fix clz miscompileJacob Young
2023-04-13x86_64: fix constant pointers to zero-bit typesJacob Young
These non-dereferencable pointers still need to have the correct alignment and non-null-ness.
2023-04-13x86_64: fix atomic loop implementationJacob Young
2023-04-13x86_64: fix some of the mass confusion about the meaning of `MCValue`Jacob Young
2023-04-07Liveness: defer deaths of externally-scoped instructions in loop bodiesmlugg
2023-04-03x86_64: implement cmp_lt_errors_lenJacob Young
2023-04-03x86_64: fix typosJacob Young
2023-04-03x86_64: canonicalise loopsJacob Young
2023-04-03x86_64: implement store to immediate addressJacob Young
2023-04-03x86_64: implement storing large immediatesJacob Young
2023-04-03x86_64: implement a more generic assembler for inline assemblyJacob Young
2023-04-02x86_64: implement shl with overflowJacob Young
2023-04-02x86_64: implement large add/sub with overflowJacob Young
2023-04-02x86_64: implement wide multiplyJacob Young
2023-04-02x86_64: implement struct_field_val for large packed structsJacob Young
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-25x86_64: remove unused Mir encodingsJacob Young
This also restores the size of Mir.Inst and simplifies logic in general.