| Index: src/ppc/code-stubs-ppc.cc
|
| diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc
|
| index 2b848b29f3eaafa38e922ed0d53d40d591d0cfbd..c48462007d9514f57e658d2116b051a11a2e5d82 100644
|
| --- a/src/ppc/code-stubs-ppc.cc
|
| +++ b/src/ppc/code-stubs-ppc.cc
|
| @@ -111,7 +111,7 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
|
| int param_count = descriptor.GetEnvironmentParameterCount();
|
| {
|
| // Call the runtime system in a fresh internal frame.
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
| DCHECK(param_count == 0 ||
|
| r3.is(descriptor.GetEnvironmentParameterRegister(param_count - 1)));
|
| // Push arguments
|
| @@ -1164,11 +1164,15 @@ void CEntryStub::Generate(MacroAssembler* masm) {
|
| __ bind(&skip);
|
|
|
| // Compute the handler entry address and jump to it.
|
| + ConstantPoolUnavailableScope constant_pool_unavailable(masm);
|
| __ mov(r4, Operand(pending_handler_code_address));
|
| __ LoadP(r4, MemOperand(r4));
|
| __ mov(r5, Operand(pending_handler_offset_address));
|
| __ LoadP(r5, MemOperand(r5));
|
| __ addi(r4, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); // Code start
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r4);
|
| + }
|
| __ add(ip, r4, r5);
|
| __ Jump(ip);
|
| }
|
| @@ -1210,6 +1214,10 @@ void JSEntryStub::Generate(MacroAssembler* masm) {
|
| // r7: argv
|
| __ li(r0, Operand(-1)); // Push a bad frame pointer to fail if it is used.
|
| __ push(r0);
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + __ li(kConstantPoolRegister, Operand::Zero());
|
| + __ push(kConstantPoolRegister);
|
| + }
|
| int marker = type();
|
| __ LoadSmiLiteral(r0, Smi::FromInt(marker));
|
| __ push(r0);
|
| @@ -1524,7 +1532,7 @@ void InstanceofStub::Generate(MacroAssembler* masm) {
|
| __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION);
|
| } else {
|
| {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
| __ Push(r3, r4);
|
| __ InvokeBuiltin(Builtins::INSTANCE_OF, CALL_FUNCTION);
|
| }
|
| @@ -2536,7 +2544,7 @@ static void CallStubInRecordCallTarget(MacroAssembler* masm, CodeStub* stub) {
|
| // r5 : Feedback vector
|
| // r6 : slot in feedback vector (Smi)
|
| // r4 : the function to call
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
|
|
| // Number-of-arguments register must be smi-tagged to call out.
|
| __ SmiTag(r3);
|
| @@ -2700,7 +2708,7 @@ static void EmitSlowCase(MacroAssembler* masm, int argc, Label* non_function) {
|
| static void EmitWrapCase(MacroAssembler* masm, int argc, Label* cont) {
|
| // Wrap the receiver and patch it back onto the stack.
|
| {
|
| - FrameScope frame_scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope frame_scope(masm, StackFrame::INTERNAL);
|
| __ Push(r4, r6);
|
| __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION);
|
| __ pop(r4);
|
| @@ -3018,7 +3026,7 @@ void CallICStub::Generate(MacroAssembler* masm) {
|
| // r6 - slot
|
| // r4 - function
|
| {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
| CreateWeakCellStub create_stub(masm->isolate());
|
| __ Push(r4);
|
| __ CallStub(&create_stub);
|
| @@ -3046,7 +3054,7 @@ void CallICStub::Generate(MacroAssembler* masm) {
|
|
|
|
|
| void CallICStub::GenerateMiss(MacroAssembler* masm) {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
|
|
| // Push the function and feedback info.
|
| __ Push(r4, r5, r6);
|
| @@ -4015,7 +4023,7 @@ void CompareICStub::GenerateMiss(MacroAssembler* masm) {
|
| ExternalReference miss =
|
| ExternalReference(IC_Utility(IC::kCompareIC_Miss), isolate());
|
|
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
| __ Push(r4, r3);
|
| __ Push(r4, r3);
|
| __ LoadSmiLiteral(r0, Smi::FromInt(op()));
|
|
|