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
Andrew Woloszyn
cfeac48a37
Removed the ambiguity in the API for cleaning input vs output data.
...
Previous the api used spv_text_t and spv_binary_t for both input
and output, but depending on the usage, you either MUST
call spvBinaryDestroy or you MUST NOT call spvBinaryDestroy on the
pointer.
2015-10-26 12:54:39 -04:00
David Neto
cac38f92dd
Simplify uses of spvBinaryDestroy in tests
...
Always try to destroy the binary during common methods
of test fixtures. This is safe if no other code in the test
attempted to destroy the binary.
Take advantage of the fact spvBinaryDestroy is a no-op on a nullptr,
by eliminating the null pointer check in the caller.
2015-10-26 12:54:39 -04:00
David Neto
ac6f71b2de
spvTextDestroy is no-op on nullptr.
2015-10-26 12:54:39 -04:00
David Neto
a71138372e
Fix spvBinaryDestroy test to use an API-created object
2015-10-26 12:54:39 -04:00
David Neto
b6a8898fa5
Enable OpcodeMake test, by sampling values.
...
The previous version of the test was disabled, presumably
because it took to long to run.
2015-10-26 12:54:39 -04:00
David Neto
f4fd780654
spvBinaryDestroy(nullptr) is a no-op.
2015-10-26 12:54:39 -04:00
David Neto
c9b5152b4f
Remove spvOpcodeIsVariable
...
Nothing was using it.
2015-10-26 12:54:39 -04:00
David Neto
a12c2240bc
Fix -p on disassembler.
...
spvTextToBinary fails if printing option is on
*and* you send in a non-null pointer-to-spv_text.
2015-10-26 12:54:39 -04:00
Dejan Mircevski
1a3990233c
Add hex-format tests for !<integer>.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
ea5a2a5242
Add invalid-operand tests for !<integer>.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
a4b834e456
Make all SpirvVectors const in ImmediateInt.cpp.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
d8454a7967
Tests for parsing recognizable words after !<integer>.
2015-10-26 12:52:01 -04:00
David Neto
f58d8c0965
Add disabled test to check float value parsing
...
Disabled for now because float parsing is broken.
2015-10-26 12:52:01 -04:00
David Neto
ec5f82082f
Remove SPV_OPERAND_TYPE_ELLIPSIS
2015-10-26 12:52:01 -04:00
Andrew Woloszyn
46ba0f7574
Added option to only compile spirv library instead of all binaries as well
2015-10-26 12:52:01 -04:00
David Neto
c978643748
Print diagnostics at the beginning of input.
...
A spv_diagnostic_t value knows if the source is textual rather
than binary.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
e75b3e769d
Avoid "operands" in the !<immediate> explanation.
...
Also declare "!<integer> = OpCode" legal.
2015-10-26 12:52:01 -04:00
David Neto
abeab6e51c
Document current support and known bugs.
2015-10-26 12:52:01 -04:00