encoding scaled values

Hello LLVM,
I have a value that is encoded as that value shifted right by 2. I
can see two ways to do this.
First way using the tblgen definition for this instruction, something like this:

bits<10> Value;
Inst{7-0} = Value{9-2}; // 2-bit effective downshift

Second way with custom EncoderMethod and DecoderMethods specified on
the operand.

Which way is best?

Thanks,
-steve

On further investigation, a tblgen bug prevents the td file solution
from working. The auto-generated encoding is fine, but the decoder
properly shifts only if the value consists of more than one Inst{}
field. An easy patch fixes this and now encode/decode work fine
without custom methods. I'll submit the tblgen patch.