CMakeLists.txt | 8 + lib/compiler/test_runner.zig | 39 +- lib/compiler_rt.zig | 6 +- lib/compiler_rt/addo.zig | 4 +- lib/compiler_rt/addoti4_test.zig | 3 + lib/compiler_rt/clear_cache.zig | 14 +- lib/compiler_rt/cmp.zig | 1 - lib/compiler_rt/common.zig | 7 +- lib/compiler_rt/comparedf2_test.zig | 1 - lib/compiler_rt/comparesf2_test.zig | 1 - lib/compiler_rt/count0bits.zig | 1 - lib/compiler_rt/divdf3.zig | 1 - lib/compiler_rt/divmodei4.zig | 4 +- lib/compiler_rt/fixint_test.zig | 1 - lib/compiler_rt/int.zig | 1 - lib/compiler_rt/memcpy.zig | 4 +- lib/compiler_rt/memmove.zig | 16 +- lib/compiler_rt/mulf3.zig | 4 +- lib/compiler_rt/rem_pio2_large.zig | 2 +- lib/compiler_rt/stack_probe.zig | 1 - lib/compiler_rt/suboti4_test.zig | 3 + lib/compiler_rt/udivmod.zig | 10 +- lib/compiler_rt/udivmodei4.zig | 5 +- lib/std/Io/Writer.zig | 4 + lib/std/Progress.zig | 5 +- lib/std/builtin.zig | 7 +- lib/std/elf.zig | 2 +- lib/std/fs/File.zig | 5 +- lib/std/math.zig | 93 +- lib/std/math/big/int_test.zig | 1 - lib/std/math/float.zig | 6 +- lib/std/math/log10.zig | 1 - lib/std/mem.zig | 7 +- lib/std/os/linux.zig | 1 - lib/std/start.zig | 59 +- lib/std/testing.zig | 1 + src/Compilation.zig | 2 +- src/InternPool.zig | 14 +- src/Sema.zig | 9 +- src/Type.zig | 2 +- src/Zcu.zig | 29 +- src/Zcu/PerThread.zig | 35 +- src/arch/aarch64/bits.zig | 2063 ------ src/arch/riscv64/CodeGen.zig | 10 +- src/arch/sparc64/CodeGen.zig | 4 +- src/arch/wasm/CodeGen.zig | 10 +- src/arch/x86_64/CodeGen.zig | 51 +- src/codegen.zig | 51 +- src/codegen/aarch64.zig | 194 + src/codegen/aarch64/Assemble.zig | 1653 +++++ src/codegen/aarch64/Disassemble.zig | 905 +++ src/codegen/aarch64/Mir.zig | 275 + src/codegen/aarch64/Select.zig | 10981 +++++++++++++++++++++++++++++ src/codegen/aarch64/abi.zig | 20 +- src/codegen/aarch64/encoding.zig | 11799 ++++++++++++++++++++++++++++++++ src/codegen/aarch64/instructions.zon | 1343 ++++ src/codegen/c.zig | 33 +- src/codegen/llvm.zig | 11 +- src/codegen/spirv.zig | 6 +- src/dev.zig | 41 +- src/link.zig | 1 + src/link/Coff.zig | 76 +- src/link/Dwarf.zig | 8 +- src/link/Elf/Atom.zig | 70 +- src/link/Elf/Thunk.zig | 15 +- src/link/Elf/ZigObject.zig | 10 +- src/link/Elf/relocation.zig | 24 +- src/link/Elf/synthetic_sections.zig | 75 +- src/link/MachO.zig | 3 +- src/link/MachO/Atom.zig | 100 +- src/link/MachO/Thunk.zig | 10 +- src/link/MachO/ZigObject.zig | 10 +- src/link/MachO/synthetic.zig | 95 +- src/link/aarch64.zig | 64 +- src/main.zig | 1 + src/target.zig | 18 +- test/behavior.zig | 4 +- test/behavior/abs.zig | 10 +- test/behavior/align.zig | 20 +- test/behavior/array.zig | 42 +- test/behavior/asm.zig | 9 +- test/behavior/atomics.zig | 25 +- test/behavior/basic.zig | 19 +- test/behavior/bit_shifting.zig | 3 +- test/behavior/bitcast.zig | 21 +- test/behavior/bitreverse.zig | 8 +- test/behavior/builtin_functions_returning_void_or_noreturn.zig | 1 - test/behavior/byteswap.zig | 75 +- test/behavior/call.zig | 19 +- test/behavior/cast.zig | 119 +- test/behavior/cast_int.zig | 7 +- test/behavior/comptime_memory.zig | 2 - test/behavior/const_slice_child.zig | 1 - test/behavior/decl_literals.zig | 3 +- test/behavior/defer.zig | 8 +- test/behavior/enum.zig | 28 +- test/behavior/error.zig | 41 +- test/behavior/eval.zig | 36 +- test/behavior/export_builtin.zig | 4 - test/behavior/field_parent_ptr.zig | 5 + test/behavior/floatop.zig | 86 +- test/behavior/fn.zig | 13 - test/behavior/for.zig | 20 - test/behavior/generics.zig | 19 +- test/behavior/globals.zig | 6 +- test/behavior/if.zig | 6 +- test/behavior/import_c_keywords.zig | 1 - test/behavior/inline_switch.zig | 11 +- test/behavior/int128.zig | 5 - test/behavior/int_comparison_elision.zig | 1 - test/behavior/ir_block_deps.zig | 1 - test/behavior/lower_strlit_to_vector.zig | 1 - test/behavior/math.zig | 72 +- test/behavior/maximum_minimum.zig | 22 +- test/behavior/member_func.zig | 2 - test/behavior/memcpy.zig | 5 +- test/behavior/memmove.zig | 3 - test/behavior/memset.zig | 7 - test/behavior/muladd.zig | 14 +- test/behavior/multiple_externs_with_conflicting_types.zig | 1 - test/behavior/nan.zig | 1 - test/behavior/null.zig | 6 +- test/behavior/optional.zig | 22 +- test/behavior/packed-struct.zig | 46 +- test/behavior/packed-union.zig | 6 +- test/behavior/packed_struct_explicit_backing_int.zig | 1 - test/behavior/pointers.zig | 13 +- test/behavior/popcount.zig | 5 +- test/behavior/ptrcast.zig | 19 - test/behavior/ptrfromint.zig | 3 - test/behavior/ref_var_in_if_after_if_2nd_switch_prong.zig | 1 - test/behavior/reflection.zig | 1 - test/behavior/return_address.zig | 2 +- test/behavior/saturating_arithmetic.zig | 17 +- test/behavior/select.zig | 5 +- test/behavior/shuffle.zig | 8 +- test/behavior/sizeof_and_typeof.zig | 3 - test/behavior/slice.zig | 24 +- test/behavior/src.zig | 1 - test/behavior/string_literals.zig | 6 +- test/behavior/struct.zig | 62 +- test/behavior/struct_contains_null_ptr_itself.zig | 1 - test/behavior/struct_contains_slice_of_itself.zig | 3 +- test/behavior/switch.zig | 33 +- test/behavior/switch_loop.zig | 16 +- test/behavior/switch_on_captured_error.zig | 2 + test/behavior/switch_prong_err_enum.zig | 2 +- test/behavior/switch_prong_implicit_cast.zig | 2 +- test/behavior/this.zig | 2 - test/behavior/threadlocal.zig | 3 - test/behavior/truncate.zig | 2 +- test/behavior/try.zig | 3 +- test/behavior/tuple.zig | 22 +- test/behavior/tuple_declarations.zig | 2 - test/behavior/type.zig | 9 +- test/behavior/type_info.zig | 6 +- test/behavior/typename.zig | 8 - test/behavior/undefined.zig | 4 - test/behavior/union.zig | 120 +- test/behavior/union_with_members.zig | 2 +- test/behavior/var_args.zig | 22 +- test/behavior/vector.zig | 98 +- test/behavior/void.zig | 1 - test/behavior/while.zig | 12 +- test/behavior/widening.zig | 5 - test/c_import/macros.zig | 12 - test/tests.zig | 38 +- 167 files changed, 28209 insertions(+), 3729 deletions(-)