Jakub Konka
45f65c8445
aarch64: fix implementation of .is_null and .is_non_null
2022-11-08 13:42:58 +01:00
Jakub Konka
0d556877af
aarch64: implement .wrap_optional always saving to the stack
2022-11-08 13:42:58 +01:00
Jakub Konka
a07449450f
aarch64: implement optionalPayload when mcv is register
2022-11-08 13:42:58 +01:00
Jakub Konka
35bd5363ee
aarch64: implement isNull() for non-pointer optionals
2022-11-08 13:42:58 +01:00
Jakub Konka
0de56d1722
aarch64: partially implement optionalPayload()
2022-11-08 13:42:58 +01:00
Jakub Konka
cd7cbed651
aarch64: partially implement isNull()
2022-11-08 13:42:58 +01:00
Frank Denis
7d48cb1138
std.crypto: make ghash faster, esp. for small messages ( #13464 )
...
* std.crypto: make ghash faster, esp. for small messages
Aggregated reduction requires 5 additional multiplications (to
precompute the powers of H), in order to save 2 multiplications
per batch.
So, only use large batches when it's actually interesting to do so.
For the last blocks, reuse the precomputations in order to perform
a single reduction.
Also, even in .ReleaseSmall, allow 2-block aggregation.
The speedup is worth it, and the code increase is reasonable.
And in .ReleaseFast, bump the upper batch size up to 16.
Leverage comptime by the way instead of duplicating code.
std/crypto/benchmark.zig on Apple M1:
Zig 0.10.0: 2769 MiB/s
Before: 6014 MiB/s
After: 7334 MiB/s
Normalize function names by the way.
* Change clmul() to accept the half to be processed
This avoids a bunch of truncate() calls.
* Add more ghash tests to check all code paths
2022-11-07 21:45:29 +01:00
Ganesan Rajagopal
88d2e4f66a
langref.html.in: Simplify printing types in examples
...
zig stdlib fmt has a formatter for types which prints the type name. So,
just use @TypeOf(type) instead of the longer @typeInfo(@TypeOf(type)).
2022-11-07 15:07:21 +02:00
Veikka Tuominen
dc128f403b
Merge pull request #13446 from Vexu/stage2-fixes
...
Stage2 bug fixes
2022-11-07 14:17:26 +02:00
Frank Denis
32563e6829
crypto.core.aes: process 6 block in parallel instead of 8 on aarch64 ( #13473 )
...
* crypto.core.aes: process 6 block in parallel instead of 8 on aarch64
At least on Apple Silicon, this is slightly faster than 8 blocks.
* AES: add parallel blocks for tigerlake, rocketlake, alderlake, zen3
2022-11-07 12:28:37 +01:00
Frank Denis
907f3ef887
crypto.salsa20: make the number of rounds a comptime parameter ( #13442 )
...
...instead of hard-coding it to 20.
- This is consistent with the ChaCha implementation
- NaCl and libsodium, that this API is designed to interop with,
also support 8 and 12 round variants. The 12 round variant, in
particular, provides the same security level as the 20 round variant,
but is obviously faster.
- scrypt currently uses its own non optimized version of Salsa, just
because it use 8 rounds instead of 20. This will help remove code
duplication.
No behavior nor public API changes. The Salsa20 and XSalsa20 still
represent the 20-round variant.
2022-11-06 23:52:41 +01:00
Jakub Konka
4c719ad338
Merge pull request #13463 from ziglang/fix-13056
...
macho: parse weak imports in tbd descriptors
2022-11-06 22:44:58 +01:00
r00ster91
b83e4d9656
std.os.linux.T: translate more MIPS values
...
This fixes the broken terminal for me and thus fixes #13198 .
2022-11-06 16:33:50 +02:00
Jakub Konka
72769f6cec
link-tests: add test case for parsing weak imports
2022-11-06 15:21:28 +01:00
Jakub Konka
351031b6c7
macho: parse weak symbols in tbds
...
However, we will treat them as standard imports rather than refs
to weak imports until I investigate more how it actually works
underneath.
2022-11-06 15:19:17 +01:00
Jay Petacat
694d8831c3
Revert "x86" CPU model (not arch) back to "i386"
...
PR #13101 recently renamed the "i386" architecture to "x86", and it
seems the specific CPU model got swept up in that. "x86" is an umbrella
term that describes a family of CPUs, and the "i386" is the oldest
supported model under that umbrella.
2022-11-06 13:39:03 +01:00
Jakub Konka
1aeef29733
coff: move relocation in its own module
2022-11-06 08:41:43 +01:00
Jakub Konka
5ef33e7c7e
Merge pull request #13459 from ziglang/issue-13457
...
macho: do not zero-out file if there are no nonzerofill sects
2022-11-06 08:39:13 +01:00
Jakub Konka
76fb3e0621
macho: do not zero-out file if there are no nonzerofill sects
...
If the `__DATA` segment comprises of only zerofill sections, do not
accidentally zero out all of file.
2022-11-06 00:36:27 +01:00
Jakub Konka
aaaa7df152
macho: add linker test case for issue 13457
2022-11-06 00:10:12 +01:00
delitako
c8a5ad6d9d
Improve doc comments for two functions ( #13456 )
...
* std.heap: fix function name in doc comment
* std.mem: document return value of `replace`
2022-11-05 22:55:50 +01:00
Ali Chraghi
aea617c60b
std.os: take advantage of the freebsd's copy_file_range
2022-11-05 15:43:39 -04:00
Veikka Tuominen
5d28d171df
Sema: adjust result type of anyerror field access
...
Closes #13448
2022-11-05 13:22:21 +02:00
Veikka Tuominen
ea48f06fc2
stage2: address of threadlocal variable is not comptime known
...
Closes #13215
2022-11-05 13:22:21 +02:00
Veikka Tuominen
f96748ebc1
Sema: coerce elements of array cat
...
Closes #13347
2022-11-05 13:22:21 +02:00
Jakub Konka
28288dcbbf
Merge pull request #13444 from ziglang/arm64-coff
...
aarch64,coff: lift-off!
2022-11-05 12:19:45 +01:00
Veikka Tuominen
f92e7bed7b
stage2: bitsize of packed struct should trigger backing int ty check
...
Closes #13398
2022-11-05 12:54:38 +02:00
Jakub Konka
165ae04a03
coff: use .x86 instead of .i386
2022-11-05 10:35:04 +01:00
Jakub Konka
59fa0499c9
coff: tentatively handle Obj in getImageBase() func
2022-11-05 10:15:01 +01:00
Jakub Konka
9618fdc8a2
coff: circumvent stage1 inference problems
2022-11-05 10:15:01 +01:00
Jakub Konka
83d89a05b7
coff: compile and link simple exit program on arm64
...
* make image base target dependent
* fix relocs to imports
2022-11-05 10:15:01 +01:00
Jakub Konka
205421c311
coff: implement handling of arm64-specific relocs
2022-11-05 10:15:00 +01:00
Jakub Konka
d80203b55d
coff: clean up relocation handling between x86 and arm64
2022-11-05 10:15:00 +01:00
Jakub Konka
53a9661c1a
coff: generate relocations for branch, GOT, direct refs
2022-11-05 10:15:00 +01:00
Jakub Konka
62ae365308
aarch64: implement airCall for COFF
2022-11-05 10:15:00 +01:00
Jakub Konka
1fe0b58942
aarch64: extract atom index for both COFF and MachO
2022-11-05 10:14:59 +01:00
Jakub Konka
df0212bf47
aarch64: handle register downgrading in truncRegister
2022-11-05 10:14:59 +01:00
Andrew Kelley
1d68045919
Merge pull request #13101 from alichraghi/o4
2022-11-05 02:34:24 -04:00
Andrew Kelley
e9a12491f6
CI: add stage3/stage4 determinism check
...
Makes sure that #12183 will not regress.
2022-11-04 20:33:37 -07:00
Veikka Tuominen
51b1083d66
stage2: fix onePossibleValue of empty unions and enums
...
Closes #13402
2022-11-04 23:13:50 +02:00
Veikka Tuominen
42db468dcb
Sema: make method call work with optionals and error unions
...
Closes #13414
2022-11-04 23:13:49 +02:00
Veikka Tuominen
35afa3fd8b
Sema: correct condition in validateArrayInit
...
Closes #13425
2022-11-04 23:13:49 +02:00
Veikka Tuominen
799a558e39
Sema: implement peer type resolution of function pointers and function bodies
...
Closes #13438
2022-11-04 23:13:49 +02:00
Veikka Tuominen
e6b3cb5043
Sema: detect division overflow
...
Closes #13434
2022-11-04 23:13:29 +02:00
Veikka Tuominen
986b7ce5b2
rename i386-linux-gnu to x86-linux-gnu
2022-11-04 16:41:23 +02:00
Veikka Tuominen
8c4faa5f3f
Merge pull request #13338 from Vexu/stage2-compile-errors
...
Improve some error messages
2022-11-04 16:04:31 +02:00
Micah Switzer
ea54c9a375
Sema: resolve lazy align in zirReify for union fields
...
Closes #13435
2022-11-04 15:48:08 +02:00
Jacob Young
cbed6bb085
Sema: make InferredErrorSet deterministic
...
Empirically, this `AutoHashMapUnmanaged` -> `AutoArrayHashMapUnmanaged`
change fixes all non-determinism in `ReleaseFast` build artifacts.
Closes #12183
2022-11-04 00:00:10 -04:00
Andrew Kelley
42755a1944
Merge pull request #13430 from ziglang/stack-probe-msvc
...
Miscellaneous arm64 windows fixes
2022-11-03 19:49:10 -04:00
Ali Chraghi
f5f1f8c666
all: rename i386 to x86
2022-11-04 00:09:27 +03:30