David Neto
388c40d9c6
Generalize spvOperandTableNameLookup to take string length.
...
This is preparation for parsing mask expressions.
2015-10-26 12:55:33 -04:00
Dejan Mircevski
e3a19c0d63
Forbid !<integer> preceding or succeeding '='.
2015-10-26 12:55:33 -04:00
David Neto
b30a0c529b
Assembler test for Dim, ImageFormat enums.
...
Adds SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT, and the
translation tables for its values from the spv::ImageFormat values.
2015-10-26 12:55:33 -04:00
David Neto
8382de2670
Document inability to use names from 3.12, 1.13
...
You can't use names from 3.12 Image Channel Order and
3.13 Image Channel Data Type since in the intstruction grammar,
they are only used as return values, but never named arguments
to instructions.
2015-10-26 12:55:33 -04:00
David Neto
f7ee0ca5da
Use generalized EnumCase in AccessQualifier assembly tests
...
This is in preparation for coming tests that will also
use the templated EnumCase instead of making their
own structs.
Also reformat AccessQualifier test.
2015-10-26 12:55:33 -04:00
Dejan Mircevski
ba569fb1aa
Handle IDs among !<integer> operands.
2015-10-26 12:55:33 -04:00
David Neto
5f33d31d89
Assembler test for SamplerAddressingMode, SamplerFilterMode
...
Uses OpConstantSampler instruction.
2015-10-26 12:55:33 -04:00
David Neto
5494dd4334
Assembler test for Storage Class enum values
...
This covers the storage classes in SPIR-V Rev31. Rev32 has more.
2015-10-26 12:55:33 -04:00
Lei Zhang
b41d150b7f
Support multiple word literal numbers as constants.
...
Add a new operand type SPV_OPERAND_TYPE_MULTIWORD_LITERAL_NUMBER
to represent those operands that can expand into multiple words.
Now only OpConstant and OpSpecConstant have such kind of operand.
2015-10-26 12:55:33 -04:00
David Neto
cebad036f7
Update CHANGES and Future Work
2015-10-26 12:55:33 -04:00
David Neto
fadbf6220e
Assembler test for ExecutionScope, with OpGroupIAdd
...
Use spvOperandTypeStr to generalize the error message
for failure to parse an ID.
Extend spvOperandTypeStr to cover SPV_OPERAND_TYPE_EXECUTION_SCOPE.
2015-10-26 12:55:33 -04:00
David Neto
abe51c4142
Assembler test for OpTypePipe
...
Covers all AccessQualifier enums.
In Rev32, OpTypePipe no longer has a type argument.
Added TODOs for this.
2015-10-26 12:55:33 -04:00
David Neto
4a29131dcd
Assembler test for single-valued Memory Access flag.
2015-10-26 12:55:33 -04:00
David Neto
f4fde6c60d
Assembler test for single-valued FunctionControl mask
...
Fixed name of "Inline" enumerant.
Support for combinations of function control masks should come later.
2015-10-26 12:55:33 -04:00
Lei Zhang
97afd5c03c
Remove useless variable.
2015-10-26 12:55:33 -04:00
David Neto
c0b32ecb54
Assembler test for single-valued LoopControl mask
...
Support for combining masks should come later.
2015-10-26 12:55:33 -04:00
David Neto
ad18c77ac9
Assembler test for single-valued SelectionControl mask
...
Support for combining masks should come later.
2015-10-26 12:55:33 -04:00
David Neto
d7aa15ff16
Clarify the syntax. Some named enumerants are unusable
...
You can't use a named enumerant if it's only meaningful
in an operand supplied as an ID to a target instruction.
The place where you'd use the name is something like an
OpConstant, but there's not enough context to bring those
names into scope, unless you're willing to tolerate
potential collisions.
Occurs for the names in:
- 3.25 Memory Semantics
- 3.27 Scope ID
- 3.29 Kernel Enqueue Flags
- 3.30 Kernel Profiling Info
2015-10-26 12:55:33 -04:00
Lei Zhang
41bf0733c6
Simplify code for handling literals in disassembler.
2015-10-26 12:55:33 -04:00
David Neto
2136ff70cc
Move the syntax description into its own file
2015-10-26 12:55:33 -04:00
David Neto
c09932eb1e
Add patch for generating opcode.inc syntax table.
2015-10-26 12:55:33 -04:00
Lei Zhang
a94701db39
Run clang-format.
2015-10-26 12:55:33 -04:00
David Neto
e8e3712c3b
Assembler test for OpExecutionMode
2015-10-26 12:55:33 -04:00
David Neto
f6498bfc73
Assembler test for OpEntryPoint
2015-10-26 12:55:33 -04:00
Dejan Mircevski
58fc88e2ee
Simplify format indication in CompileSuccesfully().
2015-10-26 12:55:33 -04:00
Lei Zhang
4005670363
Limit the use of spvCheck and spvCheckReturn to validator.
...
spvCheck is indeed just an if-statement. Defining such a macro
doesn't help much.
2015-10-26 12:55:33 -04:00
David Neto
7114ffea06
Update readme with latest news.
2015-10-26 12:55:33 -04:00
Lei Zhang
4e092d3ac3
Move bitwisecast.h to source/ and add include guard.
2015-10-26 12:55:33 -04:00
David Neto
a48678ab92
Fix an infinite loop during message generation.
...
Rename getWord to spvGetWord and unit test it.
2015-10-26 12:55:33 -04:00
Lei Zhang
dbdf6e122c
Add option to change assembly syntax format in the dis tool.
2015-10-26 12:55:33 -04:00
Dejan Mircevski
f79519c926
Handle operands when OpCode is !<integer>.
2015-10-26 12:55:33 -04:00
David Neto
e994e2e283
Add TODO for capability dependencies for Rev32+
2015-10-26 12:55:33 -04:00
David Neto
4caa47c3d4
Assembler test for OpMemoryModel
2015-10-26 12:55:33 -04:00
Lei Zhang
29e667eb6c
Add library function parameter to set assembly format for disassembler.
2015-10-26 12:55:33 -04:00
Lei Zhang
65ae325774
Add option to change assembly syntax format in the as tool.
2015-10-26 12:55:33 -04:00
David Neto
c6402d64f4
Assembler tests for OpCapability.
...
Adds test file for instructions in the Mode-Setting section
of the SPIR-V spec.
2015-10-26 12:55:33 -04:00
David Neto
55bdfcb0bc
Assembler test for LinkageAttributes decorations
2015-10-26 12:54:39 -04:00
David Neto
37547b2304
Assembler tests for all decorations except Linkage attributes
...
Fixes typos in various parser tables.
Updates readme.md with the fixes.
2015-10-26 12:54:39 -04:00
Lei Zhang
e78a7c19ff
Run clang-format.
2015-10-26 12:54:39 -04:00
Lei Zhang
06efdc59e1
Add an API parameter to choose assembly syntax format for assembler.
...
Added a new enum for supported assembly syntax formats:
Canonical Assembly Format (CAF) and Assignment Assembly Format (AAF).
Updated assembler interface functions to support choice of assembly
syntax format.
2015-10-26 12:54:39 -04:00
Dejan Mircevski
92a225b371
Simplify checking for !<integer> first word.
2015-10-26 12:54:39 -04:00
David Neto
a08350a2c3
Assembler test for OpSourceExtension.
...
Add test utility function MakeVector(std::string) to encode
a string as a vector of 32-bit words, as per the SPIR-V literal
string encoding.
2015-10-26 12:54:39 -04:00
Andrew Woloszyn
4b4acded77
Added missing diagnostic when disassembling empty file.
...
Added diagnostic messages for what should be an internal failure
that never happens. I figure if we return "failed" for something the
user cannot control we should print a message for it.
2015-10-26 12:54:39 -04:00
David Neto
08d89bb7a5
Test assembly of OpSource using all language enums
...
Adds a file to test assembly of instructions in the "Debug" section
of the SPIR-V spec.
2015-10-26 12:54:39 -04:00
David Neto
09c2a4b3ec
Update CHANGES in the readme.md
2015-10-26 12:54:39 -04:00
David Neto
43f0e819c4
Avoid undefined pointer given to spvTextDestroy
...
The undefined pointer might get through to the call
to spvTextDestroy if the test fails on an earlier step.
In that case I just want to see the test failure, and
not a test failure followed by undefined behaviour.
2015-10-26 12:54:39 -04:00
Pyry Haulos
26b3b00887
Fix build on MSC
...
Visual C++ compiler doesn't allow ternary select where type depends on
condition even if there is a user-defined conversion operator to a common
type.
2015-10-26 12:54:39 -04:00
David Neto
c88dcd6a72
Add OpNop, OpUndef tests for spvTextToBinary
...
Add text_fixture::TextToBinaryTestBase::CompiledInstructions,
to more easily just examine the generated instructions by skipping
over the header.
Add spvtest::MakeInstruction utility function to easily generate
a vector containing an opcode and its operands.
2015-10-26 12:54:39 -04:00
Lei Zhang
574352c7a9
Fix interface function calls to the new API.
2015-10-26 12:54:39 -04:00
Lei Zhang
610c525865
Preserve float values during encoding and decoding roundtrip.
2015-10-26 12:54:39 -04:00