Lines Matching defs:object
127 // Clobbers object, dst, value, and ra, if (ra_status == kRAHasBeenSaved)
128 // The register 'object' contains a heap object pointer. The heap object
130 void MacroAssembler::RecordWriteField(Register object, int offset,
145 // Although the object register is tagged, the offset is relative to the start
146 // of the object, so offset must be a multiple of kPointerSize.
154 Add_d(scratch, object, offset - kHeapObjectTag);
161 RecordWrite(object, Operand(offset - kHeapObjectTag), value, ra_status,
177 void TurboAssembler::CallEphemeronKeyBarrier(Register object, Operand offset,
180 RegList registers = WriteBarrierDescriptor::ComputeSavedRegisters(object);
187 MoveObjectAndSlot(object_parameter, slot_address_parameter, object, offset);
196 Register object, Operand offset, RememberedSetAction remembered_set_action,
199 RegList registers = WriteBarrierDescriptor::ComputeSavedRegisters(object);
206 MoveObjectAndSlot(object_parameter, slot_address_parameter, object, offset);
215 Register object, Register slot_address,
218 // Use CallRecordWriteStubSaveRegisters if the object and slot registers
220 DCHECK_EQ(WriteBarrierDescriptor::ObjectRegister(), object);
248 Register object, Operand offset) {
251 // If `offset` is a register, it cannot overlap with `object`.
252 DCHECK_IMPLIES(!offset.IsImmediate(), offset.rm() != object);
254 // If the slot register does not overlap with the object register, we can
256 if (dst_slot != object) {
257 Add_d(dst_slot, object, offset);
258 mov(dst_object, object);
262 DCHECK_EQ(dst_slot, object);
264 // If the destination object register does not overlap with the offset
283 // Clobbers object, address, value, and ra, if (ra_status == kRAHasBeenSaved)
284 // The register 'object' contains a heap object pointer. The heap object
286 void MacroAssembler::RecordWrite(Register object, Operand offset,
291 DCHECK(!AreAliased(object, value));
296 Add_d(scratch, object, offset);
320 CheckPageFlag(object, MemoryChunk::kPointersFromHereAreInterestingMask, eq,
329 DCHECK(!AreAliased(object, slot_address, value));
331 Add_d(slot_address, object, offset);
332 CallRecordWriteStub(object, slot_address, remembered_set_action, fp_mode);
2764 // Note that this assumes the caller code (i.e. the Code object currently
3180 void MacroAssembler::GetObjectType(Register object, Register map,
3182 LoadMap(map, object);
3447 void TurboAssembler::LoadMap(Register destination, Register object) {
3448 Ld_d(destination, FieldMemOperand(object, HeapObject::kMapOffset));
3685 void TurboAssembler::AssertNotSmi(Register object) {
3691 andi(scratch, object, kSmiTagMask);
3696 void TurboAssembler::AssertSmi(Register object) {
3702 andi(scratch, object, kSmiTagMask);
3707 void MacroAssembler::AssertConstructor(Register object) {
3712 SmiTst(object, t8);
3716 LoadMap(t8, object);
3723 void MacroAssembler::AssertFunction(Register object) {
3728 SmiTst(object, t8);
3731 Push(object);
3732 LoadMap(object, object);
3733 GetInstanceTypeRange(object, object, FIRST_JS_FUNCTION_TYPE, t8);
3736 Pop(object);
3740 void MacroAssembler::AssertCallableFunction(Register object) {
3745 SmiTst(object, t8);
3748 Push(object);
3749 LoadMap(object, object);
3750 GetInstanceTypeRange(object, object, FIRST_CALLABLE_JS_FUNCTION_TYPE, t8);
3754 Pop(object);
3758 void MacroAssembler::AssertBoundFunction(Register object) {
3763 SmiTst(object, t8);
3766 GetObjectType(object, t8, t8);
3772 void MacroAssembler::AssertGeneratorObject(Register object) {
3777 SmiTst(object, t8);
3781 GetObjectType(object, t8, t8);
3799 void MacroAssembler::AssertUndefinedOrAllocationSite(Register object,
3804 AssertNotSmi(object);
3806 Branch(&done_checking, eq, object, Operand(scratch));
3807 GetObjectType(object, scratch, scratch);
4049 void TurboAssembler::CheckPageFlag(const Register& object, int mask,
4055 And(scratch, object, Operand(~kPageAlignmentMask));
4113 // Check whether the Code object is an off-heap trampoline. If so, call its
4115 // trampoline. Otherwise, just call the Code object as always.
4119 // Not an off-heap trampoline object, the entry point is at