Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: src/arm/stub-cache-arm.cc

Issue 88043002: Out-of-line constant pool on Arm: Stage 3 - Set Constant Pool Pointer on Function Entry (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Re-upload to fix code-review error. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/arm/stub-cache-arm.cc
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
index 00ea079afe1ceedfb5cded0956c6d274c97536ca..875626766c39246e4f5998bf1ddca79e7e2fd9c7 100644
--- a/src/arm/stub-cache-arm.cc
+++ b/src/arm/stub-cache-arm.cc
@@ -847,6 +847,7 @@ static void GenerateFastApiDirectCall(MacroAssembler* masm,
Handle<JSFunction> function = optimization.constant_function();
__ Move(r5, function);
__ ldr(cp, FieldMemOperand(r5, JSFunction::kContextOffset));
+ __ LoadConstantPoolPointer(r5);
__ str(r5, MemOperand(sp, FCA::kCalleeIndex * kPointerSize));
// Construct the FunctionCallbackInfo.
@@ -2762,6 +2763,7 @@ Handle<Code> CallStubCompiler::CompileCallGlobal(
// Set up the context (function already in r1).
__ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
+ __ LoadConstantPoolPointer(r1);
// Jump to the cached code (tail call).
Counters* counters = isolate()->counters();
@@ -2868,6 +2870,7 @@ void StoreStubCompiler::GenerateStoreViaSetter(
// Restore context register.
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+ __ RestoreConstantPoolPointer();
}
__ Ret();
}
@@ -3001,8 +3004,9 @@ void LoadStubCompiler::GenerateLoadViaGetter(MacroAssembler* masm,
masm->isolate()->heap()->SetGetterStubDeoptPCOffset(masm->pc_offset());
}
- // Restore context register.
+ // Restore context and pointer pool register.
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+ __ RestoreConstantPoolPointer();
}
__ Ret();
}

Powered by Google App Engine
This is Rietveld 408576698