todo: small change.
dst, opt: registers.