Cody Tapscott
bc33243650
stage2: Support modifiers in inline asm
...
These are supported using %[ident:mod] syntax. This allows requesting,
e.g., the "w" (32-bit) vs. "x" (64-bit) views of AArch64 registers.
See https://llvm.org/docs/LangRef.html#asm-template-argument-modifiers
2023-01-09 14:00:11 -07:00
Andrew Kelley
48798da29b
Merge pull request #13074 from topolarity/stage2-opt
...
stage2: Miscellaneous fixes to vector arithmetic and copy elision
2023-01-09 13:59:04 -07:00
Jakub Konka
84f5843178
Merge pull request #13495 from ziglang/macho-dsym
...
stage2: misc DWARF debug info fixes and additions for x86_64 and aarch64
2023-01-09 13:57:34 -07:00
Veikka Tuominen
c1fc15f913
llvm: implement packed unions
...
Closes #13340
2023-01-09 13:56:14 -07:00
Veikka Tuominen
6ea3d3e19f
Merge pull request #13446 from Vexu/stage2-fixes
...
Stage2 bug fixes
2023-01-09 13:52:37 -07:00
Veikka Tuominen
b511231f95
Merge pull request #13338 from Vexu/stage2-compile-errors
...
Improve some error messages
2023-01-09 13:48:34 -07:00
Micah Switzer
8d95b713c5
Sema: resolve lazy align in zirReify for union fields
...
Closes #13435
2023-01-09 13:48:15 -07:00
Nathan Bourgeois
ab4b538d91
Translate-C Remainder Macro Fix
2023-01-09 13:45:42 -07:00
Andrew Kelley
a0ac10d903
Merge pull request #13389 from jacobly0/fix-only-c
...
cbe: enough fixes for `-Donly-c` to be able to produce an executable
2022-11-02 14:11:31 -07:00
Joachim Schmidt
99b1eaaac4
Merge pull request #13404 from joachimschmidt557/stage2-aarch64
...
stage2 aarch64: enable printing test results in the test runner
2022-11-02 14:10:52 -07:00
Andrew Kelley
57caec8585
Merge pull request #13368 from jacobly0/fix-aarch64-c
2022-11-02 14:09:45 -07:00
Andrew Kelley
ef761c2cbc
Merge pull request #13360 from topolarity/comptime-bool-binops
...
Make `x and false` and `x or true` comptime-known
2022-10-30 22:11:44 -04:00
Jacob Young
a77d89afe3
behavior: enable fixed cbe tests
2022-10-30 15:38:50 -04:00
Cody Tapscott
ca332f57f7
stage2: Make x and false/x or true comptime-known
...
Same as preceding change, but for stage2.
2022-10-30 12:38:08 -07:00
Jacob Young
48a2783969
cbe: implement optional slice representation change
2022-10-29 05:58:41 -04:00
Andrew Kelley
c36eb4ede9
Merge pull request #13221 from topolarity/packed-mem
...
Introduce `std.mem.readPackedInt` and improve bitcasting of packed memory layouts
2022-10-28 21:15:16 -04:00
Evan Haas
c616141241
translate-c: Better support for division in macros
...
Perform C-style arithmetic conversions on operands to division operator
in macros
Closes #13162
2022-10-28 17:59:32 -04:00
Cody Tapscott
40b7792a4c
Enable bitcast test now that #13214 is resolved.
2022-10-28 12:41:15 -07:00
Cody Tapscott
3295fee911
stage2: Use mem.readPackedInt etc. for packed bitcasts
...
Packed memory has a well-defined layout that doesn't require
conversion from an integer to read from. Let's use it :-)
This change means that for bitcasting to/from a packed value that
is N layers deep, we no longer have to create N temporary big-ints
and perform N copies.
Other miscellaneous improvements:
- Adds support for casting to packed enums and vectors
- Fixes bitcasting to/from vectors outside of a packed struct
- Adds a fast path for bitcasting <= u/i64
- Fixes bug when bitcasting f80 which would clear following fields
This also changes the bitcast memory layout of exotic integers on
big-endian systems to match what's empirically observed on our targets.
Technically, this layout is not guaranteed by LLVM so we should probably
ban bitcasts that reveal these padding bits, but for now this is an
improvement.
2022-10-28 08:41:04 -07:00
Veikka Tuominen
6fc71835c3
value: properly hash null_value pointer
...
Closes #13325
2022-10-28 13:31:16 +03:00
Andrew Kelley
2991e4a454
Merge pull request #13288 from Vexu/opt-slice
...
Optimize size of optional slices (+ some fixes)
2022-10-27 22:09:17 -04:00
InKryption
bc72ae5e4e
Sema: Prevent coercion from tuple pointer to mutable slice.
...
Also fix some stdlib code affected by this.
Co-authored by: topolarity <topolarity@tapscott.me>
2022-10-27 22:00:47 -04:00
Veikka Tuominen
d03c47bf85
Sema: use runtime_value instead of creating allocs
2022-10-27 21:08:25 -04:00
Veikka Tuominen
b937a04560
Sema: check coerceInMemoryAllowed earlier in resolvePeerTypes
...
Closes #13310
2022-10-27 01:31:18 +03:00
Veikka Tuominen
4ac8ec4c5c
AstGen: fix refing inferred allocs
...
Closes #13285
2022-10-27 01:31:18 +03:00
Veikka Tuominen
4fc944dde8
translate-c: fix redefinition of label on left recursive comma operator
...
Closes #13239
2022-10-27 01:31:18 +03:00
Veikka Tuominen
78a7bb108a
llvm: handle namespace like packed structs
...
Closes #13159
Closes #13188
2022-10-27 01:31:18 +03:00
Veikka Tuominen
dd437ae399
stage2: optimize size of optional slices
2022-10-27 01:31:17 +03:00
Jacob Young
e20d2b3151
cbe: fix floating point builtins
2022-10-25 07:02:06 -04:00
Jacob Young
3d22327b23
cbe: enable test fixed by #13296
2022-10-25 05:43:00 -04:00
Jacob Young
94425fe46e
cbe: improve floating point type support
2022-10-25 05:22:55 -04:00
Jacob Young
6021edd7ce
cbe: add support for all float literals types
2022-10-25 05:22:55 -04:00
Jacob Young
54326cc554
cbe: implement field_parent_ptr
2022-10-25 05:11:29 -04:00
Jacob Young
361035fe7a
cbe: implement cmp_lt_errors_len
2022-10-25 05:11:29 -04:00
Jacob Young
ab468d57e3
cbe: implement packed structs
...
Sometimes you have to break a test to make progress :)
2022-10-25 05:11:29 -04:00
Jacob Young
1bab854868
cbe: implement 128-bit and fix smaller integer builtins
2022-10-25 05:11:29 -04:00
Jacob Young
8b6a3ba74e
cbe: fix typedef declaration order
2022-10-25 05:11:29 -04:00
Jacob Young
4765294ca4
cbe: get enough things working to support basic programs
...
* Enable advanced start support.
* Enable advanced test_runner support.
* Zig Language Reference's Hello World now works.
2022-10-25 05:11:29 -04:00
Jacob Young
912b84bbad
cbe: fix atomics
2022-10-25 05:11:29 -04:00
Jacob Young
6921b0a850
cbe: implement some float ops
2022-10-25 05:11:29 -04:00
Jacob Young
b48417aed2
cbe: misc fixes
2022-10-25 05:11:29 -04:00
Jacob Young
1dd4a6102f
cbe: implement global assembly
2022-10-25 05:11:29 -04:00
Jacob Young
e8bda9eb3a
cbe: implement ptr slice ptr
2022-10-25 05:11:29 -04:00
Jacob Young
87d432328e
cbe: implement aggregate_init of struct
2022-10-25 05:11:29 -04:00
Jacob Young
feb8f81cd9
cbe: canonicalize types that have the same C type when emitting typedefs
2022-10-25 05:11:29 -04:00
Jacob Young
5eafc10bf4
cbe: fix global access fix
2022-10-25 05:11:29 -04:00
Jacob Young
c126a1018e
cbe: implement more asm features
2022-10-25 05:11:28 -04:00
Jacob Young
a12535f501
cbe: fix global access
2022-10-25 05:11:28 -04:00
Jacob Young
f399dd107a
cbe: implement tag name
2022-10-25 05:11:28 -04:00
Jacob Young
40b5bb7161
cbe: fix loads and stores of 0-bit types
2022-10-25 05:11:28 -04:00