We use variable_ops in the tablegen defs to denote the list of
branch targets in br_table, but unlike other uses of variable_ops
(e.g. call) the these branch targets need to actually be encoded in the
instruction. The existing tables for variable_ops cause not operands
to be accepted by the assembly matcher.
Following the example of ARM:
https://github.com/llvm-mirror/llvm/blob/2cc0a7da876c1d8c32775b0119e1e15aaa759b9e/lib/Target/ARM/ARMInstrInfo.td#L550-L555
we introduce a new operand type to capture this list, and we use the
same {} syntax as ARM as well to differentiate them from regular
integer operands.