| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index f451ba5d3f55c5f581207a7b5909136a02255d69..7a3aa0e021b91c879b19883803b7a03cba1a5d25 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -770,59 +770,36 @@ void MacroAssembler::RememberedSetHelper(Register object, // For debug tests.
|
|
|
| void MacroAssembler::PushCommonFrame(Register marker_reg) {
|
| if (marker_reg.is_valid()) {
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - if (marker_reg.code() > pp.code()) {
|
| - stm(db_w, sp, pp.bit() | fp.bit() | lr.bit());
|
| - add(fp, sp, Operand(kPointerSize));
|
| - Push(marker_reg);
|
| - } else {
|
| - stm(db_w, sp, marker_reg.bit() | pp.bit() | fp.bit() | lr.bit());
|
| - add(fp, sp, Operand(2 * kPointerSize));
|
| - }
|
| + if (marker_reg.code() > fp.code()) {
|
| + stm(db_w, sp, fp.bit() | lr.bit());
|
| + mov(fp, Operand(sp));
|
| + Push(marker_reg);
|
| } else {
|
| - if (marker_reg.code() > fp.code()) {
|
| - stm(db_w, sp, fp.bit() | lr.bit());
|
| - mov(fp, Operand(sp));
|
| - Push(marker_reg);
|
| - } else {
|
| - stm(db_w, sp, marker_reg.bit() | fp.bit() | lr.bit());
|
| - add(fp, sp, Operand(kPointerSize));
|
| - }
|
| + stm(db_w, sp, marker_reg.bit() | fp.bit() | lr.bit());
|
| + add(fp, sp, Operand(kPointerSize));
|
| }
|
| } else {
|
| - stm(db_w, sp, (FLAG_enable_embedded_constant_pool ? pp.bit() : 0) |
|
| - fp.bit() | lr.bit());
|
| - add(fp, sp, Operand(FLAG_enable_embedded_constant_pool ? kPointerSize : 0));
|
| + stm(db_w, sp, fp.bit() | lr.bit());
|
| + mov(fp, sp);
|
| }
|
| }
|
|
|
| void MacroAssembler::PopCommonFrame(Register marker_reg) {
|
| if (marker_reg.is_valid()) {
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - if (marker_reg.code() > pp.code()) {
|
| - pop(marker_reg);
|
| - ldm(ia_w, sp, pp.bit() | fp.bit() | lr.bit());
|
| - } else {
|
| - ldm(ia_w, sp, marker_reg.bit() | pp.bit() | fp.bit() | lr.bit());
|
| - }
|
| + if (marker_reg.code() > fp.code()) {
|
| + pop(marker_reg);
|
| + ldm(ia_w, sp, fp.bit() | lr.bit());
|
| } else {
|
| - if (marker_reg.code() > fp.code()) {
|
| - pop(marker_reg);
|
| - ldm(ia_w, sp, fp.bit() | lr.bit());
|
| - } else {
|
| - ldm(ia_w, sp, marker_reg.bit() | fp.bit() | lr.bit());
|
| - }
|
| + ldm(ia_w, sp, marker_reg.bit() | fp.bit() | lr.bit());
|
| }
|
| } else {
|
| - ldm(ia_w, sp, (FLAG_enable_embedded_constant_pool ? pp.bit() : 0) |
|
| - fp.bit() | lr.bit());
|
| + ldm(ia_w, sp, fp.bit() | lr.bit());
|
| }
|
| }
|
|
|
| void MacroAssembler::PushStandardFrame(Register function_reg) {
|
| DCHECK(!function_reg.is_valid() || function_reg.code() < cp.code());
|
| stm(db_w, sp, (function_reg.is_valid() ? function_reg.bit() : 0) | cp.bit() |
|
| - (FLAG_enable_embedded_constant_pool ? pp.bit() : 0) |
|
| fp.bit() | lr.bit());
|
| int offset = -StandardFrameConstants::kContextOffset;
|
| offset += function_reg.is_valid() ? kPointerSize : 0;
|
| @@ -833,11 +810,7 @@ void MacroAssembler::PushStandardFrame(Register function_reg) {
|
| // Push and pop all registers that can hold pointers.
|
| void MacroAssembler::PushSafepointRegisters() {
|
| // Safepoints expect a block of contiguous register values starting with r0.
|
| - // except when FLAG_enable_embedded_constant_pool, which omits pp.
|
| - DCHECK(kSafepointSavedRegisters ==
|
| - (FLAG_enable_embedded_constant_pool
|
| - ? ((1 << (kNumSafepointSavedRegisters + 1)) - 1) & ~pp.bit()
|
| - : (1 << kNumSafepointSavedRegisters) - 1));
|
| + DCHECK(kSafepointSavedRegisters == (1 << kNumSafepointSavedRegisters) - 1);
|
| // Safepoints expect a block of kNumSafepointRegisters values on the
|
| // stack, so adjust the stack for unsaved registers.
|
| const int num_unsaved = kNumSafepointRegisters - kNumSafepointSavedRegisters;
|
| @@ -867,10 +840,6 @@ void MacroAssembler::LoadFromSafepointRegisterSlot(Register dst, Register src) {
|
| int MacroAssembler::SafepointRegisterStackIndex(int reg_code) {
|
| // The registers are pushed starting with the highest encoding,
|
| // which means that lowest encodings are closest to the stack pointer.
|
| - if (FLAG_enable_embedded_constant_pool && reg_code > pp.code()) {
|
| - // RegList omits pp.
|
| - reg_code -= 1;
|
| - }
|
| DCHECK(reg_code >= 0 && reg_code < kNumSafepointRegisters);
|
| return reg_code;
|
| }
|
| @@ -1399,29 +1368,9 @@ void MacroAssembler::AsrPair(Register dst_low, Register dst_high,
|
| }
|
| }
|
|
|
| -void MacroAssembler::LoadConstantPoolPointerRegisterFromCodeTargetAddress(
|
| - Register code_target_address) {
|
| - DCHECK(FLAG_enable_embedded_constant_pool);
|
| - ldr(pp, MemOperand(code_target_address,
|
| - Code::kConstantPoolOffset - Code::kHeaderSize));
|
| - add(pp, pp, code_target_address);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::LoadConstantPoolPointerRegister() {
|
| - DCHECK(FLAG_enable_embedded_constant_pool);
|
| - int entry_offset = pc_offset() + Instruction::kPCReadOffset;
|
| - sub(ip, pc, Operand(entry_offset));
|
| - LoadConstantPoolPointerRegisterFromCodeTargetAddress(ip);
|
| -}
|
| -
|
| void MacroAssembler::StubPrologue(StackFrame::Type type) {
|
| mov(ip, Operand(StackFrame::TypeToMarker(type)));
|
| PushCommonFrame(ip);
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - LoadConstantPoolPointerRegister();
|
| - set_constant_pool_available(true);
|
| - }
|
| }
|
|
|
| void MacroAssembler::Prologue(bool code_pre_aging) {
|
| @@ -1440,10 +1389,6 @@ void MacroAssembler::Prologue(bool code_pre_aging) {
|
| nop(ip.code());
|
| }
|
| }
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - LoadConstantPoolPointerRegister();
|
| - set_constant_pool_available(true);
|
| - }
|
| }
|
|
|
| void MacroAssembler::EmitLoadFeedbackVector(Register vector) {
|
| @@ -1458,9 +1403,6 @@ void MacroAssembler::EnterFrame(StackFrame::Type type,
|
| // r0-r3: preserved
|
| mov(ip, Operand(StackFrame::TypeToMarker(type)));
|
| PushCommonFrame(ip);
|
| - if (FLAG_enable_embedded_constant_pool && load_constant_pool_pointer_reg) {
|
| - LoadConstantPoolPointerRegister();
|
| - }
|
| if (type == StackFrame::INTERNAL) {
|
| mov(ip, Operand(CodeObject()));
|
| push(ip);
|
| @@ -1474,18 +1416,10 @@ int MacroAssembler::LeaveFrame(StackFrame::Type type) {
|
| // r2: preserved
|
|
|
| // Drop the execution stack down to the frame pointer and restore
|
| - // the caller frame pointer, return address and constant pool pointer
|
| - // (if FLAG_enable_embedded_constant_pool).
|
| - int frame_ends;
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - add(sp, fp, Operand(StandardFrameConstants::kConstantPoolOffset));
|
| - frame_ends = pc_offset();
|
| - ldm(ia_w, sp, pp.bit() | fp.bit() | lr.bit());
|
| - } else {
|
| - mov(sp, fp);
|
| - frame_ends = pc_offset();
|
| - ldm(ia_w, sp, fp.bit() | lr.bit());
|
| - }
|
| + // the caller frame pointer and return address.
|
| + mov(sp, fp);
|
| + int frame_ends = pc_offset();
|
| + ldm(ia_w, sp, fp.bit() | lr.bit());
|
| return frame_ends;
|
| }
|
|
|
| @@ -1519,9 +1453,6 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space,
|
| mov(ip, Operand::Zero());
|
| str(ip, MemOperand(fp, ExitFrameConstants::kSPOffset));
|
| }
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - str(pp, MemOperand(fp, ExitFrameConstants::kConstantPoolOffset));
|
| - }
|
| mov(ip, Operand(CodeObject()));
|
| str(ip, MemOperand(fp, ExitFrameConstants::kCodeOffset));
|
|
|
| @@ -1537,8 +1468,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space,
|
| // Note that d0 will be accessible at
|
| // fp - ExitFrameConstants::kFrameSize -
|
| // DwVfpRegister::kMaxNumRegisters * kDoubleSize,
|
| - // since the sp slot, code slot and constant pool slot (if
|
| - // FLAG_enable_embedded_constant_pool) were pushed after the fp.
|
| + // since the sp slot and code slot were pushed after the fp.
|
| }
|
|
|
| // Reserve place for the return address and stack space and align the frame
|
| @@ -1603,9 +1533,6 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, Register argument_count,
|
| #endif
|
|
|
| // Tear down the exit frame, pop the arguments, and return.
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - ldr(pp, MemOperand(fp, ExitFrameConstants::kConstantPoolOffset));
|
| - }
|
| mov(sp, Operand(fp));
|
| ldm(ia_w, sp, fp.bit() | lr.bit());
|
| if (argument_count.is_valid()) {
|
|
|