lib/compiler/test_runner.zig | 48 +- src/arch/riscv64/CodeGen.zig | 5869 ++++++++++++++++++++------------ src/arch/riscv64/Emit.zig | 21 +- src/arch/riscv64/Encoding.zig | 574 +++- src/arch/riscv64/Lower.zig | 353 +- src/arch/riscv64/Mir.zig | 140 +- src/arch/riscv64/abi.zig | 156 +- src/arch/riscv64/bits.zig | 128 +- src/arch/riscv64/encoder.zig | 28 +- src/codegen/llvm.zig | 2 - src/link/Elf.zig | 3 +- src/link/Elf/Atom.zig | 63 +- src/link/Elf/ZigObject.zig | 5 +- src/target.zig | 17 + test/behavior/abs.zig | 8 +- test/behavior/align.zig | 8 - test/behavior/alignof.zig | 2 - test/behavior/array.zig | 19 - test/behavior/basic.zig | 17 - test/behavior/bitcast.zig | 5 - test/behavior/byteswap.zig | 1 + test/behavior/byval_arg_var.zig | 1 - test/behavior/call.zig | 6 - test/behavior/cast.zig | 54 - test/behavior/comptime_memory.zig | 4 - test/behavior/defer.zig | 3 - test/behavior/empty_union.zig | 4 - test/behavior/enum.zig | 5 - test/behavior/error.zig | 26 +- test/behavior/eval.zig | 16 - test/behavior/extern.zig | 2 - test/behavior/floatop.zig | 13 - test/behavior/fn.zig | 19 - test/behavior/fn_delegation.zig | 1 - test/behavior/for.zig | 14 - test/behavior/generics.zig | 10 - test/behavior/globals.zig | 2 - test/behavior/if.zig | 2 - test/behavior/incomplete_struct_param_tld.zig | 1 - test/behavior/inline_switch.zig | 8 - test/behavior/ir_block_deps.zig | 1 - test/behavior/lower_strlit_to_vector.zig | 1 - test/behavior/math.zig | 14 - test/behavior/member_func.zig | 2 - test/behavior/memset.zig | 5 - test/behavior/merge_error_sets.zig | 1 - test/behavior/nan.zig | 1 - test/behavior/null.zig | 3 - test/behavior/optional.zig | 10 - test/behavior/packed-struct.zig | 4 - test/behavior/pointers.zig | 6 - test/behavior/prefetch.zig | 1 - test/behavior/ptrcast.zig | 3 - test/behavior/ptrfromint.zig | 5 - test/behavior/ref_var_in_if_after_if_2nd_switch_prong.zig | 1 - test/behavior/return_address.zig | 1 - test/behavior/sizeof_and_typeof.zig | 5 - test/behavior/slice.zig | 20 - test/behavior/struct.zig | 40 - test/behavior/struct_contains_null_ptr_itself.zig | 1 - test/behavior/struct_contains_slice_of_itself.zig | 2 - test/behavior/switch.zig | 41 +- test/behavior/this.zig | 1 - test/behavior/try.zig | 2 - test/behavior/tuple.zig | 8 - test/behavior/type.zig | 2 - test/behavior/undefined.zig | 1 - test/behavior/underscore.zig | 1 - test/behavior/union.zig | 8 - test/behavior/var_args.zig | 10 - test/behavior/vector.zig | 2 +- test/behavior/void.zig | 1 - test/behavior/while.zig | 4 - test/behavior/widening.zig | 2 - 74 files changed, 4762 insertions(+), 3106 deletions(-)