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

Side by Side Diff: runtime/vm/intermediate_language_arm.cc

Issue 2504693002: Mark lazily-patched native calls correctly as patchable. (Closed)
Patch Set: Created 4 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 unified diff | Download patch
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | runtime/vm/intermediate_language_arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 5
6 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. 6 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM.
7 #if defined(TARGET_ARCH_ARM) 7 #if defined(TARGET_ARCH_ARM)
8 8
9 #include "vm/intermediate_language.h" 9 #include "vm/intermediate_language.h"
10 10
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 } else { 985 } else {
986 // In the case of non bootstrap native methods the CallNativeCFunction 986 // In the case of non bootstrap native methods the CallNativeCFunction
987 // stub generates the redirection address when running under the simulator 987 // stub generates the redirection address when running under the simulator
988 // and hence we do not change 'entry' here. 988 // and hence we do not change 'entry' here.
989 stub_entry = StubCode::CallNativeCFunction_entry(); 989 stub_entry = StubCode::CallNativeCFunction_entry();
990 } 990 }
991 } 991 }
992 __ LoadImmediate(R1, argc_tag); 992 __ LoadImmediate(R1, argc_tag);
993 ExternalLabel label(entry); 993 ExternalLabel label(entry);
994 __ LoadNativeEntry(R9, &label, link_lazily() ? kPatchable : kNotPatchable); 994 __ LoadNativeEntry(R9, &label, link_lazily() ? kPatchable : kNotPatchable);
995 compiler->GenerateCall(token_pos(), *stub_entry, RawPcDescriptors::kOther, 995 if (link_lazily()) {
996 locs()); 996 compiler->GeneratePatchableCall(token_pos(), *stub_entry,
997 RawPcDescriptors::kOther, locs());
998 } else {
999 compiler->GenerateCall(token_pos(), *stub_entry, RawPcDescriptors::kOther,
1000 locs());
1001 }
997 __ Pop(result); 1002 __ Pop(result);
998 } 1003 }
999 1004
1000 1005
1001 LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary( 1006 LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary(
1002 Zone* zone, 1007 Zone* zone,
1003 bool opt) const { 1008 bool opt) const {
1004 const intptr_t kNumInputs = 1; 1009 const intptr_t kNumInputs = 1;
1005 // TODO(fschneider): Allow immediate operands for the char code. 1010 // TODO(fschneider): Allow immediate operands for the char code.
1006 return LocationSummary::Make(zone, kNumInputs, Location::RequiresRegister(), 1011 return LocationSummary::Make(zone, kNumInputs, Location::RequiresRegister(),
(...skipping 6215 matching lines...) Expand 10 before | Expand all | Expand 10 after
7222 compiler->GenerateRuntimeCall(TokenPosition::kNoSource, deopt_id(), 7227 compiler->GenerateRuntimeCall(TokenPosition::kNoSource, deopt_id(),
7223 kGrowRegExpStackRuntimeEntry, 1, locs()); 7228 kGrowRegExpStackRuntimeEntry, 1, locs());
7224 __ Drop(1); 7229 __ Drop(1);
7225 __ Pop(result); 7230 __ Pop(result);
7226 } 7231 }
7227 7232
7228 7233
7229 } // namespace dart 7234 } // namespace dart
7230 7235
7231 #endif // defined TARGET_ARCH_ARM 7236 #endif // defined TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | runtime/vm/intermediate_language_arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698