Index: src/arm/macro-assembler-arm.cc |
=================================================================== |
--- src/arm/macro-assembler-arm.cc (revision 8174) |
+++ src/arm/macro-assembler-arm.cc (working copy) |
@@ -330,7 +330,8 @@ |
!src2.must_use_constant_pool() && |
CpuFeatures::IsSupported(ARMv7) && |
IsPowerOf2(src2.immediate() + 1)) { |
- ubfx(dst, src1, 0, WhichPowerOf2(src2.immediate() + 1), cond); |
+ ubfx(dst, src1, 0, |
+ WhichPowerOf2(static_cast<uint32_t>(src2.immediate()) + 1), cond); |
} else { |
and_(dst, src1, src2, LeaveCC, cond); |
@@ -1677,6 +1678,16 @@ |
} |
+void MacroAssembler::CheckFastElements(Register map, |
+ Register scratch, |
+ Label* fail) { |
+ STATIC_ASSERT(JSObject::FAST_ELEMENTS == 0); |
+ ldrb(scratch, FieldMemOperand(map, Map::kInstanceTypeOffset)); |
+ cmp(scratch, Operand(Map::kMaximumBitField2FastElementValue)); |
+ b(hi, fail); |
+} |
+ |
+ |
void MacroAssembler::CheckMap(Register obj, |
Register scratch, |
Handle<Map> map, |