commit fe0fb93fa04bf4767058cc7046100f3c4f33b3d4 (tree)
parent 1de2d2ee1c70dfd01dc8b161af53ce188e84b1d0
Author: Robin Voetter <robin@voetter.nl>
Date: Sat, 8 Apr 2023 15:05:29 +0200
spirv: deny global OpVariable in inline asm
This feature requires to be integrated with the mechanism that orders the
global variables, and that is not yet in place.
Diffstat:
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/codegen/spirv/Assembler.zig b/src/codegen/spirv/Assembler.zig
@@ -444,8 +444,12 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue {
.OpExecutionMode, .OpExecutionModeId => &self.spv.sections.execution_modes,
.OpVariable => switch (@intToEnum(spec.StorageClass, operands[2].value)) {
.Function => &self.func.prologue,
- // TODO: Emit a decl dependency
- else => &self.spv.sections.types_globals_constants,
+ else => {
+ // This is currently disabled because global variables are required to be
+ // emitted in the proper order, and this should be honored in inline assembly
+ // as well.
+ return self.todo("global variables", .{});
+ },
},
// Default case - to be worked out further.
else => &self.func.body,