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

Unified Diff: src/trusted/validator_arm/actual_classes.cc

Issue 10459058: Define a baseline and testing patterns for ARM load_store_word_byte table. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years, 6 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 | « no previous file | src/trusted/validator_arm/armv7.table » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator_arm/actual_classes.cc
===================================================================
--- src/trusted/validator_arm/actual_classes.cc (revision 8812)
+++ src/trusted/validator_arm/actual_classes.cc (working copy)
@@ -269,7 +269,12 @@
}
if (HasWriteBack(i) &&
- (n.reg(i).Equals(kRegisterPc) || n.reg(i).Equals(t.reg(i)))) {
+ (n.reg(i).Equals(kRegisterPc))) {
+ // NOTE: The manual states that that it is also unpredictable
+ // when HasWriteBack(i) and Rn=Rt. However, the compilers
+ // may not check for this. For the moment, we are changing
+ // the code to ignore this case for stores.
+ // TODO(karl): Should we not allow this?
return UNPREDICTABLE;
}
@@ -289,9 +294,14 @@
return UNPREDICTABLE;
}
- if (HasWriteBack(i) && n.reg(i).Equals(t2.reg(i))) {
- return UNPREDICTABLE;
- }
+ // NOTE: The manual states that that it is also unpredictable
+ // when HasWriteBack(i) and Rn=Rt. However, the compilers
+ // may not check for this. For the moment, we are changing
+ // the code to ignore this case for stores.
+ // TODO(karl): Should we not allow this?
+ // if (HasWriteBack(i) && n.reg(i).Equals(t2.reg(i))) {
+ // return UNPREDICTABLE;
+ // }
// Now apply non-double width restrictions for this instruction.
return StrImmediate::safety(i);
@@ -336,7 +346,12 @@
}
if (HasWriteBack(i) &&
- (n.reg(i).Equals(kRegisterPc) || n.reg(i).Equals(t.reg(i)))) {
+ (n.reg(i).Equals(kRegisterPc))) {
+ // NOTE: The manual states that that it is also unpredictable
+ // when HasWriteBack(i) and Rn=Rt. However, the compilers
+ // may not check for this. For the moment, we are changing
+ // the code to ignore this case for stores.
+ // TODO(karl): Should we not allow this?
return UNPREDICTABLE;
}
@@ -517,8 +532,12 @@
}
if (HasWriteBack(i) &&
- (n.reg(i).Equals(kRegisterPc) || n.reg(i).Equals(t.reg(i)) ||
- n.reg(i).Equals(t2.reg(i)))) {
+ (n.reg(i).Equals(kRegisterPc))) {
+ // NOTE: The manual states that that it is also unpredictable
+ // when HasWriteBack(i) and Rn=Rt or Rn=Rt2. However, the compilers
+ // may not check for this. For the moment, we are changing
+ // the code to ignore this case for stores.
+ // TODO(karl): Should we not allow this?
return UNPREDICTABLE;
}
« no previous file with comments | « no previous file | src/trusted/validator_arm/armv7.table » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698