Searched defs:CompareRoot (Results 1 - 5 of 5) sorted by relevance

/external/v8/src/ia32/
H A Dmacro-assembler-ia32.cc93 void MacroAssembler::CompareRoot(Register with, function in class:v8::internal::MacroAssembler
105 void MacroAssembler::CompareRoot(Register with, Heap::RootListIndex index) { function in class:v8::internal::MacroAssembler
111 void MacroAssembler::CompareRoot(const Operand& with, function in class:v8::internal::MacroAssembler
/external/v8/src/x87/
H A Dmacro-assembler-x87.cc93 void MacroAssembler::CompareRoot(Register with, function in class:v8::internal::MacroAssembler
105 void MacroAssembler::CompareRoot(Register with, Heap::RootListIndex index) { function in class:v8::internal::MacroAssembler
111 void MacroAssembler::CompareRoot(const Operand& with, function in class:v8::internal::MacroAssembler
/external/v8/src/arm64/
H A Dmacro-assembler-arm64.cc1516 CompareRoot(current_object, Heap::kEmptySlowElementDictionaryRootIndex);
1670 CompareRoot(scratch, Heap::kAllocationSiteMapRootIndex);
3277 CompareRoot(obj_map, index);
3409 void MacroAssembler::CompareRoot(const Register& obj, function in class:v8::internal::MacroAssembler
3422 CompareRoot(obj, index);
3430 CompareRoot(obj, index);
4079 CompareRoot(reg, index);
/external/v8/src/s390/
H A Dmacro-assembler-s390.cc1872 void MacroAssembler::CompareRoot(Register obj, Heap::RootListIndex index) {
1912 CompareRoot(scratch, index);
2267 CompareRoot(elements, Heap::kFixedArrayMapRootIndex);
2269 CompareRoot(elements, Heap::kFixedDoubleArrayMapRootIndex);
2271 CompareRoot(elements, Heap::kFixedCOWArrayMapRootIndex);
2534 CompareRoot(object, Heap::kUndefinedValueRootIndex);
2537 CompareRoot(scratch, Heap::kAllocationSiteMapRootIndex);
2545 CompareRoot(reg, index);
3076 CompareRoot(r5, Heap::kEmptySlowElementDictionaryRootIndex);
1866 STATIC_ASSERT(Map::kInstanceTypeOffset < 4096); STATIC_ASSERT(LAST_TYPE < 256); LoadlB(type_reg, FieldMemOperand(map, Map::kInstanceTypeOffset)); CmpP(type_reg, Operand(type)); } void MacroAssembler::CompareRoot(Register obj, Heap::RootListIndex index) { CmpP(obj, MemOperand(kRootRegister, index << kPointerSizeLog2)); } void MacroAssembler::SmiToDouble(DoubleRegister value, Register smi) { SmiUntag(ip, smi); ConvertIntToDouble(ip, value); } void MacroAssembler::CompareMap(Register obj, Register scratch, Handle<Map> map, Label* early_success) { LoadP(scratch, FieldMemOperand(obj, HeapObject::kMapOffset)); CompareMap(obj, map, early_success); } void MacroAssembler::CompareMap(Register obj_map, Handle<Map> map, Label* early_success) { mov(r0, Operand(map)); CmpP(r0, FieldMemOperand(obj_map, HeapObject::kMapOffset)); } void MacroAssembler::CheckMap(Register obj, Register scratch, Handle<Map> map, Label* fail, SmiCheckType smi_check_type) { if (smi_check_type == DO_SMI_CHECK) { JumpIfSmi(obj, fail); } Label success; CompareMap(obj, scratch, map, &success); bne(fail); bind(&success); } void MacroAssembler::CheckMap(Register obj, Register scratch, Heap::RootListIndex index, Label* fail, SmiCheckType smi_check_type) { if (smi_check_type == DO_SMI_CHECK) { JumpIfSmi(obj, fail); } LoadP(scratch, FieldMemOperand(obj, HeapObject::kMapOffset)); CompareRoot(scratch, index); bne(fail); } void MacroAssembler::DispatchWeakMap(Register obj, Register scratch1, Register scratch2, Handle<WeakCell> cell, Handle<Code> success, SmiCheckType smi_check_type) { Label fail; if (smi_check_type == DO_SMI_CHECK) { JumpIfSmi(obj, &fail); } LoadP(scratch1, FieldMemOperand(obj, HeapObject::kMapOffset)); CmpWeakValue(scratch1, cell, scratch2); Jump(success, RelocInfo::CODE_TARGET, eq); bind(&fail); } void MacroAssembler::CmpWeakValue(Register value, Handle<WeakCell> cell, Register scratch, CRegister) { mov(scratch, Operand(cell)); CmpP(value, FieldMemOperand(scratch, WeakCell::kValueOffset)); } void MacroAssembler::GetWeakValue(Register value, Handle<WeakCell> cell) { mov(value, Operand(cell)); LoadP(value, FieldMemOperand(value, WeakCell::kValueOffset)); } void MacroAssembler::LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss) { GetWeakValue(value, cell); JumpIfSmi(value, miss); } void MacroAssembler::GetMapConstructor(Register result, Register map, Register temp, Register temp2) { Label done, loop; LoadP(result, FieldMemOperand(map, Map::kConstructorOrBackPointerOffset)); bind(&loop); JumpIfSmi(result, &done); CompareObjectType(result, temp, temp2, MAP_TYPE); bne(&done); LoadP(result, FieldMemOperand(result, Map::kConstructorOrBackPointerOffset)); b(&loop); bind(&done); } void MacroAssembler::CallStub(CodeStub* stub, TypeFeedbackId ast_id, Condition cond) { DCHECK(AllowThisStubCall(stub)); Call(stub->GetCode(), RelocInfo::CODE_TARGET, ast_id, cond); } void MacroAssembler::TailCallStub(CodeStub* stub, Condition cond) { Jump(stub->GetCode(), RelocInfo::CODE_TARGET, cond); } bool MacroAssembler::AllowThisStubCall(CodeStub* stub) { return has_frame_ || !stub->SometimesSetsUpAFrame(); } void MacroAssembler::TestDoubleIsInt32(DoubleRegister double_input, Register scratch1, Register scratch2, DoubleRegister double_scratch) { TryDoubleToInt32Exact(scratch1, double_input, scratch2, double_scratch); } void MacroAssembler::TestDoubleIsMinusZero(DoubleRegister input, Register scratch1, Register scratch2) { lgdr(scratch1, input); llihf(scratch2, Operand(0x80000000)); CmpP(scratch1, scratch2); } void MacroAssembler::TestDoubleSign(DoubleRegister input, Register scratch) { lgdr(scratch, input); cgfi(scratch, Operand::Zero()); } void MacroAssembler::TestHeapNumberSign(Register input, Register scratch) { LoadlW(scratch, FieldMemOperand(input, HeapNumber::kValueOffset + Register::kExponentOffset)); Cmp32(scratch, Operand::Zero()); } void MacroAssembler::TryDoubleToInt32Exact(Register result, DoubleRegister double_input, Register scratch, DoubleRegister double_scratch) { Label done; DCHECK(!double_input.is(double_scratch)); ConvertDoubleToInt64(double_input, scratch, result, double_scratch); TestIfInt32(result, r0); bne(&done); lgdr(scratch, double_scratch); cdfbr(double_scratch, scratch); cdbr(double_scratch, double_input); bind(&done); } void MacroAssembler::TryInt32Floor(Register result, DoubleRegister double_input, Register input_high, Register scratch, DoubleRegister double_scratch, Label* done, Label* exact) { DCHECK(!result.is(input_high)); DCHECK(!double_input.is(double_scratch)); Label exception; lay(sp, MemOperand(sp, -kDoubleSize)); StoreDouble(double_input, MemOperand(sp)); LoadlW(input_high, MemOperand(sp, Register::kExponentOffset)); la(sp, MemOperand(sp, kDoubleSize)); ExtractBitMask(result, input_high, HeapNumber::kExponentMask); CmpLogicalP(result, Operand(0x7ff)); beq(&exception); ConvertDoubleToInt64(double_input, scratch, result, double_scratch, kRoundToMinusInf); TestIfInt32(result, r0); bne(&exception); lgdr(scratch, double_scratch); cdfbr(double_scratch, scratch); cdbr(double_scratch, double_input); beq(exact); b(done); bind(&exception); } void MacroAssembler::TryInlineTruncateDoubleToI(Register result, DoubleRegister double_input, Label* done) { DoubleRegister double_scratch = kScratchDoubleReg; Register scratch = ip; ConvertDoubleToInt64(double_input, scratch, result, double_scratch); TestIfInt32(result, r0); beq(done); } void MacroAssembler::TruncateDoubleToI(Register result, DoubleRegister double_input) { Label done; TryInlineTruncateDoubleToI(result, double_input, &done); push(r14); lay(sp, MemOperand(sp, -kDoubleSize)); StoreDouble(double_input, MemOperand(sp)); DoubleToIStub stub(isolate(), sp, result, 0, true, true); CallStub(&stub); la(sp, MemOperand(sp, kDoubleSize)); pop(r14); bind(&done); } void MacroAssembler::TruncateHeapNumberToI(Register result, Register object) { Label done; DoubleRegister double_scratch = kScratchDoubleReg; DCHECK(!result.is(object)); LoadDouble(double_scratch, FieldMemOperand(object, HeapNumber::kValueOffset)); TryInlineTruncateDoubleToI(result, double_scratch, &done); push(r14); DoubleToIStub stub(isolate(), object, result, HeapNumber::kValueOffset - kHeapObjectTag, true, true); CallStub(&stub); pop(r14); bind(&done); } void MacroAssembler::TruncateNumberToI(Register object, Register result, Register heap_number_map, Register scratch1, Label* not_number) { Label done; DCHECK(!result.is(object)); UntagAndJumpIfSmi(result, object, &done); JumpIfNotHeapNumber(object, heap_number_map, scratch1, not_number); TruncateHeapNumberToI(result, object); bind(&done); } void MacroAssembler::GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits) { if (CpuFeatures::IsSupported(GENERAL_INSTR_EXT)) { risbg(dst, src, Operand(64 - num_least_bits), Operand(63), Operand(64 - kSmiShift), true); } else { SmiUntag(dst, src); AndP(dst, Operand((1 << num_least_bits) - 1)); } } void MacroAssembler::GetLeastBitsFromInt32(Register dst, Register src, int num_least_bits) { AndP(dst, src, Operand((1 << num_least_bits) - 1)); } void MacroAssembler::CallRuntime(const Runtime::Function* f, int num_arguments, SaveFPRegsMode save_doubles) { CHECK(f->nargs < 0 || f->nargs == num_arguments); mov(r2, Operand(num_arguments)); mov(r3, Operand(ExternalReference(f, isolate()))); CEntryStub stub(isolate(), f->result_size, save_doubles); CallStub(&stub); } void MacroAssembler::CallExternalReference(const ExternalReference& ext, int num_arguments) { mov(r2, Operand(num_arguments)); mov(r3, Operand(ext)); CEntryStub stub(isolate(), 1); CallStub(&stub); } void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) { const Runtime::Function* function = Runtime::FunctionForId(fid); DCHECK_EQ(1, function->result_size); if (function->nargs >= 0) argument
/external/v8/src/x64/
H A Dmacro-assembler-x64.cc193 void MacroAssembler::CompareRoot(Register with, Heap::RootListIndex index) { function in class:v8::internal::MacroAssembler
200 void MacroAssembler::CompareRoot(const Operand& with, function in class:v8::internal::MacroAssembler
578 CompareRoot(FieldOperand(elements, HeapObject::kMapOffset),
581 CompareRoot(FieldOperand(elements, HeapObject::kMapOffset),
584 CompareRoot(FieldOperand(elements, HeapObject::kMapOffset),
4928 CompareRoot(FieldOperand(dst, HeapObject::kMapOffset),
5230 CompareRoot(rcx, Heap::kNullValueRootIndex);
5272 CompareRoot(MemOperand(receiver_reg, kMementoMapOffset),

Completed in 156 milliseconds