Update core instruction syntax to Rev32
authorDavid Neto <dneto@google.com>
Thu, 24 Sep 2015 19:45:59 +0000 (15:45 -0400)
committerDavid Neto <dneto@google.com>
Mon, 26 Oct 2015 16:55:33 +0000 (12:55 -0400)
commite0890da60380d83fae86fdd59ff4f589290238fd
treeba4e73852a4640785dfdc698c627a8e673a7d53a
parent6b31ce4d5055b35449b1f58b5f33120302c9d00c
Update core instruction syntax to Rev32

Many instructions added and a few changed structure.

Workarounds:
- Some operands can be enabled by either one of two
  capabilities.  The spv_operand_desc_t does not handle that
  now. For now just select the first one.

Fixes to tests:
- OpLoopMerge now takes a mandatory continue target.
- OpTypePipe drops the type argument.  Pipes are opaque.
- OpLine no longer takes a target ID argument.

The ID validator was fixed the OpLine and OpTypePipe
changes.  Those were the only ID validator tests affected.

The patch to the spec doc generator was updated so it handles
the two-capability case, even if in an hacky way.
source/core_syntax_table.patch
source/opcode.cpp
source/opcode.inc
source/validate_id.cpp
test/TextToBinary.ControlFlow.cpp
test/TextToBinary.TypeDeclaration.cpp
test/ValidateID.cpp