void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
// Fast case of Heap::LookupSingleCharacterStringFromCode.
- DCHECK(base::bits::IsPowerOfTwo32(String::kMaxOneByteCharCode + 1));
- __ LoadSmiLiteral(r0, Smi::FromInt(~String::kMaxOneByteCharCode));
+ DCHECK(base::bits::IsPowerOfTwo32(String::kMaxOneByteCharCodeU + 1));
+ __ LoadSmiLiteral(r0, Smi::FromInt(~String::kMaxOneByteCharCodeU));
__ ori(r0, r0, Operand(kSmiTagMask));
- __ and_(r0, code_, r0);
- __ cmpi(r0, Operand::Zero());
- __ bne(&slow_case_);
+ __ and_(r0, code_, r0, SetRC);
+ __ bne(&slow_case_, cr0);
__ LoadRoot(result_, Heap::kSingleCharacterStringCacheRootIndex);
// At this point code register contains smi tagged one-byte char code.
__ lwz(r3, FieldMemOperand(r3, String::kHashFieldOffset));
// PPC - assume ip is free
__ mov(ip, Operand(String::kContainsCachedArrayIndexMask));
- __ and_(r0, r3, ip);
- __ cmpi(r0, Operand::Zero());
+ __ and_(r0, r3, ip, SetRC);
PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
- Split(eq, if_true, if_false, fall_through);
+ Split(eq, if_true, if_false, fall_through, cr0);
context()->Plug(if_true, if_false);
}