David Neto
c9a23a6fd5
Add binary-to-text test for single instruction
...
This is easier to debug!
Binary-to-text testing needs more tests, and more
specific tests. That's for future work.
2015-10-26 12:52:01 -04:00
David Neto
e7ee4c4476
Getting the next word respects quoting and escaping.
...
Use double quotes ("). They can be interspersed with
other whitespace characters, just like shell quoting.
A backslash (\) always escapes the next character.
The end of the stream always terminates the word.
Add AutoText struct to unit test utilities, to easily
make spv_text_t values and reference them as spv_text values.
2015-10-26 12:52:01 -04:00
Andrew Woloszyn
7951050a95
Had spriv-tools stay inside it's own directory.
...
In order to facilitate having a project depend on spirv-tools,
have spirv-tools not pollute any external builds.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
f184109d7b
Move ImmediateInt tests into their own file.
...
This is in preparation of adding many more tests in accordance with the
evolved spec.
Also sort the test-source lines in CMakeLists.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
95ec7284f7
Warn about !<integer> opcode in assignment format.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
73d7082245
Put test classes in anonymous namespace.
...
Put TestFixture.h classes in a namespace.
Remove unused #includes.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
ad7cefd80e
Clarify !<integer> behaviour in readme.md.
2015-10-26 12:52:01 -04:00
David Neto
574884cd7e
Getting the next word ends at a comment (;)
2015-10-26 12:52:01 -04:00
David Neto
e3f70b9a85
Combine parsing of ID and RESULT_ID operand types
2015-10-26 12:52:01 -04:00
David Neto
98290a243e
String literals must be quoted.
2015-10-26 12:52:01 -04:00
David Neto
affa696027
Fix some bugs in parsing literals.
...
- a single hyphen is a string, not a number.
- a string with more than one period is a string, not a number
- check for string overflow
Add some unit tests
2015-10-26 12:52:01 -04:00
David Neto
225baf88bc
Add SPV_FAILED_MATCH status code
...
This is for future use by the parser.
2015-10-26 12:52:01 -04:00
David Neto
8a3ce9b16b
Add enum values for instructions added after Rev31
2015-10-26 12:52:01 -04:00
Lei Zhang
5b73214223
Add GLSL std450 extended instruction 72-80.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
afdbd2d303
Add std450 instructions 53-64.
2015-10-26 12:52:01 -04:00
Lei Zhang
3cb589639d
Add GLSL std450 extended instruction 65-71.
2015-10-26 12:52:01 -04:00
David Neto
4799482787
Fix spelling of SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO
2015-10-26 12:52:01 -04:00
Lei Zhang
85d4d6d677
Add test for Modf and ModfStruct.
2015-10-26 12:52:01 -04:00
Lei Zhang
2d879b9334
Simplify macro names used for GLSL std450 extended instruction table.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
c48fcce978
Add std450 instructions 49-52.
2015-10-26 12:52:01 -04:00
Lei Zhang
dca65b3f8c
Reformat GLSL std450 extended instruction table.
...
Also add test for Smoothstep.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
c4ba8821e7
Add tests for Atan2 and Pow.
...
Fix a typo in "ParameterizedExtInst."
2015-10-26 12:52:01 -04:00
Lei Zhang
65bfc4d585
Unify tests for GLSL std450 extended instructions.
...
Previously we had two tests: one checks test to binary, the other
checks round trip. This patch merges the check in the former to
the latter.
2015-10-26 12:52:01 -04:00
Lei Zhang
e5ae7f677f
Add GLSL std450 instructions 35-48.
2015-10-26 12:52:01 -04:00
Lei Zhang
0e149d7cc4
Move tests for GLSL std450 instructions to a separate file.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
a5c171544b
Add std450 instructions 25-34.
2015-10-26 12:52:01 -04:00
Lei Zhang
902e5a8a52
Update readme about the "<result-id> = <opcode> <operand>..." format.
2015-10-26 12:52:01 -04:00
Lei Zhang
8a37520908
Disassemble in the format of "<result-id> = <opcode> <operand>..".
2015-10-26 12:52:01 -04:00
Kenneth Benzie
31e482cdf5
Merge branch 'google-catch-up' into 'master'
...
Google changes during GitLab outage
These are the changes made by Google during the GitLab outage last week.
See merge request !9
2015-09-02 05:49:42 -04:00
Kenneth Benzie
579c45d4a9
Merge branch 'capability-enumerant' into 'master'
...
Capability enumerant
See merge request !5
2015-08-27 03:58:08 -04:00
Kenneth Benzie
46c441c2ee
Merge branch 'fix-p-switch' into 'master'
...
Fix the '-p' command-line switch
(Fix for issue #1 )
The -p option of the SPIR-V disassembler does not print anything to stdout, contrarily to what the usage help says.
See merge request !8
2015-08-25 04:09:08 -04:00
Lei Zhang
abafd5e674
Only use '%' as variable name prefix.
...
Since now we can distinguish between def and use according to
the variable's location, there is no need to keep two variable
prefixes.
Also reformat tests to use the value generating instruction
format ("<result-id> = <opcode> <operand>..").
2015-08-24 15:05:11 -04:00
Lei Zhang
977e9bcfc6
Bugfix: report the correct location for wrong opcode.
...
Also add more tests for the "<result-id> = <opcode> <operand>.."
format.
2015-08-24 15:05:08 -04:00
Lei Zhang
ee87cc2a1e
Fix TextAdvance() problems involving whitespace around comment lines.
...
Fix the bug that TextAdvance() forgot to skip whitespace at the
beginning of the next line after a comment line.
Fix the bug that TextAdvanceLine() increase line number after going
over a character.
2015-08-24 15:05:05 -04:00
Andrew Woloszyn
2facab2d08
Added stream operators for spv_binary_t and std::vector<uint32_t>
2015-08-24 15:05:02 -04:00
Lei Zhang
dfc50086a6
Support "<result-id> = <opcode> <operand>.." format.
2015-08-24 15:04:58 -04:00
Andrew Woloszyn
0d350b5992
Make the disassembler print the Extended instruction name.
...
This allows the disassembled output to more closely follow the
original assembly.
2015-08-24 15:04:55 -04:00
Andrew Woloszyn
1d2a87ed1b
Added the initial set of glsl450 instructions.
...
Also rewrote the extended-instruction tests so that they would actually
make sure that the instruction actually appears in the output.
2015-08-24 15:04:49 -04:00
Lei Zhang
fb76d81aa0
Move test fixture into a separate header file so it can be reused.
2015-08-24 15:04:45 -04:00
Christopher Gautier
01024f57cb
Fix the '-p' command-line switch
2015-08-24 12:57:57 +02:00
Lei Zhang
7e75158c7f
Address new enumerants in enum Capability for rev 31.
2015-08-18 09:49:04 -04:00
Kenneth Benzie
67b649fa01
Merge branch 'update-header-to-rev31' into 'master'
...
Update external headers to rev 31
See merge request !3
2015-08-18 05:34:27 -04:00
Kenneth Benzie
b21da82999
Merge branch 'bitshift-parens' into 'master'
...
Bitshift parens
Parenthesize SPV_BIT macro to avoid surprises.
Adds LibspirvMacros.cpp unit test file.
See merge request !4
2015-08-18 05:31:23 -04:00
David Neto
f6184a8b37
Parenthesize SPV_BIT macro to avoid surprises.
2015-08-17 17:01:42 -04:00
Lei Zhang
604e5cea12
Update spirv.h to revision 31.
...
For enum Capability and enum Op, not all newly added enumerants are
registered into capabilityInfoEntries and opcodeTableEntries yet.
That will come in following commits.
2015-08-17 11:40:24 -04:00
Lei Zhang
3b10fa8255
Update OpenCLLib.h to revision 31.
2015-08-17 09:08:31 -04:00
Lei Zhang
884c833889
Substitute GLSL450Lib.h with GLSL.std.450.h of revision 31.
2015-08-17 09:08:31 -04:00
Kenneth Benzie
17f1bae331
Merge branch 'avoid-cmake-target-conflicts' into 'master'
...
Avoid cmake target conflicts
This makes it easier to include spirv-tools into larger cmake-based
projects, which may already include glslang or googletest. It is
currently difficult to do this because of target clashes and a
hardcoded googletest path.
glslang defines a target named SPIRV, so rename ours to SPIRV-TOOLS.
A googletest subdirectory may already be added somewhere else, so if
the external/googletest directory does not exist, probe whether there
is a gtest target defined already. This makes spirv-tools work
out-of-the-box when plopped into a larger project already containing
googletest; otherwise the README.md procedure still works as before.
See merge request !1
2015-08-17 07:58:16 -04:00
Kenneth Benzie
67cdf9fba6
Merge branch 'fix-failing-test' into 'master'
...
Fix failing test
The generator number is set to `SPV_GENERATOR_KHRONOS` in the
`spvBinaryHeaderSet` function, so tests should catch up.
See merge request !2
2015-08-17 07:58:00 -04:00
Lei Zhang
3a7315498f
Fix failing tests.
...
The generator number is set to SPV_GENERATOR_KHRONOS in the
spvBinaryHeaderSet function, so tests should catch up.
2015-07-30 15:21:42 -04:00