lib/std/Target.zig | 3 +- lib/std/spirv.zig | 30 ++ src/Sema.zig | 71 +++- src/codegen/spirv/Assembler.zig | 160 +++++++++- src/codegen/spirv/CodeGen.zig | 551 +++++++++++++++++++------------- src/link/SpirV.zig | 9 +- src/link/SpirV/BinaryModule.zig | 2 +- test/behavior/spirv.zig | 9 + test/cases/compile_errors/loading_spirv_runtime_array_value.zig | 4 +- test/cases/compile_errors/spirv_c_constraint_errors.zig | 33 ++ test/cases/compile_errors/spirv_cannot_call_function_pointer.zig | 13 + test/cases/compile_errors/spirv_extern_var_addrspace.zig | 11 + test/cases/compile_errors/spirv_pointer_cast_requires_offset_zero.zig | 20 ++ test/cases/compile_errors/spirv_unsupported_float_width.zig | 16 + 14 files changed, 690 insertions(+), 242 deletions(-)