automatically emit pop/nil-return value depending on the op