Fix a bug where an incorrect bit mask would be generated if a target's last asm

string began at a power of 2 in the string index.  For example, if "ret" started
at position 16, the ret instruction would be assigned code 16, but the mask would be AsmChars[] + Code & 15, not Code & 31.

llvm-svn: 49433
This commit is contained in:
Nate Begeman 2008-04-09 16:24:11 +00:00
parent 47b4a18b75
commit 41d0309ce8

View File

@ -536,7 +536,7 @@ void AsmWriterEmitter::run(std::ostream &O) {
}
// Figure out how many bits we used for the string index.
unsigned AsmStrBits = Log2_32_Ceil(MaxStringIdx);
unsigned AsmStrBits = Log2_32_Ceil(MaxStringIdx+1);
// To reduce code size, we compactify common instructions into a few bits
// in the opcode-indexed table.