Commit Graph

2476 Commits

Author SHA1 Message Date
Jacob Young 3a5e3c52e0 x86_64: implement @mulAdd 2023-05-08 07:36:20 -04:00
Jacob Young 5d4288c5f6 x86_64: fix unordered float equality 2023-05-08 07:36:19 -04:00
Jacob Young 32ab930f1d x86_64: implement f16 conversions when supported 2023-05-08 07:36:19 -04:00
Jacob Young 1a261917ce x86_64: implement @ctz and @clz for u128 2023-05-08 07:36:19 -04:00
Dominic 5a3eca5d4c Disallow named test decls with duplicate names 2023-05-08 10:59:06 +03:00
dweiller 4d296debef test: disable by-length slice test on wasm backend 2023-05-07 15:55:21 +10:00
dweiller e507f0c0aa test: add behavior tests for pointer slice-by-length 2023-05-07 15:55:21 +10:00
dweiller 7c8d60e814 test: add behavior tests for slice-by-length 2023-05-07 15:55:20 +10:00
Jacob Young a19faa2481 x86_64: implement movement of more types
* f16
 * f128
 * vector
2023-05-03 04:25:14 -04:00
Jacob Young 36a39267b8 x86_64: fix feature confusion 2023-05-03 04:25:14 -04:00
Jacob Young 9ccdbca635 x86_64: implement fabs 2023-05-03 04:25:14 -04:00
Jacob Young 31429a4e86 codegen: handle variable and decl_ref_mut consistently 2023-05-03 04:25:14 -04:00
Jacob Young f894ec264b codegen: fix global nested field_ptr 2023-05-03 04:25:14 -04:00
Jacob Young 3a30b82741 x86_64: implement fieldParentPtr 2023-05-03 04:25:14 -04:00
Jacob Young 3f5592c114 x86_64: implement slice elem ptr for more MCValue tags 2023-05-03 04:25:14 -04:00
Jacob Young f56f5af403 x86_64: fix global slices 2023-05-03 04:25:14 -04:00
mlugg 152c7b1885 Implement multi-argument @min/@max and notice bounds
Resolves: #14039
2023-05-02 16:46:27 -07:00
Jacob Young db88b41472 x86_64: fix switch multi-prongs and mul/div flags clobber 2023-05-01 19:22:53 -04:00
Jakub Konka 5e7f3d5daa x86_64: disable advanced memset tests on Windows 2023-05-01 19:22:53 -04:00
Jacob Young 47a34d038d x86_64: implement tagName 2023-05-01 19:22:52 -04:00
Jacob Young c388960042 x86_64: fix large not and atomicrmw 2023-05-01 19:22:52 -04:00
Jacob Young 50f96c2949 x86_64: fix stack realignment 2023-05-01 19:22:52 -04:00
Jacob Young db76ae8260 x86_64: fix emitting f80 globals 2023-05-01 19:22:52 -04:00
Jacob Young 6de457211f behavior: update affected tests for the x86_64 backend 2023-05-01 19:22:52 -04:00
Andrew Kelley 7baf0de807 Merge pull request #15458 from koachan/sparc64-codegen
stage2: sparc64: Yet another patchset for the selfhosted backend
2023-04-29 10:55:50 -07:00
Koakuma d339e86fb1 stage2: sparc64: Skip unimplemented tests 2023-04-28 16:45:37 -07:00
Andrew Kelley 85ffb8f18f disable 2 failing behavior tests with x86 backend 2023-04-28 13:29:39 -07:00
Andrew Kelley 73d3fb9883 C backend: fix ptr comparison of array ptrs when one is null-terminated 2023-04-28 13:24:43 -07:00
Andrew Kelley a67dec1c9f disable not yet passing new behavior tests from this branch 2023-04-28 13:24:42 -07:00
Andrew Kelley 9295355985 LLVM backend: optimize memset with comptime-known element
When the element is comptime-known, we can check if it has a repeated
byte representation. In this case, `@memset` can be lowered with the
LLVM intrinsic rather than with a loop.
2023-04-28 13:24:42 -07:00
Andrew Kelley 00b690540e llvm backend: fix lowering of memset
The bitcast of ABI size 1 elements was problematic for some types.
2023-04-28 13:24:42 -07:00
Andrew Kelley 011bc59e8a Merge pull request #15435 from jacobly0/x86_64-frame
x86_64: add frame indices
2023-04-27 15:45:01 -07:00
Andrew Kelley aa3405aabc Merge pull request #15474 from Luukdegram/wasm-atomics
wasm: implement atomic instructions
2023-04-27 08:26:35 -07:00
Jakub Konka bc69d5a00f macho: invalidate GOT/stub relocs after segment shift in memory 2023-04-26 19:08:38 -04:00
Jacob Young b5b0b55582 x86_64: fix tlv references 2023-04-26 19:05:17 -04:00
Jacob Young 894406b9d3 behavior: update passing cbe tests 2023-04-26 19:05:17 -04:00
Andrew Kelley 3c66850e42 Merge pull request #15278 from ziglang/memcpy-memset
change semantics of `@memcpy` and `@memset`
2023-04-26 10:01:54 -07:00
Luuk de Gram 1d97181703 wasm: enable atomics behavior tests 2023-04-26 16:28:41 +02:00
Andrew Kelley 1ba72bcf9a update test cases for new memcpy/memset semantics 2023-04-25 11:23:41 -07:00
Andrew Kelley 58fabbc903 x86_64 backend: support @memset with slices 2023-04-25 11:23:41 -07:00
Andrew Kelley 881e931ee1 x86_64 backend: implement @memset for element ABI size > 1
* make memset and memset_safe guarantee that if the length is
   comptime-known then it will be nonzero.
2023-04-25 11:23:41 -07:00
Andrew Kelley 7c56145a76 add behavior test for @memset on slices
and avoid new language feature in std.ArrayList for now, until x86_64
self-hosted backend can implement it.
2023-04-25 11:23:41 -07:00
Andrew Kelley 482a0f648c Sema: implement comptime @memcpy 2023-04-25 11:23:41 -07:00
Andrew Kelley 83a7303bbf Sema: implement comptime @memset 2023-04-25 11:23:41 -07:00
Andrew Kelley 057c950093 LLVM backend: support non-byte-sized memset
Also introduce memset_safe AIR tag and support it in C backend and LLVM
backend.
2023-04-25 11:23:41 -07:00
Andrew Kelley a5c910adb6 change semantics of @memcpy and @memset
Now they use slices or array pointers with any element type instead of
requiring byte pointers.

This is a breaking enhancement to the language.

The safety check for overlapping pointers will be implemented in a
future commit.

closes #14040
2023-04-25 11:23:40 -07:00
Jacob Young a1fcb51692 cbe: fix mutability issues with builtin test_functions 2023-04-25 13:42:10 -04:00
Andrew Kelley a2fe81a639 Merge pull request #15421 from Vexu/fixes
Runtime safety improvements
2023-04-24 16:23:03 -07:00
Andrew Kelley ef0a02081d Merge pull request #15290 from mlugg/feat/builtin-in-comptime
Add `@inComptime` builtin
2023-04-24 12:54:12 -07:00
Ian Johnson 2be347a2c8 Sema: allow method calls on optional pointers 2023-04-24 09:35:54 +03:00