diff options
Diffstat (limited to 'externals/sirit/src/instructions/debug.cpp')
-rw-r--r-- | externals/sirit/src/instructions/debug.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/externals/sirit/src/instructions/debug.cpp b/externals/sirit/src/instructions/debug.cpp new file mode 100644 index 0000000000..1ca3462654 --- /dev/null +++ b/externals/sirit/src/instructions/debug.cpp @@ -0,0 +1,36 @@ +/* This file is part of the sirit project. + * Copyright (c) 2019 sirit + * This software may be used and distributed according to the terms of the + * 3-Clause BSD License + */ + +#include "sirit/sirit.h" + +#include "common_types.h" +#include "stream.h" + +namespace Sirit { + +Id Module::Name(Id target, std::string_view name) { + debug->Reserve(3 + WordsInString(name)); + *debug << spv::Op::OpName << target << name << EndOp{}; + return target; +} + +Id Module::MemberName(Id type, u32 member, std::string_view name) { + debug->Reserve(4 + WordsInString(name)); + *debug << spv::Op::OpMemberName << type << member << name << EndOp{}; + return type; +} + +Id Module::String(std::string_view string) { + debug->Reserve(3 + WordsInString(string)); + return *debug << OpId{spv::Op::OpString} << string << EndOp{}; +} + +Id Module::OpLine(Id file, Literal line, Literal column) { + debug->Reserve(4); + return *debug << spv::Op::OpLine << file << line << column << EndOp{}; +} + +} // namespace Sirit |