From 175463d75dbde1e8e4c5a55159ab4e9446fd211c Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 7 Dec 2021 19:34:44 +0100 Subject: AstGen: implement @prefetch() builtin --- src/Sema.zig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/Sema.zig') 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, -- cgit v1.2.3