| Index: src/s390/macro-assembler-s390.cc
|
| diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
|
| index fbf82ccbc539d38e4bc545205bf5984a28830e61..78622d7d1d7b469eaff6d1c98f5558ffc8f74b26 100644
|
| --- a/src/s390/macro-assembler-s390.cc
|
| +++ b/src/s390/macro-assembler-s390.cc
|
| @@ -1956,62 +1956,10 @@ void MacroAssembler::CompareRoot(Register obj, Heap::RootListIndex index) {
|
| CmpP(obj, MemOperand(kRootRegister, index << kPointerSizeLog2));
|
| }
|
|
|
| -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);
|
| - CmpLogicalByte(FieldMemOperand(map, Map::kBitField2Offset),
|
| - Operand(Map::kMaximumBitField2FastHoleySmiElementValue));
|
| - ble(fail);
|
| - CmpLogicalByte(FieldMemOperand(map, Map::kBitField2Offset),
|
| - 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);
|
| - CmpLogicalByte(FieldMemOperand(map, Map::kBitField2Offset),
|
| - Operand(Map::kMaximumBitField2FastHoleySmiElementValue));
|
| - bgt(fail);
|
| -}
|
| -
|
| void MacroAssembler::SmiToDouble(DoubleRegister value, Register smi) {
|
| SmiUntag(ip, smi);
|
| ConvertIntToDouble(ip, value);
|
| }
|
| -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;
|
| -
|
| - // Handle smi values specially.
|
| - JumpIfSmi(value_reg, &smi_value);
|
| -
|
| - // Ensure that the object is a heap number
|
| - CheckMap(value_reg, scratch1, isolate()->factory()->heap_number_map(), fail,
|
| - DONT_DO_SMI_CHECK);
|
| -
|
| - LoadDouble(double_scratch,
|
| - FieldMemOperand(value_reg, HeapNumber::kValueOffset));
|
| - // Force a canonical NaN.
|
| - CanonicalizeNaN(double_scratch);
|
| - b(&store);
|
| -
|
| - bind(&smi_value);
|
| - SmiToDouble(double_scratch, value_reg);
|
| -
|
| - bind(&store);
|
| - SmiToDoubleArrayOffset(scratch1, key_reg);
|
| - StoreDouble(double_scratch,
|
| - FieldMemOperand(elements_reg, scratch1,
|
| - FixedDoubleArray::kHeaderSize - elements_offset));
|
| -}
|
|
|
| void MacroAssembler::CompareMap(Register obj, Register scratch, Handle<Map> map,
|
| Label* early_success) {
|
| @@ -2491,23 +2439,6 @@ void MacroAssembler::LoadContext(Register dst, int context_chain_length) {
|
| }
|
| }
|
|
|
| -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.
|
| - LoadP(scratch, NativeContextMemOperand());
|
| - LoadP(ip, ContextMemOperand(scratch, Context::ArrayMapIndex(expected_kind)));
|
| - CmpP(map_in_out, ip);
|
| - bne(no_map_match);
|
| -
|
| - // Use the transitioned cached map.
|
| - LoadP(map_in_out,
|
| - ContextMemOperand(scratch, Context::ArrayMapIndex(transitioned_kind)));
|
| -}
|
| -
|
| void MacroAssembler::LoadNativeContextSlot(int index, Register dst) {
|
| LoadP(dst, NativeContextMemOperand());
|
| LoadP(dst, ContextMemOperand(dst, index));
|
| @@ -2592,25 +2523,6 @@ void MacroAssembler::UntagAndJumpIfSmi(Register dst, Register src,
|
| beq(smi_case);
|
| }
|
|
|
| -void MacroAssembler::UntagAndJumpIfNotSmi(Register dst, Register src,
|
| - Label* non_smi_case) {
|
| - STATIC_ASSERT(kSmiTag == 0);
|
| - STATIC_ASSERT(kSmiTagSize == 1);
|
| -
|
| - // We can more optimally use TestIfSmi if dst != src
|
| - // otherwise, the UnTag operation will kill the CC and we cannot
|
| - // test the Tag bit.
|
| - if (src.code() != dst.code()) {
|
| - SmiUntag(dst, src);
|
| - TestIfSmi(src);
|
| - } else {
|
| - TestBit(src, 0, r0);
|
| - SmiUntag(dst, src);
|
| - LoadAndTestRR(r0, r0);
|
| - }
|
| - bne(non_smi_case);
|
| -}
|
| -
|
| void MacroAssembler::JumpIfEitherSmi(Register reg1, Register reg2,
|
| Label* on_either_smi) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| @@ -3413,42 +3325,6 @@ Register GetRegisterThatIsNotOneOf(Register reg1, Register reg2, Register reg3,
|
| return no_reg;
|
| }
|
|
|
| -void MacroAssembler::JumpIfDictionaryInPrototypeChain(Register object,
|
| - Register scratch0,
|
| - Register scratch1,
|
| - Label* found) {
|
| - DCHECK(!scratch1.is(scratch0));
|
| - Register current = scratch0;
|
| - Label loop_again, end;
|
| -
|
| - // scratch contained elements pointer.
|
| - LoadRR(current, object);
|
| - LoadP(current, FieldMemOperand(current, HeapObject::kMapOffset));
|
| - LoadP(current, FieldMemOperand(current, Map::kPrototypeOffset));
|
| - CompareRoot(current, Heap::kNullValueRootIndex);
|
| - beq(&end);
|
| -
|
| - // Loop based on the map going up the prototype chain.
|
| - bind(&loop_again);
|
| - LoadP(current, FieldMemOperand(current, HeapObject::kMapOffset));
|
| -
|
| - STATIC_ASSERT(JS_PROXY_TYPE < JS_OBJECT_TYPE);
|
| - STATIC_ASSERT(JS_VALUE_TYPE < JS_OBJECT_TYPE);
|
| - LoadlB(scratch1, FieldMemOperand(current, Map::kInstanceTypeOffset));
|
| - CmpP(scratch1, Operand(JS_OBJECT_TYPE));
|
| - blt(found);
|
| -
|
| - LoadlB(scratch1, FieldMemOperand(current, Map::kBitField2Offset));
|
| - DecodeField<Map::ElementsKindBits>(scratch1);
|
| - CmpP(scratch1, Operand(DICTIONARY_ELEMENTS));
|
| - beq(found);
|
| - LoadP(current, FieldMemOperand(current, Map::kPrototypeOffset));
|
| - CompareRoot(current, Heap::kNullValueRootIndex);
|
| - bne(&loop_again);
|
| -
|
| - bind(&end);
|
| -}
|
| -
|
| void MacroAssembler::mov(Register dst, const Operand& src) {
|
| if (src.rmode_ != kRelocInfo_NONEPTR) {
|
| // some form of relocation needed
|
|
|