| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index 4034fa95a4e2f8f1fa8c2954de6cba96860676df..5e071d5e4c2dc923ca389664af4f6ceb7cee46d3 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -2216,34 +2216,8 @@ void MacroAssembler::GetMapConstructor(Register result, Register map,
|
| }
|
|
|
|
|
| -void MacroAssembler::TryGetFunctionPrototype(Register function,
|
| - Register result,
|
| - Register scratch,
|
| - Label* miss,
|
| - bool miss_on_bound_function) {
|
| - Label non_instance;
|
| - if (miss_on_bound_function) {
|
| - // Check that the receiver isn't a smi.
|
| - JumpIfSmi(function, miss);
|
| -
|
| - // Check that the function really is a function. Load map into result reg.
|
| - CompareObjectType(function, result, scratch, JS_FUNCTION_TYPE);
|
| - b(ne, miss);
|
| -
|
| - ldr(scratch,
|
| - FieldMemOperand(function, JSFunction::kSharedFunctionInfoOffset));
|
| - ldr(scratch,
|
| - FieldMemOperand(scratch, SharedFunctionInfo::kCompilerHintsOffset));
|
| - tst(scratch,
|
| - Operand(Smi::FromInt(1 << SharedFunctionInfo::kBoundFunction)));
|
| - b(ne, miss);
|
| -
|
| - // Make sure that the function has an instance prototype.
|
| - ldrb(scratch, FieldMemOperand(result, Map::kBitFieldOffset));
|
| - tst(scratch, Operand(1 << Map::kHasNonInstancePrototype));
|
| - b(ne, &non_instance);
|
| - }
|
| -
|
| +void MacroAssembler::TryGetFunctionPrototype(Register function, Register result,
|
| + Register scratch, Label* miss) {
|
| // Get the prototype or initial map from the function.
|
| ldr(result,
|
| FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
|
| @@ -2263,15 +2237,6 @@ void MacroAssembler::TryGetFunctionPrototype(Register function,
|
| // Get the prototype from the initial map.
|
| ldr(result, FieldMemOperand(result, Map::kPrototypeOffset));
|
|
|
| - if (miss_on_bound_function) {
|
| - jmp(&done);
|
| -
|
| - // Non-instance prototype: Fetch prototype from constructor field
|
| - // in initial map.
|
| - bind(&non_instance);
|
| - GetMapConstructor(result, result, scratch, ip);
|
| - }
|
| -
|
| // All done.
|
| bind(&done);
|
| }
|
| @@ -3386,75 +3351,6 @@ void MacroAssembler::CallCFunctionHelper(Register function,
|
| }
|
|
|
|
|
| -void MacroAssembler::GetRelocatedValueLocation(Register ldr_location,
|
| - Register result,
|
| - Register scratch) {
|
| - Label small_constant_pool_load, load_result;
|
| - ldr(result, MemOperand(ldr_location));
|
| -
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - // Check if this is an extended constant pool load.
|
| - and_(scratch, result, Operand(GetConsantPoolLoadMask()));
|
| - teq(scratch, Operand(GetConsantPoolLoadPattern()));
|
| - b(eq, &small_constant_pool_load);
|
| - if (emit_debug_code()) {
|
| - // Check that the instruction sequence is:
|
| - // movw reg, #offset_low
|
| - // movt reg, #offset_high
|
| - // ldr reg, [pp, reg]
|
| - Instr patterns[] = {GetMovWPattern(), GetMovTPattern(),
|
| - GetLdrPpRegOffsetPattern()};
|
| - for (int i = 0; i < 3; i++) {
|
| - ldr(result, MemOperand(ldr_location, i * kInstrSize));
|
| - and_(result, result, Operand(patterns[i]));
|
| - cmp(result, Operand(patterns[i]));
|
| - Check(eq, kTheInstructionToPatchShouldBeALoadFromConstantPool);
|
| - }
|
| - // Result was clobbered. Restore it.
|
| - ldr(result, MemOperand(ldr_location));
|
| - }
|
| -
|
| - // Get the offset into the constant pool. First extract movw immediate into
|
| - // result.
|
| - and_(scratch, result, Operand(0xfff));
|
| - mov(ip, Operand(result, LSR, 4));
|
| - and_(ip, ip, Operand(0xf000));
|
| - orr(result, scratch, Operand(ip));
|
| - // Then extract movt immediate and or into result.
|
| - ldr(scratch, MemOperand(ldr_location, kInstrSize));
|
| - and_(ip, scratch, Operand(0xf0000));
|
| - orr(result, result, Operand(ip, LSL, 12));
|
| - and_(scratch, scratch, Operand(0xfff));
|
| - orr(result, result, Operand(scratch, LSL, 16));
|
| -
|
| - b(&load_result);
|
| - }
|
| -
|
| - bind(&small_constant_pool_load);
|
| - if (emit_debug_code()) {
|
| - // Check that the instruction is a ldr reg, [<pc or pp> + offset] .
|
| - and_(result, result, Operand(GetConsantPoolLoadPattern()));
|
| - cmp(result, Operand(GetConsantPoolLoadPattern()));
|
| - Check(eq, kTheInstructionToPatchShouldBeALoadFromConstantPool);
|
| - // Result was clobbered. Restore it.
|
| - ldr(result, MemOperand(ldr_location));
|
| - }
|
| -
|
| - // Get the offset into the constant pool.
|
| - const uint32_t kLdrOffsetMask = (1 << 12) - 1;
|
| - and_(result, result, Operand(kLdrOffsetMask));
|
| -
|
| - bind(&load_result);
|
| - // Get the address of the constant.
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - add(result, pp, Operand(result));
|
| - } else {
|
| - add(result, ldr_location, Operand(result));
|
| - add(result, result, Operand(Instruction::kPCReadOffset));
|
| - }
|
| -}
|
| -
|
| -
|
| void MacroAssembler::CheckPageFlag(
|
| Register object,
|
| Register scratch,
|
|
|