| Index: src/ia32/macro-assembler-ia32.cc
|
| diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
|
| index 2fa9d0eda5e4351ae0503bd9cd0c0a1e44500847..1678b18c63dae2509113dc0e4995fbace32a8e23 100644
|
| --- a/src/ia32/macro-assembler-ia32.cc
|
| +++ b/src/ia32/macro-assembler-ia32.cc
|
| @@ -810,67 +810,6 @@ void MacroAssembler::CmpInstanceType(Register map, InstanceType type) {
|
| cmpb(FieldOperand(map, Map::kInstanceTypeOffset), Immediate(type));
|
| }
|
|
|
| -void MacroAssembler::CheckFastObjectElements(Register map,
|
| - Label* fail,
|
| - Label::Distance distance) {
|
| - STATIC_ASSERT(FAST_SMI_ELEMENTS == 0);
|
| - STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1);
|
| - STATIC_ASSERT(FAST_ELEMENTS == 2);
|
| - STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3);
|
| - cmpb(FieldOperand(map, Map::kBitField2Offset),
|
| - Immediate(Map::kMaximumBitField2FastHoleySmiElementValue));
|
| - j(below_equal, fail, distance);
|
| - cmpb(FieldOperand(map, Map::kBitField2Offset),
|
| - Immediate(Map::kMaximumBitField2FastHoleyElementValue));
|
| - j(above, fail, distance);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::CheckFastSmiElements(Register map,
|
| - Label* fail,
|
| - Label::Distance distance) {
|
| - STATIC_ASSERT(FAST_SMI_ELEMENTS == 0);
|
| - STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1);
|
| - cmpb(FieldOperand(map, Map::kBitField2Offset),
|
| - Immediate(Map::kMaximumBitField2FastHoleySmiElementValue));
|
| - j(above, fail, distance);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::StoreNumberToDoubleElements(
|
| - Register maybe_number,
|
| - Register elements,
|
| - Register key,
|
| - Register scratch1,
|
| - XMMRegister scratch2,
|
| - Label* fail,
|
| - int elements_offset) {
|
| - Label smi_value, done;
|
| - JumpIfSmi(maybe_number, &smi_value, Label::kNear);
|
| -
|
| - CheckMap(maybe_number,
|
| - isolate()->factory()->heap_number_map(),
|
| - fail,
|
| - DONT_DO_SMI_CHECK);
|
| -
|
| - // Double value, turn potential sNaN into qNaN.
|
| - Move(scratch2, 1.0);
|
| - mulsd(scratch2, FieldOperand(maybe_number, HeapNumber::kValueOffset));
|
| - jmp(&done, Label::kNear);
|
| -
|
| - bind(&smi_value);
|
| - // Value is a smi. Convert to a double and store.
|
| - // Preserve original value.
|
| - mov(scratch1, maybe_number);
|
| - SmiUntag(scratch1);
|
| - Cvtsi2sd(scratch2, scratch1);
|
| - bind(&done);
|
| - movsd(FieldOperand(elements, key, times_4,
|
| - FixedDoubleArray::kHeaderSize - elements_offset),
|
| - scratch2);
|
| -}
|
| -
|
| -
|
| void MacroAssembler::CompareMap(Register obj, Handle<Map> map) {
|
| cmp(FieldOperand(obj, HeapObject::kMapOffset), map);
|
| }
|
| @@ -2291,28 +2230,6 @@ void MacroAssembler::LoadGlobalProxy(Register dst) {
|
| mov(dst, ContextOperand(dst, Context::GLOBAL_PROXY_INDEX));
|
| }
|
|
|
| -
|
| -void MacroAssembler::LoadTransitionedArrayMapConditional(
|
| - ElementsKind expected_kind,
|
| - ElementsKind transitioned_kind,
|
| - Register map_in_out,
|
| - Register scratch,
|
| - Label* no_map_match) {
|
| - DCHECK(IsFastElementsKind(expected_kind));
|
| - DCHECK(IsFastElementsKind(transitioned_kind));
|
| -
|
| - // Check that the function's map is the same as the expected cached map.
|
| - mov(scratch, NativeContextOperand());
|
| - cmp(map_in_out,
|
| - ContextOperand(scratch, Context::ArrayMapIndex(expected_kind)));
|
| - j(not_equal, no_map_match);
|
| -
|
| - // Use the transitioned cached map.
|
| - mov(map_in_out,
|
| - ContextOperand(scratch, Context::ArrayMapIndex(transitioned_kind)));
|
| -}
|
| -
|
| -
|
| void MacroAssembler::LoadGlobalFunction(int index, Register function) {
|
| // Load the native context from the current context.
|
| mov(function, NativeContextOperand());
|
| @@ -3162,43 +3079,6 @@ void MacroAssembler::TestJSArrayForAllocationMemento(
|
| cmp(scratch_reg, Immediate(isolate()->factory()->allocation_memento_map()));
|
| }
|
|
|
| -
|
| -void MacroAssembler::JumpIfDictionaryInPrototypeChain(
|
| - Register object,
|
| - Register scratch0,
|
| - Register scratch1,
|
| - Label* found) {
|
| - DCHECK(!scratch1.is(scratch0));
|
| - Factory* factory = isolate()->factory();
|
| - Register current = scratch0;
|
| - Label loop_again, end;
|
| -
|
| - // scratch contained elements pointer.
|
| - mov(current, object);
|
| - mov(current, FieldOperand(current, HeapObject::kMapOffset));
|
| - mov(current, FieldOperand(current, Map::kPrototypeOffset));
|
| - cmp(current, Immediate(factory->null_value()));
|
| - j(equal, &end);
|
| -
|
| - // Loop based on the map going up the prototype chain.
|
| - bind(&loop_again);
|
| - mov(current, FieldOperand(current, HeapObject::kMapOffset));
|
| - STATIC_ASSERT(JS_PROXY_TYPE < JS_OBJECT_TYPE);
|
| - STATIC_ASSERT(JS_VALUE_TYPE < JS_OBJECT_TYPE);
|
| - CmpInstanceType(current, JS_OBJECT_TYPE);
|
| - j(below, found);
|
| - mov(scratch1, FieldOperand(current, Map::kBitField2Offset));
|
| - DecodeField<Map::ElementsKindBits>(scratch1);
|
| - cmp(scratch1, Immediate(DICTIONARY_ELEMENTS));
|
| - j(equal, found);
|
| - mov(current, FieldOperand(current, Map::kPrototypeOffset));
|
| - cmp(current, Immediate(factory->null_value()));
|
| - j(not_equal, &loop_again);
|
| -
|
| - bind(&end);
|
| -}
|
| -
|
| -
|
| void MacroAssembler::TruncatingDiv(Register dividend, int32_t divisor) {
|
| DCHECK(!dividend.is(eax));
|
| DCHECK(!dividend.is(edx));
|
|
|