platform/upstream/SPIRV-Tools.git
8 years agoAssembler test for single-valued FunctionControl mask
David Neto [Mon, 14 Sep 2015 18:50:37 +0000 (14:50 -0400)]
Assembler test for single-valued FunctionControl mask

Fixed name of "Inline" enumerant.

Support for combinations of function control masks should come later.

8 years agoRemove useless variable.
Lei Zhang [Mon, 14 Sep 2015 19:26:12 +0000 (15:26 -0400)]
Remove useless variable.

8 years agoAssembler test for single-valued LoopControl mask
David Neto [Mon, 14 Sep 2015 18:33:08 +0000 (14:33 -0400)]
Assembler test for single-valued LoopControl mask

Support for combining masks should come later.

8 years agoAssembler test for single-valued SelectionControl mask
David Neto [Mon, 14 Sep 2015 18:28:33 +0000 (14:28 -0400)]
Assembler test for single-valued SelectionControl mask

Support for combining masks should come later.

8 years agoClarify the syntax. Some named enumerants are unusable
David Neto [Mon, 14 Sep 2015 17:56:45 +0000 (13:56 -0400)]
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

8 years agoSimplify code for handling literals in disassembler.
Lei Zhang [Mon, 14 Sep 2015 16:26:15 +0000 (12:26 -0400)]
Simplify code for handling literals in disassembler.

8 years agoMove the syntax description into its own file
David Neto [Mon, 14 Sep 2015 17:05:53 +0000 (13:05 -0400)]
Move the syntax description into its own file

8 years agoAdd patch for generating opcode.inc syntax table.
David Neto [Mon, 14 Sep 2015 16:09:17 +0000 (12:09 -0400)]
Add patch for generating opcode.inc syntax table.

8 years agoRun clang-format.
Lei Zhang [Mon, 14 Sep 2015 14:05:37 +0000 (10:05 -0400)]
Run clang-format.

8 years agoAssembler test for OpExecutionMode
David Neto [Fri, 11 Sep 2015 17:55:57 +0000 (13:55 -0400)]
Assembler test for OpExecutionMode

8 years agoAssembler test for OpEntryPoint
David Neto [Fri, 11 Sep 2015 17:36:02 +0000 (13:36 -0400)]
Assembler test for OpEntryPoint

8 years agoSimplify format indication in CompileSuccesfully().
Dejan Mircevski [Sat, 12 Sep 2015 00:10:54 +0000 (20:10 -0400)]
Simplify format indication in CompileSuccesfully().

8 years agoLimit the use of spvCheck and spvCheckReturn to validator.
Lei Zhang [Fri, 11 Sep 2015 18:31:27 +0000 (14:31 -0400)]
Limit the use of spvCheck and spvCheckReturn to validator.

spvCheck is indeed just an if-statement. Defining such a macro
doesn't help much.

8 years agoUpdate readme with latest news.
David Neto [Fri, 11 Sep 2015 19:16:43 +0000 (15:16 -0400)]
Update readme with latest news.

8 years agoMove bitwisecast.h to source/ and add include guard.
Lei Zhang [Fri, 11 Sep 2015 17:45:18 +0000 (13:45 -0400)]
Move bitwisecast.h to source/ and add include guard.

8 years agoFix an infinite loop during message generation.
David Neto [Fri, 11 Sep 2015 16:04:03 +0000 (12:04 -0400)]
Fix an infinite loop during message generation.

Rename getWord to spvGetWord and unit test it.

8 years agoAdd option to change assembly syntax format in the dis tool.
Lei Zhang [Fri, 11 Sep 2015 15:56:09 +0000 (11:56 -0400)]
Add option to change assembly syntax format in the dis tool.

8 years agoHandle operands when OpCode is !<integer>.
Dejan Mircevski [Fri, 11 Sep 2015 04:43:11 +0000 (00:43 -0400)]
Handle operands when OpCode is !<integer>.

8 years agoAdd TODO for capability dependencies for Rev32+
David Neto [Fri, 11 Sep 2015 16:15:58 +0000 (12:15 -0400)]
Add TODO for capability dependencies for Rev32+

8 years agoAssembler test for OpMemoryModel
David Neto [Fri, 11 Sep 2015 15:28:27 +0000 (11:28 -0400)]
Assembler test for OpMemoryModel

8 years agoAdd library function parameter to set assembly format for disassembler.
Lei Zhang [Fri, 11 Sep 2015 15:01:59 +0000 (11:01 -0400)]
Add library function parameter to set assembly format for disassembler.

8 years agoAdd option to change assembly syntax format in the as tool.
Lei Zhang [Thu, 10 Sep 2015 21:42:41 +0000 (17:42 -0400)]
Add option to change assembly syntax format in the as tool.

8 years agoAssembler tests for OpCapability.
David Neto [Thu, 10 Sep 2015 20:39:09 +0000 (16:39 -0400)]
Assembler tests for OpCapability.

Adds test file for instructions in the Mode-Setting section
of the SPIR-V spec.

8 years agoAssembler test for LinkageAttributes decorations
David Neto [Thu, 10 Sep 2015 19:51:57 +0000 (15:51 -0400)]
Assembler test for LinkageAttributes decorations

8 years agoAssembler tests for all decorations except Linkage attributes
David Neto [Thu, 10 Sep 2015 17:23:11 +0000 (13:23 -0400)]
Assembler tests for all decorations except Linkage attributes

Fixes typos in various parser tables.

Updates readme.md with the fixes.

8 years agoRun clang-format.
Lei Zhang [Thu, 10 Sep 2015 21:07:21 +0000 (17:07 -0400)]
Run clang-format.

8 years agoAdd an API parameter to choose assembly syntax format for assembler.
Lei Zhang [Thu, 10 Sep 2015 18:00:00 +0000 (14:00 -0400)]
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.

8 years agoSimplify checking for !<integer> first word.
Dejan Mircevski [Thu, 10 Sep 2015 18:55:33 +0000 (14:55 -0400)]
Simplify checking for !<integer> first word.

8 years agoAssembler test for OpSourceExtension.
David Neto [Wed, 9 Sep 2015 22:10:01 +0000 (18:10 -0400)]
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.

8 years agoAdded missing diagnostic when disassembling empty file.
Andrew Woloszyn [Thu, 10 Sep 2015 14:28:22 +0000 (10:28 -0400)]
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.

8 years agoTest assembly of OpSource using all language enums
David Neto [Wed, 9 Sep 2015 14:58:02 +0000 (10:58 -0400)]
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.

8 years agoUpdate CHANGES in the readme.md
David Neto [Wed, 9 Sep 2015 20:54:39 +0000 (16:54 -0400)]
Update CHANGES in the readme.md

8 years agoAvoid undefined pointer given to spvTextDestroy
David Neto [Tue, 8 Sep 2015 19:38:55 +0000 (15:38 -0400)]
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.

8 years agoFix build on MSC
Pyry Haulos [Wed, 9 Sep 2015 20:35:53 +0000 (13:35 -0700)]
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.

8 years agoAdd OpNop, OpUndef tests for spvTextToBinary
David Neto [Tue, 8 Sep 2015 21:11:40 +0000 (17:11 -0400)]
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.

8 years agoFix interface function calls to the new API.
Lei Zhang [Wed, 9 Sep 2015 19:44:32 +0000 (15:44 -0400)]
Fix interface function calls to the new API.

8 years agoPreserve float values during encoding and decoding roundtrip.
Lei Zhang [Wed, 9 Sep 2015 14:36:48 +0000 (10:36 -0400)]
Preserve float values during encoding and decoding roundtrip.

8 years agoRemoved the ambiguity in the API for cleaning input vs output data.
Andrew Woloszyn [Wed, 9 Sep 2015 17:04:32 +0000 (13:04 -0400)]
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.

8 years agoSimplify uses of spvBinaryDestroy in tests
David Neto [Tue, 8 Sep 2015 19:29:22 +0000 (15:29 -0400)]
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.

8 years agospvTextDestroy is no-op on nullptr.
David Neto [Tue, 8 Sep 2015 19:34:26 +0000 (15:34 -0400)]
spvTextDestroy is no-op on nullptr.

8 years agoFix spvBinaryDestroy test to use an API-created object
David Neto [Wed, 9 Sep 2015 15:35:01 +0000 (11:35 -0400)]
Fix spvBinaryDestroy test to use an API-created object

8 years agoEnable OpcodeMake test, by sampling values.
David Neto [Tue, 8 Sep 2015 13:55:52 +0000 (09:55 -0400)]
Enable OpcodeMake test, by sampling values.

The previous version of the test was disabled, presumably
because it took to long to run.

8 years agospvBinaryDestroy(nullptr) is a no-op.
David Neto [Tue, 8 Sep 2015 19:15:23 +0000 (15:15 -0400)]
spvBinaryDestroy(nullptr) is a no-op.

8 years agoRemove spvOpcodeIsVariable
David Neto [Tue, 8 Sep 2015 18:59:57 +0000 (14:59 -0400)]
Remove spvOpcodeIsVariable

Nothing was using it.

8 years agoFix -p on disassembler.
David Neto [Tue, 8 Sep 2015 15:51:54 +0000 (11:51 -0400)]
Fix -p on disassembler.

spvTextToBinary fails if printing option is on
*and* you send in a non-null pointer-to-spv_text.

8 years agoAdd hex-format tests for !<integer>.
Dejan Mircevski [Tue, 8 Sep 2015 18:20:12 +0000 (14:20 -0400)]
Add hex-format tests for !<integer>.

8 years agoAdd invalid-operand tests for !<integer>.
Dejan Mircevski [Tue, 8 Sep 2015 18:17:14 +0000 (14:17 -0400)]
Add invalid-operand tests for !<integer>.

8 years agoMake all SpirvVectors const in ImmediateInt.cpp.
Dejan Mircevski [Tue, 8 Sep 2015 16:14:07 +0000 (12:14 -0400)]
Make all SpirvVectors const in ImmediateInt.cpp.

8 years agoTests for parsing recognizable words after !<integer>.
Dejan Mircevski [Tue, 8 Sep 2015 15:41:36 +0000 (11:41 -0400)]
Tests for parsing recognizable words after !<integer>.

8 years agoAdd disabled test to check float value parsing
David Neto [Fri, 4 Sep 2015 18:55:28 +0000 (14:55 -0400)]
Add disabled test to check float value parsing

Disabled for now because float parsing is broken.

8 years agoRemove SPV_OPERAND_TYPE_ELLIPSIS
David Neto [Tue, 1 Sep 2015 14:01:53 +0000 (10:01 -0400)]
Remove SPV_OPERAND_TYPE_ELLIPSIS

8 years agoAdded option to only compile spirv library instead of all binaries as well
Andrew Woloszyn [Fri, 4 Sep 2015 19:13:57 +0000 (15:13 -0400)]
Added option to only compile spirv library instead of all binaries as well

8 years agoPrint diagnostics at the beginning of input.
David Neto [Tue, 1 Sep 2015 22:05:14 +0000 (18:05 -0400)]
Print diagnostics at the beginning of input.

A spv_diagnostic_t value knows if the source is textual rather
than binary.

8 years agoAvoid "operands" in the !<immediate> explanation.
Dejan Mircevski [Thu, 3 Sep 2015 20:29:27 +0000 (16:29 -0400)]
Avoid "operands" in the !<immediate> explanation.

Also declare "!<integer> = OpCode" legal.

8 years agoDocument current support and known bugs.
David Neto [Fri, 4 Sep 2015 18:31:01 +0000 (14:31 -0400)]
Document current support and known bugs.

8 years agoTest consecutive opcodes being !<integer>.
Dejan Mircevski [Thu, 3 Sep 2015 21:42:50 +0000 (17:42 -0400)]
Test consecutive opcodes being !<integer>.

8 years agoUse opcode operand definitions from SPIR-V specification generator.
David Neto [Thu, 27 Aug 2015 17:03:52 +0000 (13:03 -0400)]
Use opcode operand definitions from SPIR-V specification generator.

The assembler and disassembler now use a dynamically adjusted
sequence of expected operand types.  (Internally, it is a deque,
for readability.)  Both parsers repeatedly pull an expected operand
type from the left of this pattern list, and try to match the next
input token against it.

The expected pattern is adjusted during the parse to accommodate:
- an extended instruction's expected operands, depending on the
  extended instruction's index.
- when an operand itself has operands
- to handle sequences of zero or more operands, or pairs of
  operands.  These are expanded lazily during the parse.

Adds spv::OperandClass from the SPIR-V specification generator.

Modifies spv_operand_desc_t:
 - adds hasResult, hasType, and operandClass array to the opcode
description type.
 - "wordCount" is replaced with "numTypes", which counts the number
   of entries in operandTypes.  And each of those describes a
   *logical* operand, including the type id for the instruction,
   and the result id for the instruction.  A logical operand could be
   variable-width, such as a literal string.

Adds opcode.inc, an automatically-generated table of operation
descriptions, with one line to describe each core instruction.
Externally, we have modified the SPIR-V spec doc generator to
emit this file.
(We have hacked this copy to use the old semantics for OpLine.)

Inside the assembler, parsing an operand may fail with new
error code SPV_FAIL_MATCH.  For an optional operand, this is not
fatal, but should trigger backtracking at a higher level.

The spvTextIsStartOfNewInst checks the case of the third letter
of what might be an opcode.  So now, "OpenCL" does not look like
an opcode name.

In assembly, the EntryPoint name field is mandatory, but can be
an empty string.

Adjust tests for changes to:
- OpSampedImage
- OpTypeSampler

8 years agoPrint failing assembly text in CompileSuccessfully().
Dejan Mircevski [Fri, 4 Sep 2015 12:51:52 +0000 (08:51 -0400)]
Print failing assembly text in CompileSuccessfully().

8 years agoRemove unused struct "bin"
David Neto [Tue, 1 Sep 2015 16:24:06 +0000 (12:24 -0400)]
Remove unused struct "bin"

8 years agoMore !<integer> tests.
Dejan Mircevski [Wed, 2 Sep 2015 21:17:42 +0000 (17:17 -0400)]
More !<integer> tests.

8 years agoUse spvOpcodeMake() in ImmediateInt tests.
Dejan Mircevski [Thu, 3 Sep 2015 18:28:41 +0000 (14:28 -0400)]
Use spvOpcodeMake() in ImmediateInt tests.

8 years agoDon't overload operators in std namespace.
David Neto [Tue, 1 Sep 2015 18:56:09 +0000 (14:56 -0400)]
Don't overload operators in std namespace.

Use a spvtest::WordVector proxy object to easily print
std::vector<uint32_t> and spv_binary_t values.

8 years agoAdd a few unit tests for !<integer>. More to come.
Dejan Mircevski [Wed, 2 Sep 2015 18:48:33 +0000 (14:48 -0400)]
Add a few unit tests for !<integer>. More to come.

Start using GMock: modify CMakeLists, fix googletest URL in readme.

Add useful utilities to the TestFixture class.  Also make it conform to
go/gunit recommendations about setup/teardown.

8 years agoAdd bin-to-text test for operand with operands
David Neto [Mon, 31 Aug 2015 18:07:22 +0000 (14:07 -0400)]
Add bin-to-text test for operand with operands

8 years agoAdd binary-to-text test for single instruction
David Neto [Mon, 31 Aug 2015 17:34:28 +0000 (13:34 -0400)]
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.

8 years agoGetting the next word respects quoting and escaping.
David Neto [Tue, 25 Aug 2015 18:21:13 +0000 (14:21 -0400)]
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.

8 years agoHad spriv-tools stay inside it's own directory.
Andrew Woloszyn [Tue, 1 Sep 2015 19:15:36 +0000 (15:15 -0400)]
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.

8 years agoMove ImmediateInt tests into their own file.
Dejan Mircevski [Mon, 31 Aug 2015 21:42:22 +0000 (17:42 -0400)]
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.

8 years agoWarn about !<integer> opcode in assignment format.
Dejan Mircevski [Mon, 31 Aug 2015 20:19:07 +0000 (16:19 -0400)]
Warn about !<integer> opcode in assignment format.

8 years agoPut test classes in anonymous namespace.
Dejan Mircevski [Mon, 31 Aug 2015 19:24:32 +0000 (15:24 -0400)]
Put test classes in anonymous namespace.

Put TestFixture.h classes in a namespace.

Remove unused #includes.

8 years agoClarify !<integer> behaviour in readme.md.
Dejan Mircevski [Mon, 31 Aug 2015 16:13:33 +0000 (12:13 -0400)]
Clarify !<integer> behaviour in readme.md.

8 years agoGetting the next word ends at a comment (;)
David Neto [Tue, 25 Aug 2015 17:53:19 +0000 (13:53 -0400)]
Getting the next word ends at a comment (;)

8 years agoCombine parsing of ID and RESULT_ID operand types
David Neto [Thu, 27 Aug 2015 17:50:05 +0000 (13:50 -0400)]
Combine parsing of ID and RESULT_ID operand types

8 years agoString literals must be quoted.
David Neto [Mon, 24 Aug 2015 20:27:02 +0000 (16:27 -0400)]
String literals must be quoted.

8 years agoFix some bugs in parsing literals.
David Neto [Mon, 24 Aug 2015 19:33:14 +0000 (15:33 -0400)]
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

8 years agoAdd SPV_FAILED_MATCH status code
David Neto [Thu, 27 Aug 2015 17:38:39 +0000 (13:38 -0400)]
Add SPV_FAILED_MATCH status code

This is for future use by the parser.

8 years agoAdd enum values for instructions added after Rev31
David Neto [Thu, 27 Aug 2015 17:14:02 +0000 (13:14 -0400)]
Add enum values for instructions added after Rev31

8 years agoAdd GLSL std450 extended instruction 72-80.
Lei Zhang [Thu, 27 Aug 2015 18:20:19 +0000 (14:20 -0400)]
Add GLSL std450 extended instruction 72-80.

8 years agoAdd std450 instructions 53-64.
Dejan Mircevski [Thu, 27 Aug 2015 17:57:08 +0000 (13:57 -0400)]
Add std450 instructions 53-64.

8 years agoAdd GLSL std450 extended instruction 65-71.
Lei Zhang [Thu, 27 Aug 2015 17:44:31 +0000 (13:44 -0400)]
Add GLSL std450 extended instruction 65-71.

8 years agoFix spelling of SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO
David Neto [Thu, 27 Aug 2015 17:11:01 +0000 (13:11 -0400)]
Fix spelling of SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO

8 years agoAdd test for Modf and ModfStruct.
Lei Zhang [Thu, 27 Aug 2015 15:15:49 +0000 (11:15 -0400)]
Add test for Modf and ModfStruct.

8 years agoSimplify macro names used for GLSL std450 extended instruction table.
Lei Zhang [Thu, 27 Aug 2015 15:22:14 +0000 (11:22 -0400)]
Simplify macro names used for GLSL std450 extended instruction table.

8 years agoAdd std450 instructions 49-52.
Dejan Mircevski [Thu, 27 Aug 2015 15:23:54 +0000 (11:23 -0400)]
Add std450 instructions 49-52.

8 years agoReformat GLSL std450 extended instruction table.
Lei Zhang [Thu, 27 Aug 2015 14:00:16 +0000 (10:00 -0400)]
Reformat GLSL std450 extended instruction table.

Also add test for Smoothstep.

8 years agoAdd tests for Atan2 and Pow.
Dejan Mircevski [Thu, 27 Aug 2015 03:39:37 +0000 (23:39 -0400)]
Add tests for Atan2 and Pow.

Fix a typo in "ParameterizedExtInst."

8 years agoUnify tests for GLSL std450 extended instructions.
Lei Zhang [Wed, 26 Aug 2015 21:23:35 +0000 (17:23 -0400)]
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.

8 years agoAdd GLSL std450 instructions 35-48.
Lei Zhang [Wed, 26 Aug 2015 14:28:42 +0000 (10:28 -0400)]
Add GLSL std450 instructions 35-48.

8 years agoMove tests for GLSL std450 instructions to a separate file.
Lei Zhang [Wed, 26 Aug 2015 14:52:19 +0000 (10:52 -0400)]
Move tests for GLSL std450 instructions to a separate file.

8 years agoAdd std450 instructions 25-34.
Dejan Mircevski [Tue, 25 Aug 2015 21:41:45 +0000 (17:41 -0400)]
Add std450 instructions 25-34.

8 years agoUpdate readme about the "<result-id> = <opcode> <operand>..." format.
Lei Zhang [Mon, 24 Aug 2015 18:07:37 +0000 (14:07 -0400)]
Update readme about the "<result-id> = <opcode> <operand>..." format.

8 years agoDisassemble in the format of "<result-id> = <opcode> <operand>..".
Lei Zhang [Mon, 24 Aug 2015 19:52:26 +0000 (15:52 -0400)]
Disassemble in the format of "<result-id> = <opcode> <operand>..".

8 years agoMerge branch 'google-catch-up' into 'master'
Kenneth Benzie [Wed, 2 Sep 2015 09:49:42 +0000 (05:49 -0400)]
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

8 years agoMerge branch 'capability-enumerant' into 'master'
Kenneth Benzie [Thu, 27 Aug 2015 07:58:08 +0000 (03:58 -0400)]
Merge branch 'capability-enumerant' into 'master'

Capability enumerant

See merge request !5

8 years agoMerge branch 'fix-p-switch' into 'master'
Kenneth Benzie [Tue, 25 Aug 2015 08:09:08 +0000 (04:09 -0400)]
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

8 years agoOnly use '%' as variable name prefix.
Lei Zhang [Fri, 21 Aug 2015 15:52:29 +0000 (11:52 -0400)]
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>..").

8 years agoBugfix: report the correct location for wrong opcode.
Lei Zhang [Fri, 21 Aug 2015 15:52:03 +0000 (11:52 -0400)]
Bugfix: report the correct location for wrong opcode.

Also add more tests for the "<result-id> = <opcode> <operand>.."
format.

8 years agoFix TextAdvance() problems involving whitespace around comment lines.
Lei Zhang [Fri, 21 Aug 2015 15:51:28 +0000 (11:51 -0400)]
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.

8 years agoAdded stream operators for spv_binary_t and std::vector<uint32_t>
Andrew Woloszyn [Fri, 21 Aug 2015 19:40:02 +0000 (15:40 -0400)]
Added stream operators for spv_binary_t and std::vector<uint32_t>

8 years agoSupport "<result-id> = <opcode> <operand>.." format.
Lei Zhang [Fri, 21 Aug 2015 15:50:55 +0000 (11:50 -0400)]
Support "<result-id> = <opcode> <operand>.." format.