Revert "Revert "opcode""

This reverts commit abfd63635e460795c139bb28b83635aa2456ba63.
Revert "opcode"

This reverts commit 32f8c3e3bcabf706203c8ca0046d693ec5833df7.