Commits

Slava Pestov committed 07df0fbc52d
Re-apply "IRGen: Fix stupid oversight in emission of fixed multi-payload enum vw_getEnumTag()" Fixes two issues with the original patch: - If numCaseBits was >= 32, the high bits of the tag were shifted by an incorrect amount. In this case, the high bits were always zero anyway, but the invalid shift triggered an assertion in ARM64 codegen. Fixed to not generate the offending instructions at all, since just loading the payload value is enough. - When the payload is very small, the number of no-payload cases could be greater than 2**payloadBits, requiring multiple payload tags to represent them all. There was an arithmetic error in this case. This re-applies r31328. Swift SVN r31365