diff options
Diffstat (limited to 'source/slang/ir.cpp')
| -rw-r--r-- | source/slang/ir.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/source/slang/ir.cpp b/source/slang/ir.cpp index ce587aec5..4a0a371d8 100644 --- a/source/slang/ir.cpp +++ b/source/slang/ir.cpp @@ -2723,6 +2723,41 @@ namespace Slang return inst; } + IRInst* IRBuilder::emitBindGlobalExistentialSlots( + UInt argCount, + IRInst* const* args) + { + auto inst = createInstWithTrailingArgs<IRInst>( + this, + kIROp_BindGlobalExistentialSlots, + getVoidType(), + 0, + nullptr, + argCount, + args); + addInst(inst); + return inst; + } + + IRDecoration* IRBuilder::addBindExistentialSlotsDecoration( + IRInst* value, + UInt argCount, + IRInst* const* args) + { + auto decoration = createInstWithTrailingArgs<IRDecoration>( + this, + kIROp_BindExistentialSlotsDecoration, + getVoidType(), + 0, + nullptr, + argCount, + args); + + decoration->insertAtStart(value); + + return decoration; + } + IRInst* IRBuilder::emitExtractTaggedUnionTag( IRInst* val) { |
