Searched defs:elements_reg (Results 1 - 3 of 3) sorted by relevance

/external/v8/src/arm64/
H A Dmacro-assembler-arm64.cc3746 // Note: The ARM version of this clobbers elements_reg, but this version does
3747 // not. Some uses of this in ARM64 assume that elements_reg will be preserved.
3750 Register elements_reg,
3755 DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1));
3775 Add(scratch1, elements_reg,
3748 StoreNumberToDoubleElements(Register value_reg, Register key_reg, Register elements_reg, Register scratch1, FPRegister fpscratch1, Label* fail, int elements_offset) argument
/external/v8/src/mips/
H A Dmacro-assembler-mips.cc4731 Register elements_reg,
4737 DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1, scratch2,
4766 Addu(scratch1, elements_reg,
4729 StoreNumberToDoubleElements(Register value_reg, Register key_reg, Register elements_reg, Register scratch1, Register scratch2, Register scratch3, Label* fail, int elements_offset) argument
/external/v8/src/ppc/
H A Dmacro-assembler-ppc.cc2244 Register value_reg, Register key_reg, Register elements_reg,
2247 DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1));
2267 add(scratch1, elements_reg, scratch1);
2192 STATIC_ASSERT(Map::kInstanceTypeOffset < 4096); STATIC_ASSERT(LAST_TYPE < 256); lbz(type_reg, FieldMemOperand(map, Map::kInstanceTypeOffset)); cmpi(type_reg, Operand(type)); } void MacroAssembler::CompareRoot(Register obj, Heap::RootListIndex index) { DCHECK(!obj.is(r0)); LoadRoot(r0, index); cmp(obj, r0); } void MacroAssembler::CheckFastElements(Register map, Register scratch, Label* fail) { STATIC_ASSERT(FAST_SMI_ELEMENTS == 0); STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1); STATIC_ASSERT(FAST_ELEMENTS == 2); STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3); lbz(scratch, FieldMemOperand(map, Map::kBitField2Offset)); STATIC_ASSERT(Map::kMaximumBitField2FastHoleyElementValue < 0x8000); cmpli(scratch, Operand(Map::kMaximumBitField2FastHoleyElementValue)); bgt(fail); } void MacroAssembler::CheckFastObjectElements(Register map, Register scratch, Label* fail) { STATIC_ASSERT(FAST_SMI_ELEMENTS == 0); STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1); STATIC_ASSERT(FAST_ELEMENTS == 2); STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3); lbz(scratch, FieldMemOperand(map, Map::kBitField2Offset)); cmpli(scratch, Operand(Map::kMaximumBitField2FastHoleySmiElementValue)); ble(fail); cmpli(scratch, Operand(Map::kMaximumBitField2FastHoleyElementValue)); bgt(fail); } void MacroAssembler::CheckFastSmiElements(Register map, Register scratch, Label* fail) { STATIC_ASSERT(FAST_SMI_ELEMENTS == 0); STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1); lbz(scratch, FieldMemOperand(map, Map::kBitField2Offset)); cmpli(scratch, Operand(Map::kMaximumBitField2FastHoleySmiElementValue)); bgt(fail); } void MacroAssembler::StoreNumberToDoubleElements( Register value_reg, Register key_reg, Register elements_reg, Register scratch1, DoubleRegister double_scratch, Label* fail, int elements_offset) { DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1)); Label smi_value, store; JumpIfSmi(value_reg, &smi_value); CheckMap(value_reg, scratch1, isolate()->factory()->heap_number_map(), fail, DONT_DO_SMI_CHECK); lfd(double_scratch, FieldMemOperand(value_reg, HeapNumber::kValueOffset)); CanonicalizeNaN(double_scratch); b(&store); bind(&smi_value); SmiToDouble(double_scratch, value_reg); bind(&store); SmiToDoubleArrayOffset(scratch1, key_reg); add(scratch1, elements_reg, scratch1); stfd(double_scratch, FieldMemOperand(scratch1, FixedDoubleArray::kHeaderSize - elements_offset)); } void MacroAssembler::AddAndCheckForOverflow(Register dst, Register left, Register right, Register overflow_dst, Register scratch) { DCHECK(!dst.is(overflow_dst)); DCHECK(!dst.is(scratch)); DCHECK(!overflow_dst.is(scratch)); DCHECK(!overflow_dst.is(left)); DCHECK(!overflow_dst.is(right)); bool left_is_right = left.is(right); RCBit xorRC = left_is_right ? SetRC : LeaveRC; if (dst.is(left)) { mr(scratch, left); add(dst, left, right); xor_(overflow_dst, dst, scratch, xorRC); if (!left_is_right) xor_(scratch, dst, right); } else if (dst.is(right)) { mr(scratch, right); add(dst, left, right); xor_(overflow_dst, dst, left, xorRC); if (!left_is_right) xor_(scratch, dst, scratch); } else { add(dst, left, right); xor_(overflow_dst, dst, left, xorRC); if (!left_is_right) xor_(scratch, dst, right); } if (!left_is_right) and_(overflow_dst, scratch, overflow_dst, SetRC); } void MacroAssembler::AddAndCheckForOverflow(Register dst, Register left, intptr_t right, Register overflow_dst, Register scratch) { Register original_left = left; DCHECK(!dst.is(overflow_dst)); DCHECK(!dst.is(scratch)); DCHECK(!overflow_dst.is(scratch)); DCHECK(!overflow_dst.is(left)); if (dst.is(left)) { original_left = overflow_dst; mr(original_left, left); } Add(dst, left, right, scratch); xor_(overflow_dst, dst, original_left); if (right >= 0) argument

Completed in 83 milliseconds