LemonBoy
c5cc6b7082
compiler-rt: Export __extendhftf2 and __trunctfhf2
...
Even though LLVM12 doesn't make use of those intrinsics at the moment
let's export them anyway.
2021-04-21 19:02:13 +02:00
LemonBoy
e0d7cfce5f
compiler-rt: Don't re-define PPC builtins in test mode
...
Prevent linking errors when `zig test`-ing the compiler_rt module for
powerpc-linux triples.
2021-04-21 19:00:57 +02:00
LemonBoy
89d0cc4d8c
test: Add 32bit PowerPC to the test plan
...
Since MIPS is temporarily out of order due to some issues with LLD let's
add PPC32 to have at least one big-endian platform in the testing plan.
2021-04-21 16:31:30 +02:00
LemonBoy
e4f9a3041a
std: Use stat definition with 32bit *time fields
...
We're not ready for Y38K yet.
2021-04-21 16:31:30 +02:00
LemonBoy
d82eb8dd40
std: Split syscall parameters for PowerPC targets
2021-04-21 16:31:29 +02:00
Andrew Kelley
d10ec6e70d
AstGen: slightly better eager-allocating heuristic
...
Some early ensureCapacity calls to avoid needless reallocations.
2021-04-20 22:16:45 -07:00
Jakub Konka
c8753aceef
macho: fix typos in consts defs
2021-04-21 06:49:34 +02:00
Andrew Kelley
a1ac2b95bb
AstGen: implement union decls
2021-04-20 21:48:18 -07:00
Andrew Kelley
971f3d95f9
AstGen: implement size zero inferred length arrays
2021-04-20 18:32:43 -07:00
Andrew Kelley
c69a95f64b
AstGen: fix store_to_block_ptr elision for switch statements
...
to make sure it matches the expected block
2021-04-20 17:58:04 -07:00
Andrew Kelley
a008fb0a71
std.fs: delete unused label
...
stage2 starting to catch problems with the standard library :)
2021-04-20 17:57:35 -07:00
Andrew Kelley
e9477048e5
AstGen: implement for loop payload
2021-04-20 17:52:35 -07:00
Andrew Kelley
30c9808391
AstGen: implement anytype parameters
2021-04-20 17:38:06 -07:00
Andrew Kelley
a62db38d90
AstGen: implement defer for break
2021-04-20 17:04:11 -07:00
Andrew Kelley
458c4b6fc6
AstGen: implement defer for continue
2021-04-20 17:04:11 -07:00
Andrew Kelley
a59bcae59f
AstGen: basic defer implementation
2021-04-20 17:04:11 -07:00
jacob gw
b4aec0e31d
stage2: make std.fmt.parseInt ignore _
2021-04-20 17:08:05 -04:00
jacob gw
6b944492b5
stage2: fix compile error in codegen
2021-04-20 17:08:05 -04:00
Michael Dusan
0c6dfa6f0c
target: drop ppc32 and prefer ppc
...
- original PR #7949 (incorrectly) patched a generated-file and changes
have subsequently been lost/overwritten
- fix #7947 in a different way: drop `ppc32` because `ppc` already exists
2021-04-20 16:19:59 -04:00
Andrew Kelley
b4baa9eda2
AstGen: try fixups
...
Primarily this required fixing `setCondBrPayloadElideBlockStorePtr` to
not assume there would always be two `store_to_block_ptr` instructions
in each of the condbr prongs.
2021-04-20 11:16:50 -07:00
Frank Denis
10f2d62789
std/crypto: use finer-grained error sets in function signatures ( #8558 )
...
std/crypto: use finer-grained error sets in function signatures
Returning the `crypto.Error` error set for all crypto operations
was very convenient to ensure that errors were used consistently,
and to avoid having multiple error names for the same thing.
The flipside is that callers were forced to always handle all
possible errors, even those that could never be returned by a
function.
This PR makes all functions return union sets of the actual errors
they can return.
The error sets themselves are all limited to a single error.
Larger sets are useful for platform-specific APIs, but we don't have
any of these in `std/crypto`, and I couldn't find any meaningful way
to build larger sets.
2021-04-20 19:57:27 +02:00
Andrew Kelley
1e06a74348
Merge pull request #8542 from LemonBoy/floating-point-is-hard-my-dude
...
Floating point is hard my dude
2021-04-20 13:28:03 -04:00
jacob gw
ee3c1c763c
stage2: astgen try
2021-04-20 13:16:08 -04:00
Veikka Tuominen
2ca26ffde7
Merge pull request #8582 from LemonBoy/more-libc-impl
...
Improve the libc implementation
2021-04-20 19:54:16 +03:00
Jakub Konka
d64c76e8f1
zld: fix parsing of weak symbols
2021-04-20 16:55:32 +02:00
Jakub Konka
7bc6554a58
zld: map __DATA,__common as __DATA_CONST,__common
2021-04-20 16:55:32 +02:00
Jakub Konka
e5b83056ae
zld: resolve symbols as globals before resolving locals
2021-04-20 16:55:32 +02:00
Jakub Konka
8943a0aaaa
zld: dedup initializers and finalizers
2021-04-20 16:55:32 +02:00
Jakub Konka
3e73a3c29b
zld: treat priv extern as weak symbol
2021-04-20 16:55:32 +02:00
LemonBoy
a5a3ad5e10
c: Minor cleanup
...
* Remove superfluous "test_" prefix in test names
* Use aliased isNan everywhere
2021-04-20 15:44:54 +02:00
LemonBoy
a4e2539b09
c: Implement fmax and fmaxf
2021-04-20 15:44:21 +02:00
LemonBoy
fcfe25710b
c: Implement fmin and fminf
2021-04-20 15:43:46 +02:00
LemonBoy
c7c77fb1b0
c: Add tests for generic_fmod implementation
2021-04-20 15:43:01 +02:00
LemonBoy
be551d85b7
translate-c: Group field access LHS if necessary
2021-04-20 15:16:25 +03:00
Evan Haas
63304a871e
translate-c: group LHS of array access if necessary
2021-04-20 11:33:01 +03:00
Evan Haas
55e6bd10fe
translate-c: use transCreateNodeInfixOp for pointer arithmetic
2021-04-20 11:33:01 +03:00
Andrew Kelley
e315120b79
AstGen: implement array initialization expressions
2021-04-19 23:23:24 -07:00
Andrew Kelley
693dbeeef2
stage2: make @alignCast accept 2 parameters
...
It is not yet time to implement #5909 .
2021-04-19 18:46:45 -07:00
Andrew Kelley
4630e3891c
AstGen: implement inline asm output
2021-04-19 18:44:59 -07:00
Andrew Kelley
a136c093bf
zig astgen: print instruction counts and byte sizes
2021-04-19 16:23:05 -07:00
Andrew Kelley
7f931a7522
AstGen: implement error set decls
2021-04-19 16:03:46 -07:00
Andrew Kelley
2083208f19
AstGen: implement functions with inferred error sets
...
This commit also reclaims +2 ZIR instruction tags by moving the
following to `extended`:
* func_var_args
* func_extra
* func_extra_var_args
The following ZIR instruction tag is added:
* func_inferred
2021-04-19 15:03:41 -07:00
Andrew Kelley
22015c1b3b
std.MultiArrayList: ensureUnusedCapacity/ensureTotalCapacity
...
Same as c8ae581fef6506a8234cdba1355ba7f0f449031a, but for
MultiArrayList.
2021-04-19 15:02:37 -07:00
Isaac Freund
e2cc02717e
Fix .gitattributes rules that should be recursive
...
These are currently incorrect according to the gitattributes(5) and
gitignore(5) man pages. However, it seems github ended up treating them
as we intended due to a bug until recently when that bug was fixed.
2021-04-19 16:55:12 -04:00
Andrew Kelley
27d4bea9a4
AstGen: implement if optional, if error union
2021-04-19 12:25:16 -07:00
Andrew Kelley
3dadccec45
AstGen: implement while optional and while error union
2021-04-19 12:02:11 -07:00
Andrew Kelley
3f60481be4
AstGen: implement the remaining struct init ResultLoc forms
2021-04-19 11:09:00 -07:00
Hubert Jasudowicz
d605f02756
std: Add process_vm_readv/writev wrappers
2021-04-19 16:12:28 +02:00
Andrew Kelley
ae495de54d
AstGen: implement all the builtin functions
2021-04-18 22:38:41 -07:00
joachimschmidt557
fbda9991f4
stage2 codegen: Fix silent bug in reuseOperand
2021-04-17 20:57:26 -04:00