Just like the encoder directive for variable-length instructions, this patch adds a new decoder directive to allow custom decoder function on an operand.
Right now, due to the design of DecoderEmitter each operand can only have a single custom decoder in a given instruction.
Under what circumstances will we need different decoders for the same operand ?