aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorIsaac Freund <isaac.freund@coil.com>2021-12-07 19:34:44 +0100
committerIsaac Freund <mail@isaacfreund.com>2021-12-10 23:09:02 +0100
commit175463d75dbde1e8e4c5a55159ab4e9446fd211c (patch)
tree523bb9e42429e97c288838ab42ee59e18edbaca0 /src/Sema.zig
parent47c309c34a23bcec9b3d72dade688965893614a4 (diff)
downloadzig-175463d75dbde1e8e4c5a55159ab4e9446fd211c.tar.gz
zig-175463d75dbde1e8e4c5a55159ab4e9446fd211c.zip
AstGen: implement @prefetch() builtin
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 89c6de2e0b..12578c56c5 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -1042,6 +1042,7 @@ fn zirExtended(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
.c_define => return sema.zirCDefine( block, extended),
.wasm_memory_size => return sema.zirWasmMemorySize( block, extended),
.wasm_memory_grow => return sema.zirWasmMemoryGrow( block, extended),
+ .prefetch => return sema.zirPrefetch( block, extended),
// zig fmt: on
}
}
@@ -11104,6 +11105,16 @@ fn zirWasmMemoryGrow(
return sema.fail(block, src, "TODO: implement Sema.zirWasmMemoryGrow", .{});
}
+fn zirPrefetch(
+ sema: *Sema,
+ block: *Block,
+ extended: Zir.Inst.Extended.InstData,
+) CompileError!Air.Inst.Ref {
+ const extra = sema.code.extraData(Zir.Inst.BinNode, extended.operand).data;
+ const src: LazySrcLoc = .{ .node_offset = extra.node };
+ return sema.fail(block, src, "TODO: implement Sema.zirPrefetch", .{});
+}
+
fn zirBuiltinExtern(
sema: *Sema,
block: *Block,
@@ -14231,6 +14242,7 @@ fn resolveTypeFields(sema: *Sema, block: *Block, src: LazySrcLoc, ty: Type) Comp
.float_mode => return sema.resolveBuiltinTypeFields(block, src, "FloatMode"),
.reduce_op => return sema.resolveBuiltinTypeFields(block, src, "ReduceOp"),
.call_options => return sema.resolveBuiltinTypeFields(block, src, "CallOptions"),
+ .prefetch_options => return sema.resolveBuiltinTypeFields(block, src, "PrefetchOptions"),
.@"union", .union_tagged => {
const union_obj = ty.cast(Type.Payload.Union).?.data;
@@ -14819,6 +14831,7 @@ fn typeHasOnePossibleValue(
.float_mode,
.reduce_op,
.call_options,
+ .prefetch_options,
.export_options,
.extern_options,
.type_info,
@@ -15032,6 +15045,7 @@ pub fn addType(sema: *Sema, ty: Type) !Air.Inst.Ref {
.float_mode => return .float_mode_type,
.reduce_op => return .reduce_op_type,
.call_options => return .call_options_type,
+ .prefetch_options => return .prefetch_options_type,
.export_options => return .export_options_type,
.extern_options => return .extern_options_type,
.type_info => return .type_info_type,