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

Unified Diff: runtime/vm/constants_arm64.h

Issue 269343010: Adds single-precision and SIMD load/store to arm64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 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_test.cc ('k') | runtime/vm/disassembler_arm64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/constants_arm64.h
===================================================================
--- runtime/vm/constants_arm64.h (revision 35932)
+++ runtime/vm/constants_arm64.h (working copy)
@@ -219,6 +219,7 @@
kDoubleWord,
kSWord,
kDWord,
+ kQWord,
};
static inline int Log2OperandSizeBytes(OperandSize os) {
@@ -236,6 +237,8 @@
case kDoubleWord:
case kDWord:
return 3;
+ case kQWord:
+ return 4;
default:
UNREACHABLE();
break;
@@ -243,6 +246,27 @@
return -1;
}
+static inline bool IsSignedOperand(OperandSize os) {
+ switch (os) {
+ case kByte:
+ case kHalfword:
+ case kWord:
+ return true;
+ case kUnsignedByte:
+ case kUnsignedHalfword:
+ case kUnsignedWord:
+ case kDoubleWord:
+ case kSWord:
+ case kDWord:
+ case kQWord:
+ return false;
+ default:
+ UNREACHABLE();
+ break;
+ }
+ return false;
+}
+
// Opcodes from C3
// C3.1.
enum MainOp {
@@ -337,8 +361,11 @@
LoadStoreRegFixed = LoadStoreFixed | B29 | B28,
STR = LoadStoreRegFixed,
LDR = LoadStoreRegFixed | B22,
+ LDRS = LoadStoreRegFixed | B23,
FSTR = STR | B26,
FLDR = LDR | B26,
+ FSTRQ = STR | B26 | B23,
+ FLDRQ = LDR | B26 | B23,
};
// C3.4.1
@@ -442,6 +469,8 @@
FABSD = FPOneSourceFixed | B22 | B15,
FNEGD = FPOneSourceFixed | B22 | B16,
FSQRTD = FPOneSourceFixed | B22 | B16 | B15,
+ FCVTDS = FPOneSourceFixed | B15 | B17,
+ FCVTSD = FPOneSourceFixed | B22 | B17,
};
// C3.6.26
« no previous file with comments | « runtime/vm/assembler_arm64_test.cc ('k') | runtime/vm/disassembler_arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698