lib/compiler_rt.zig | 1 + lib/compiler_rt/divmodei4.zig | 50 + lib/compiler_rt/udivmodei4.zig | 4 +- src/Sema.zig | 2 +- src/Type.zig | 8 +- src/arch/x86_64/CodeGen.zig | 17304 +++++++++++++++++++++----------- src/arch/x86_64/Emit.zig | 68 +- src/arch/x86_64/Encoding.zig | 17 +- src/arch/x86_64/Lower.zig | 168 +- src/arch/x86_64/Mir.zig | 7 +- src/arch/x86_64/encodings.zig | 98 +- src/codegen.zig | 6 +- src/main.zig | 5 +- src/target.zig | 4 +- test/behavior/math.zig | 2 +- test/behavior/x86_64/build.zig | 5 + test/behavior/x86_64/math.zig | 180 +- test/behavior/x86_64/mem.zig | 149 +- test/cases/array_in_anon_struct.zig | 2 +- test/cases/compile_errors/addition_with_non_numbers.zig | 2 +- test/cases/compile_errors/asm_at_compile_time.zig | 2 +- test/cases/compile_errors/asm_output_to_const.zig | 2 +- test/cases/compile_errors/call_from_naked_func.zig | 2 +- test/cases/compile_errors/calling_function_with_naked_calling_convention.zig | 2 +- test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig | 2 +- test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig | 2 +- test/cases/compile_errors/compile_log.zig | 2 +- test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig | 2 +- test/cases/compile_errors/compile_time_division_by_zero.zig | 2 +- test/cases/compile_errors/compile_time_null_ptr_cast.zig | 2 +- test/cases/compile_errors/compile_time_undef_ptr_cast.zig | 2 +- test/cases/compile_errors/discarded_array_bad_elem_type.zig | 2 +- test/cases/compile_errors/duplicate_error_in_switch.zig | 2 +- test/cases/compile_errors/error_in_comptime_call_in_container_level_initializer.zig | 2 +- test/cases/compile_errors/error_not_handled_in_switch.zig | 2 +- test/cases/compile_errors/error_set_membership.zig | 2 +- test/cases/compile_errors/exact division failure.zig | 2 +- test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig | 2 +- test/cases/compile_errors/export_with_empty_name_string.zig | 2 +- test/cases/compile_errors/fieldParentPtr-non_pointer.zig | 2 +- test/cases/compile_errors/float exact division failure.zig | 2 +- test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig | 2 +- test/cases/compile_errors/function_prototype_with_no_body.zig | 2 +- test/cases/compile_errors/generic_instantiation_failure.zig | 2 +- test/cases/compile_errors/generic_instantiation_failure_in_generic_function_return_type.zig | 2 +- test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig | 2 +- test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig | 2 +- test/cases/compile_errors/int_to_err_non_global_invalid_number.zig | 2 +- test/cases/compile_errors/invalid_peer_type_resolution.zig | 2 +- test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig | 2 +- test/cases/compile_errors/leading_zero_in_integer.zig | 2 +- test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig | 2 +- test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig | 2 +- test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig | 2 +- test/cases/compile_errors/missing_main_fn_in_executable.zig | 2 +- test/cases/compile_errors/nested_error_set_mismatch.zig | 2 +- test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig | 2 +- test/cases/compile_errors/packed_struct_backing_int_wrong.zig | 2 +- test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig | 2 +- test/cases/compile_errors/private_main_fn.zig | 2 +- test/cases/compile_errors/ptrcast_to_non-pointer.zig | 2 +- test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig | 2 +- test/cases/compile_errors/reassign_to_array_parameter.zig | 2 +- test/cases/compile_errors/reassign_to_slice_parameter.zig | 2 +- test/cases/compile_errors/return_from_naked_function.zig | 2 +- test/cases/compile_errors/shlExact_shifts_out_1_bits.zig | 2 +- test/cases/compile_errors/shrExact_shifts_out_1_bits.zig | 2 +- test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig | 2 +- test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig | 2 +- test/cases/compile_errors/suspend_inside_suspend_block.zig | 2 +- test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig | 2 +- test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig | 2 +- test/cases/compile_errors/unreachable_else_prong_err_set.zig | 2 +- test/cases/compile_errors/unreachable_in_naked_func.zig | 2 +- test/cases/error_in_nested_declaration.zig | 2 +- test/cases/f32_passed_to_variadic_fn.zig | 2 +- test/cases/fn_typeinfo_passed_to_comptime_fn.zig | 2 +- test/cases/large_add_function.zig | 2 +- test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig | 2 +- test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig | 2 +- test/cases/llvm/for_loop.zig | 2 +- test/cases/llvm/hello_world.zig | 2 +- test/cases/llvm/large_slices.zig | 2 +- test/cases/llvm/optionals.zig | 2 +- test/cases/maximum_sized_integer_literal.zig | 2 +- test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig | 2 +- test/cases/safety/@alignCast misaligned.zig | 2 +- test/cases/safety/@enumFromInt - no matching tag value.zig | 2 +- test/cases/safety/@enumFromInt truncated bits - exhaustive.zig | 2 +- test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig | 2 +- test/cases/safety/@errorCast error not present in destination.zig | 2 +- test/cases/safety/@errorCast error union casted to disjoint set.zig | 2 +- test/cases/safety/@intCast to u0.zig | 2 +- test/cases/safety/@intFromFloat cannot fit - negative out of range.zig | 2 +- test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig | 2 +- test/cases/safety/@intFromFloat cannot fit - positive out of range.zig | 2 +- test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig | 2 +- test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig | 2 +- test/cases/safety/@ptrFromInt with misaligned address.zig | 2 +- test/cases/safety/@tagName on corrupted enum value.zig | 2 +- test/cases/safety/@tagName on corrupted union value.zig | 2 +- test/cases/safety/array slice sentinel mismatch vector.zig | 2 +- test/cases/safety/array slice sentinel mismatch.zig | 2 +- test/cases/safety/bad union field access.zig | 2 +- test/cases/safety/calling panic.zig | 2 +- test/cases/safety/cast []u8 to bigger slice of wrong size.zig | 2 +- test/cases/safety/cast integer to global error and no code matches.zig | 2 +- test/cases/safety/empty slice with sentinel out of bounds.zig | 2 +- test/cases/safety/exact division failure - vectors.zig | 2 +- test/cases/safety/exact division failure.zig | 2 +- test/cases/safety/for_len_mismatch.zig | 2 +- test/cases/safety/for_len_mismatch_three.zig | 2 +- test/cases/safety/ignored expression integer overflow.zig | 2 +- test/cases/safety/integer addition overflow.zig | 2 +- test/cases/safety/integer division by zero - vectors.zig | 2 +- test/cases/safety/integer division by zero.zig | 2 +- test/cases/safety/integer multiplication overflow.zig | 2 +- test/cases/safety/integer negation overflow.zig | 2 +- test/cases/safety/integer subtraction overflow.zig | 2 +- test/cases/safety/memcpy_alias.zig | 2 +- test/cases/safety/memcpy_len_mismatch.zig | 2 +- test/cases/safety/memset_array_undefined_bytes.zig | 2 +- test/cases/safety/memset_array_undefined_large.zig | 2 +- test/cases/safety/memset_slice_undefined_bytes.zig | 2 +- test/cases/safety/memset_slice_undefined_large.zig | 2 +- test/cases/safety/modrem by zero.zig | 2 +- test/cases/safety/modulus by zero.zig | 2 +- test/cases/safety/noreturn returned.zig | 2 +- test/cases/safety/optional unwrap operator on C pointer.zig | 2 +- test/cases/safety/optional unwrap operator on null pointer.zig | 2 +- test/cases/safety/out of bounds array slice by length.zig | 2 +- test/cases/safety/out of bounds slice access.zig | 2 +- test/cases/safety/pointer casting null to non-optional pointer.zig | 2 +- test/cases/safety/pointer casting to null function pointer.zig | 2 +- test/cases/safety/pointer slice sentinel mismatch.zig | 2 +- test/cases/safety/remainder division by zero.zig | 2 +- test/cases/safety/shift left by huge amount.zig | 2 +- test/cases/safety/shift right by huge amount.zig | 2 +- test/cases/safety/signed integer division overflow - vectors.zig | 2 +- test/cases/safety/signed integer division overflow.zig | 2 +- test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig | 2 +- test/cases/safety/signed integer not fitting in cast to unsigned integer.zig | 2 +- test/cases/safety/signed shift left overflow.zig | 2 +- test/cases/safety/signed shift right overflow.zig | 2 +- test/cases/safety/signed-unsigned vector cast.zig | 2 +- test/cases/safety/slice by length sentinel mismatch on lhs.zig | 2 +- test/cases/safety/slice by length sentinel mismatch on rhs.zig | 2 +- test/cases/safety/slice sentinel mismatch - floats.zig | 2 +- test/cases/safety/slice sentinel mismatch - optional pointers.zig | 2 +- test/cases/safety/slice slice sentinel mismatch.zig | 2 +- test/cases/safety/slice start index greater than end index.zig | 2 +- test/cases/safety/slice with sentinel out of bounds - runtime len.zig | 2 +- test/cases/safety/slice with sentinel out of bounds.zig | 2 +- test/cases/safety/slicing null C pointer - runtime len.zig | 2 +- test/cases/safety/slicing null C pointer.zig | 2 +- test/cases/safety/switch else on corrupt enum value - one prong.zig | 2 +- test/cases/safety/switch else on corrupt enum value - union.zig | 2 +- test/cases/safety/switch else on corrupt enum value.zig | 2 +- test/cases/safety/switch on corrupted enum value.zig | 2 +- test/cases/safety/switch on corrupted union value.zig | 2 +- test/cases/safety/unreachable.zig | 2 +- test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig | 2 +- test/cases/safety/unsigned shift left overflow.zig | 2 +- test/cases/safety/unsigned shift right overflow.zig | 2 +- test/cases/safety/unwrap error switch.zig | 2 +- test/cases/safety/unwrap error.zig | 2 +- test/cases/safety/value does not fit in shortening cast - u0.zig | 2 +- test/cases/safety/value does not fit in shortening cast.zig | 2 +- test/cases/safety/zero casted to error.zig | 2 +- test/cases/taking_pointer_of_global_tagged_union.zig | 2 +- test/cases/union_unresolved_layout.zig | 2 +- test/src/Cases.zig | 4 + 172 files changed, 12077 insertions(+), 6311 deletions(-)