This reverts commit b783f70a42575a5d9147bea1ac97e872370fe55b. This change had multiple issues which required post-commit fixups, and not all issues are fixed yet. In particular, the LLDB build bot for ARM is still broken. There is also an ongoing conversation in the original phabricator review about whether there is undefined behavior in the code.