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

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

Issue 2452453002: Support unaligned integer loads on ARM and MIPS. (Closed)
Patch Set: review 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/intrinsifier.cc ('k') | runtime/vm/unit_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include <map> 5 #include <map>
6 #include <set> 6 #include <set>
7 #include <string> 7 #include <string>
8 8
9 #include "vm/kernel_to_il.h" 9 #include "vm/kernel_to_il.h"
10 10
(...skipping 2334 matching lines...) Expand 10 before | Expand all | Expand 10 after
2345 2345
2346 2346
2347 Fragment FlowGraphBuilder::StoreIndexed(intptr_t class_id) { 2347 Fragment FlowGraphBuilder::StoreIndexed(intptr_t class_id) {
2348 Value* value = Pop(); 2348 Value* value = Pop();
2349 Value* index = Pop(); 2349 Value* index = Pop();
2350 // TODO(27590): Omit store barrier when possible (e.g., storing 2350 // TODO(27590): Omit store barrier when possible (e.g., storing
2351 // some constants). 2351 // some constants).
2352 StoreIndexedInstr* store = new (Z) StoreIndexedInstr( 2352 StoreIndexedInstr* store = new (Z) StoreIndexedInstr(
2353 Pop(), // Array. 2353 Pop(), // Array.
2354 index, value, kEmitStoreBarrier, Instance::ElementSizeFor(class_id), 2354 index, value, kEmitStoreBarrier, Instance::ElementSizeFor(class_id),
2355 class_id, Thread::kNoDeoptId, TokenPosition::kNoSource); 2355 class_id, kAlignedAccess, Thread::kNoDeoptId, TokenPosition::kNoSource);
2356 Push(store); 2356 Push(store);
2357 return Fragment(store); 2357 return Fragment(store);
2358 } 2358 }
2359 2359
2360 2360
2361 Fragment FlowGraphBuilder::StoreInstanceField(const dart::Field& field) { 2361 Fragment FlowGraphBuilder::StoreInstanceField(const dart::Field& field) {
2362 Value* value = Pop(); 2362 Value* value = Pop();
2363 // TODO(27590): Omit store barrier when possible (e.g., storing 2363 // TODO(27590): Omit store barrier when possible (e.g., storing
2364 // some constants). 2364 // some constants).
2365 StoreInstanceFieldInstr* store = new (Z) StoreInstanceFieldInstr( 2365 StoreInstanceFieldInstr* store = new (Z) StoreInstanceFieldInstr(
(...skipping 3212 matching lines...) Expand 10 before | Expand all | Expand 10 after
5578 instructions += LoadLocal(closure); 5578 instructions += LoadLocal(closure);
5579 instructions += LoadLocal(parsed_function_->current_context_var()); 5579 instructions += LoadLocal(parsed_function_->current_context_var());
5580 instructions += StoreInstanceField(Closure::context_offset()); 5580 instructions += StoreInstanceField(Closure::context_offset());
5581 5581
5582 return instructions; 5582 return instructions;
5583 } 5583 }
5584 5584
5585 5585
5586 } // namespace kernel 5586 } // namespace kernel
5587 } // namespace dart 5587 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/intrinsifier.cc ('k') | runtime/vm/unit_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698