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

Unified Diff: runtime/vm/intermediate_language.h

Issue 2452453002: Support unaligned integer loads on ARM and MIPS. (Closed)
Patch Set: . Created 4 years, 2 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
Index: runtime/vm/intermediate_language.h
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index 2876be7d7284602898e920d5549574ca2d4b03d5..71ed6275b656dddcd366981be590ea21e10cca4e 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -3847,15 +3847,9 @@ class LoadIndexedInstr : public TemplateDefinition<2, NoThrow> {
Value* index,
intptr_t index_scale,
intptr_t class_id,
+ bool aligned,
Cutch 2016/10/26 09:00:29 Consider defining an enum: enum MemoryAccessKind
intptr_t deopt_id,
- TokenPosition token_pos)
- : TemplateDefinition(deopt_id),
- index_scale_(index_scale),
- class_id_(class_id),
- token_pos_(token_pos) {
- SetInputAt(0, array);
- SetInputAt(1, index);
- }
+ TokenPosition token_pos);
TokenPosition token_pos() const { return token_pos_; }
@@ -3877,6 +3871,7 @@ class LoadIndexedInstr : public TemplateDefinition<2, NoThrow> {
Value* index() const { return inputs_[1]; }
intptr_t index_scale() const { return index_scale_; }
intptr_t class_id() const { return class_id_; }
+ bool aligned() const { return aligned_; }
virtual bool CanDeoptimize() const {
return GetDeoptId() != Thread::kNoDeoptId;
@@ -3890,6 +3885,7 @@ class LoadIndexedInstr : public TemplateDefinition<2, NoThrow> {
private:
const intptr_t index_scale_;
const intptr_t class_id_;
+ intptr_t aligned_;
const TokenPosition token_pos_;
DISALLOW_COPY_AND_ASSIGN(LoadIndexedInstr);
@@ -4053,18 +4049,9 @@ class StoreIndexedInstr : public TemplateDefinition<3, NoThrow> {
StoreBarrierType emit_store_barrier,
intptr_t index_scale,
intptr_t class_id,
+ bool aligned,
intptr_t deopt_id,
- TokenPosition token_pos)
- : TemplateDefinition(deopt_id),
- emit_store_barrier_(emit_store_barrier),
- index_scale_(index_scale),
- class_id_(class_id),
- token_pos_(token_pos) {
- SetInputAt(kArrayPos, array);
- SetInputAt(kIndexPos, index);
- SetInputAt(kValuePos, value);
- }
-
+ TokenPosition token_pos);
DECLARE_INSTRUCTION(StoreIndexed)
enum {
@@ -4079,6 +4066,7 @@ class StoreIndexedInstr : public TemplateDefinition<3, NoThrow> {
intptr_t index_scale() const { return index_scale_; }
intptr_t class_id() const { return class_id_; }
+ bool aligned() const { return aligned_; }
bool ShouldEmitStoreBarrier() const {
return value()->NeedsStoreBuffer()
@@ -4105,6 +4093,7 @@ class StoreIndexedInstr : public TemplateDefinition<3, NoThrow> {
const StoreBarrierType emit_store_barrier_;
const intptr_t index_scale_;
const intptr_t class_id_;
+ bool aligned_;
const TokenPosition token_pos_;
DISALLOW_COPY_AND_ASSIGN(StoreIndexedInstr);

Powered by Google App Engine
This is Rietveld 408576698