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

Unified Diff: runtime/vm/flow_graph_compiler_arm64.cc

Issue 1259713005: Save a few register moves in function prolog on arm64 by using the same pattern (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: address comments Created 5 years, 5 months 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
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/intermediate_language_arm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_arm64.cc
diff --git a/runtime/vm/flow_graph_compiler_arm64.cc b/runtime/vm/flow_graph_compiler_arm64.cc
index 9fd1d429e96c5bd29f1b978bb6a6a098ea5f298c..85e52de2c7dff09468cf82d29dbe858d6097f82d 100644
--- a/runtime/vm/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/flow_graph_compiler_arm64.cc
@@ -980,21 +980,13 @@ void FlowGraphCompiler::EmitFrameEntry() {
function.IsOptimizable() &&
(!is_optimizing() || may_reoptimize())) {
const Register function_reg = R6;
- const Register saved_pp = R7;
new_pp = R13;
// The pool pointer is not setup before entering the Dart frame.
- // Preserve PP of caller.
- __ mov(saved_pp, PP);
-
// Temporarily setup pool pointer for this dart function.
- __ LoadPoolPointer();
+ __ LoadPoolPointer(new_pp);
// Load function object using the callee's pool pointer.
- __ LoadObject(function_reg, function);
- // Preserve new PP and restore PP of caller.
- __ mov(new_pp, PP);
- __ mov(PP, saved_pp);
- __ set_constant_pool_allowed(false);
+ __ LoadFunctionFromCalleePool(function_reg, function, new_pp);
// Patch point is after the eventually inlined function object.
entry_patch_pc_offset_ = assembler()->CodeSize();
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/intermediate_language_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698