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
e470cf361f
cbe: update test cases
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
15df64ade8
std: add cbe hacks to more targets
...
These are needed because clang doesn't support anything in naked
functions, not even assembly register inputs.
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
65a48df532
cbe: fix globals that reference functions
...
Global constant initializers can reference functions, so forward declare
the constants and initialize them later with the function definitions,
which guarantees that they appear after all declarations.
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
3d90ee50ff
cbe: allow immediate and register asm constraints in naked functions
2022-10-25 05:11:29 -04:00
Jacob Young
4fdac5f1c9
cbe: fix C syntax when rendering initializers
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
Jacob Young
962f33ee11
cbe: implement airUnionInit
2022-10-25 05:11:28 -04:00
Jacob Young
6a4266d62a
cbe: fix infinite recursion on recursive types
2022-10-25 05:11:28 -04:00
Jacob Young
7c9a9a0fd4
cbe: cleanup code and fix cases test breakage
2022-10-25 05:11:28 -04:00
Jacob Young
525dcaecba
behavior: enable stage2_c tests that are currently passing
...
Also fix C warnings triggered by these tests.
2022-10-25 05:11:28 -04:00
Jacob Young
45c667eb21
behavior: fix redefined exports
2022-10-25 05:11:28 -04:00
Jacob Young
e875530f8f
c: improve lowering of undef values
...
All remaining behavior test -Wall -Wextra warnings are unused (but set)
warnings.
2022-10-25 05:11:28 -04:00
Jacob Young
5ae3ac9c43
c: fix redefinition of typedef warnings
...
Closes #11651
2022-10-25 05:11:28 -04:00
Jacob Young
f81651932a
c: hacks to fix incompatible redeclaration of library function warnings
2022-10-25 05:11:28 -04:00
Jacob Young
f8a8197caa
c: fix incompatible pointer types warning
2022-10-25 05:11:28 -04:00
Jacob Young
3b501b2d81
c: cast NULL in advance to avoid comparison warnings
2022-10-25 05:11:28 -04:00
Jacob Young
497329622a
c: fix nonscalar type cast warning
2022-10-25 05:11:28 -04:00
Jacob Young
72e2fc4c73
c: fix stage1 compatibility
2022-10-25 05:11:28 -04:00
Jacob Young
0092f6ed88
c: fix int literal warnings
2022-10-25 05:11:28 -04:00
Jacob Young
61bf43d790
c: fix switch on bool warning
2022-10-25 05:11:28 -04:00
Jacob Young
da939b032e
c: fix empty container warnings
2022-10-25 05:11:28 -04:00
Jacob Young
6f3654ad69
c: implement @errorName
2022-10-25 05:11:28 -04:00
Jacob Young
c8d0e71de6
c: fix mangling of error names
...
Closes #12751
2022-10-25 05:11:28 -04:00
Jacob Young
ab024d3524
c: fix undefined tests in ReleaseSafe
2022-10-25 05:11:28 -04:00
Jacob Young
458233a684
fmt: fix f80 hex formatting
...
These ifs were missing a case for f80 which should have shifted by one,
but we can just compute the correct value instead. Also, we want the
fractional bits to be a multiple of four, not the mantissa bits, since
the mantissa could have a leading one which we want to be separated.
2022-10-25 05:06:54 -04:00
Andrew Kelley
b3cd38ea4a
link: add an explicit error set for flush() and flushModule()
...
This makes it easier to understand how control flow should happen in
various cases; already just by doing this it is revealed that
UndefinedSymbol and UndefinedSymbolReference should be merged, and that
MissingMainEntrypoint should be removed in favor of the ErrorFlags
mechanism thath we already have for missing the main entrypoint.
The main motivation for this change, however, is preventing a compile
error when there is conditional compilation inside linker
implementations, causing the flush() error set to depend on compilation
options. With this change, the error set is fixed, and, notably, the
`-Donly-c` flag no longer has compilation errors due to this error set.
2022-10-24 23:30:57 -07:00
Andrew Kelley
4f04759c87
build: add -Donly-c option
...
This option can be used to produce a C backend build of the self-hosted
compiler, which only has the C backend enabled. Once the C backend is
capable of self-hosting, this will be a way for us to replace our stage1
codebase with a C backend build of self-hosted, which we can then use
for bootstrapping. See #5246 for more details.
Using this option right now results in a crash because the C backend is
not yet passing all the behavior tests.
2022-10-23 20:05:12 -07:00
Jakub Konka
828735ac03
macho: handle majority of DW_FORM_ values for DWARF4 in the linker
2022-10-23 21:53:36 +02:00
Andrew Kelley
04472af328
Merge pull request #13251 from Vexu/c-abi
...
implement ARM C ABI, separate C ABI tests from standalone tests
2022-10-23 12:16:58 -07:00
Andrew Kelley
a3033c7bd9
Merge pull request #13267 from ziglang/macho-threaded-sha256
...
link.MachO: multi-thread first round of sha256 hashing
2022-10-23 11:35:03 -07:00