some cleanups in the code, make JITing dependent on template argument
run two tests, one with jit, one without
since all the instructions use direct addressing, we can optimize it bit more, and calculate operands during code generation and not in JITted code
due to previous step, we don't need to bother with keeping operands and we can override them with function pointer

(so I've dropped "padding" field which I don't need anymore)
missing casts