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

Unified Diff: runtime/vm/disassembler_arm64.cc

Issue 307523002: Adds more ARM64 SIMD instructions. (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
Index: runtime/vm/disassembler_arm64.cc
===================================================================
--- runtime/vm/disassembler_arm64.cc (revision 36687)
+++ runtime/vm/disassembler_arm64.cc (working copy)
@@ -1088,6 +1088,26 @@
Format(instr, "vmul'vsz 'vd, 'vn, 'vm");
} else if ((U == 1) && (opcode == 0x1f)) {
Format(instr, "vdiv'vsz 'vd, 'vn, 'vm");
+ } else if ((U == 0) && (opcode == 0x1c)) {
+ Format(instr, "vceq'vsz 'vd, 'vn, 'vm");
+ } else if ((U == 1) && (opcode == 0x1c)) {
+ if (instr->Bit(23) == 1) {
+ Format(instr, "vcgt'vsz 'vd, 'vn, 'vm");
+ } else {
+ Format(instr, "vcge'vsz 'vd, 'vn, 'vm");
+ }
+ } else if ((U == 0) && (opcode == 0x1e)) {
+ if (instr->Bit(23) == 1) {
+ Format(instr, "vmin'vsz 'vd, 'vn, 'vm");
+ } else {
+ Format(instr, "vmax'vsz 'vd, 'vn, 'vm");
+ }
+ } else if ((U == 0) && (opcode == 0x1f)) {
+ if (instr->Bit(23) == 1) {
+ Format(instr, "vrsqrt'vsz 'vd, 'vn, 'vm");
+ } else {
+ Format(instr, "vrecps'vsz 'vd, 'vn, 'vm");
+ }
} else {
Unknown(instr);
}
@@ -1123,6 +1143,26 @@
} else {
Unknown(instr);
}
+ } else if ((U == 1) && (op == 0x1f)) {
+ if (sz == 2) {
+ Format(instr, "vsqrts 'vd, 'vn");
+ } else if (sz == 3) {
+ Format(instr, "vsqrtd 'vd, 'vn");
+ } else {
+ Unknown(instr);
+ }
+ } else if ((U == 0) && (op == 0x1d)) {
+ if (sz != 2) {
+ Unknown(instr);
+ return;
+ }
+ Format(instr, "vrecpes 'vd, 'vn");
+ } else if ((U == 1) && (op == 0x1d)) {
+ if (sz != 2) {
+ Unknown(instr);
+ return;
+ }
+ Format(instr, "vrsqrtes 'vd, 'vn");
} else {
Unknown(instr);
}

Powered by Google App Engine
This is Rietveld 408576698