src/arch/riscv64/CodeGen.zig | 1900 +++++++++++++++++--------------- src/arch/riscv64/Encoding.zig | 221 +++- src/arch/riscv64/Lower.zig | 40 +- src/arch/riscv64/Mir.zig | 29 +- src/arch/riscv64/bits.zig | 40 +- src/arch/riscv64/encoder.zig | 25 + test/behavior/align.zig | 1 - test/behavior/array.zig | 12 +- test/behavior/basic.zig | 3 - test/behavior/bitcast.zig | 3 + test/behavior/byval_arg_var.zig | 1 - test/behavior/cast.zig | 25 +- test/behavior/enum.zig | 1 + test/behavior/error.zig | 1 - test/behavior/eval.zig | 5 +- test/behavior/for.zig | 5 - test/behavior/generics.zig | 2 - test/behavior/globals.zig | 1 - test/behavior/if.zig | 1 - test/behavior/inline_switch.zig | 1 - test/behavior/math.zig | 6 - test/behavior/nan.zig | 1 - test/behavior/optional.zig | 2 - test/behavior/packed-struct.zig | 4 +- test/behavior/pointers.zig | 3 - test/behavior/ptrcast.zig | 2 - test/behavior/reflection.zig | 1 + test/behavior/sizeof_and_typeof.zig | 1 - test/behavior/slice.zig | 12 - test/behavior/struct.zig | 4 + test/behavior/struct_contains_slice_of_itself.zig | 2 - test/behavior/switch.zig | 4 - test/behavior/this.zig | 1 + test/behavior/undefined.zig | 1 - test/behavior/union.zig | 3 + test/behavior/vector.zig | 1 - test/behavior/while.zig | 1 - test/behavior/widening.zig | 2 - 38 files changed, 1255 insertions(+), 1113 deletions(-)