Jacob Young
5060ab99c9
aarch64: add new from scratch self-hosted backend
2025-07-22 19:43:47 -07:00
Jacob Young
917640810e
Target: pass and use locals by pointer instead of by value
...
This struct is larger than 256 bytes and code that copies it
consistently shows up in profiles of the compiler.
2025-06-19 11:45:06 -04:00
Jacob Young
b31a91bbef
compiler-rt: compute correct integer sizes from bits at runtime
...
Also, accepting `align(1)` pointers ensures that the alignment is safety
checked rather than assumed.
2025-04-11 07:06:01 -04:00
Linus Groh
79460d4a3e
Remove uses of deprecated callconv aliases
2025-03-05 03:01:43 +00:00
Jacob Young
8c48376d64
x86_64: rewrite scalar and vector int @divTrunc
2025-02-15 03:45:21 -05:00
mlugg
a3a737e9a6
lib,test,tools,doc: update usages of @export
2024-08-27 00:44:35 +01:00
Pavel Verigo
8fd1f01f2a
compiler_rt: disable test for stage2_wasm
2024-07-23 17:10:36 +02:00
Jacob Young
271505cfc8
x86_64: fix compiler_rt tests
2024-02-12 05:25:07 +01:00
Jacob Young
6235762c09
x86_64: implement mul, div, and mod of large integers
...
This enables the last compiler-rt test disabled for the x86_64 backend.
2024-02-12 05:25:07 +01:00
e4m2
8d56e472c9
Replace std.rand references with std.Random
2024-02-08 15:21:35 +01:00
mlugg
51595d6b75
lib: correct unnecessary uses of 'var'
2023-11-19 09:55:07 +00:00
Andrew Kelley
3fc6fc6812
std.builtin.Endian: make the tags lower case
...
Let's take this breaking change opportunity to fix the style of this
enum.
2023-10-31 21:37:35 -04:00
Jacob Young
8f69e977f1
x86_64: implement 128-bit builtins
...
* `@clz`
* `@ctz`
* `@popCount`
* `@byteSwap`
* `@bitReverse`
* various encodings used by std
2023-10-23 22:42:18 -04:00
Jacob Young
27fe945a00
Revert "Revert "Merge pull request #17637 from jacobly0/x86_64-test-std""
...
This reverts commit 6f0198cadb .
2023-10-22 15:46:43 -04:00
Andrew Kelley
6f0198cadb
Revert "Merge pull request #17637 from jacobly0/x86_64-test-std"
...
This reverts commit 0c99ba1eab , reversing
changes made to 5f92b070bf .
This caused a CI failure when it landed in master branch due to a
128-bit `@byteSwap` in std.mem.
2023-10-22 12:16:35 -07:00
Jacob Young
2e6e39a700
x86_64: fix bugs and disable erroring tests
2023-10-21 10:55:41 -04:00
mlugg
f26dda2117
all: migrate code to new cast builtin syntax
...
Most of this migration was performed automatically with `zig fmt`. There
were a few exceptions which I had to manually fix:
* `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten
* `@truncate`'s fixup is incorrect for vectors
* Test cases are not formatted, and their error locations change
2023-06-24 16:56:39 -07:00
Andrew Kelley
0794e48b91
update a couple more callsites to @memset
2023-04-28 13:24:43 -07:00
Andrew Kelley
60bd13bdf2
never use C pointers!!
...
you maniacs, you absolute monsters. degenerates. hooligans. criminals.
issue #2984 is coming for you.
2023-04-12 15:21:03 -07:00
Jacob Young
c1d16a2b80
compiler_rt: fix rare case in udivei4
...
Unsigned integers are never less than zero, and so zig
helpfully deleted the entire case. :D
Closes #14816
2023-03-07 03:00:08 -05:00
kcbanner
0251ce1e1b
compiler_rt: skip "__udivei4/__umodei4" on cbe due to missing > 128 bit integer support
2023-01-02 13:55:45 -07:00
Luuk de Gram
30f2bb8464
compiler-rt: Set the symbol visibility
...
When we're compiling compiler_rt for any WebAssembly target, we do
not want to expose all the compiler-rt functions to the host runtime.
By setting the visibility of all exports to `hidden`, we allow the
linker to resolve the symbols during linktime, while not expose the
functions to the host runtime. This also means the linker can
properly garbage collect any compiler-rt function that does not get
resolved. The symbol visibility for all target remains the same as
before: `default`.
2022-12-28 14:57:17 +01:00
Frank Denis
8d66aacb64
compiler-rt: implement __udivei4 and __umodei4 ( #14023 )
...
Allows dividing and formatting arbitrary-large unsigned integers.
2022-12-22 16:29:19 -05:00