summaryrefslogtreecommitdiff
path: root/src/jit/instrsarm64.h
diff options
context:
space:
mode:
authorSteve MacLean <sdmaclea.qdt@qualcommdatacenter.com>2017-10-19 17:43:11 -0400
committerSteve MacLean <sdmaclea.qdt@qualcommdatacenter.com>2017-10-20 17:07:01 -0400
commit8883f2241425e9a74611e667ac1a1af9c4c9a7bc (patch)
treee45b1ce975af0e6be0029fa453ea0ed121c8e49d /src/jit/instrsarm64.h
parentae991c3a6042256c25d6c82e2714cd41eb14798a (diff)
downloadcoreclr-8883f2241425e9a74611e667ac1a1af9c4c9a7bc.tar.gz
coreclr-8883f2241425e9a74611e667ac1a1af9c4c9a7bc.tar.bz2
coreclr-8883f2241425e9a74611e667ac1a1af9c4c9a7bc.zip
[Arm64] Add more SIMD instructions
Diffstat (limited to 'src/jit/instrsarm64.h')
-rw-r--r--src/jit/instrsarm64.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/jit/instrsarm64.h b/src/jit/instrsarm64.h
index fc2b44f197..433bde7f5f 100644
--- a/src/jit/instrsarm64.h
+++ b/src/jit/instrsarm64.h
@@ -622,6 +622,11 @@ INST2(ctst, "ctst", 0, 0, IF_EN2O, 0x5EE08C00, 0x0E208C00)
// ctst Vd,Vn,Vm DV_3E 01011110111mmmmm 100011nnnnnddddd 5EE0 8C00 Vd,Vn,Vm (scalar)
// ctst Vd,Vn,Vm DV_3A 0Q001110XX1mmmmm 100011nnnnnddddd 0E20 8C00 Vd,Vn,Vm (vector)
+// enum name FP LD/ST DV_2G DV_3B
+INST2(faddp, "faddp", 0, 0, IF_EN2P, 0x7E30D800, 0x2E20D400)
+ // faddp Vd,Vn DV_2G 011111100X110000 110110nnnnnddddd 7E30 D800 Vd,Vn (scalar)
+ // faddp Vd,Vn,Vm DV_3B 0Q1011100X1mmmmm 110101nnnnnddddd 2E20 D400 Vd,Vn,Vm (vector)
+
INST1(ldar, "ldar", 0,LD, IF_LS_2A, 0x88DFFC00)
// ldar Rt,[Xn] LS_2A 1X00100011011111 111111nnnnnttttt 88DF FC00
@@ -983,7 +988,7 @@ INST1(bif, "bif", 0, 0, IF_DV_3C, 0x2EE01C00)
// bif Vd,Vn,Vm DV_3C 0Q101110111mmmmm 000111nnnnnddddd 2EE0 1C00 Vd,Vn,Vm
INST1(addv, "addv", 0, 0, IF_DV_2M, 0x0E31B800)
- // addv Vd,Vn,imm DV_2M 0Q001110XX110001 101110nnnnnddddd 0E31 B800 Vd,Vn (vector)
+ // addv Vd,Vn DV_2M 0Q001110XX110001 101110nnnnnddddd 0E31 B800 Vd,Vn (vector)
INST1(cnt, "cnt", 0, 0, IF_DV_2M, 0x0E205800)
// cnt Vd,Vn DV_2M 0Q00111000100000 010110nnnnnddddd 0E20 5800 Vd,Vn (vector)
@@ -992,16 +997,28 @@ INST1(not, "not", 0, 0, IF_DV_2M, 0x2E205800)
// not Vd,Vn DV_2M 0Q10111000100000 010110nnnnnddddd 2E20 5800 Vd,Vn (vector)
INST1(saddlv, "saddlv", 0, 0, IF_DV_2M, 0x0E303800)
- // saddlv Vd,Vn,imm DV_2M 0Q001110XX110000 001110nnnnnddddd 0E30 3800 Vd,Vn (vector)
+ // saddlv Vd,Vn DV_2M 0Q001110XX110000 001110nnnnnddddd 0E30 3800 Vd,Vn (vector)
+
+INST1(smaxv, "smaxv", 0, 0, IF_DV_2M, 0x0E30A800)
+ // smaxv Vd,Vn DV_2M 0Q001110XX110000 101010nnnnnddddd 0E30 A800 Vd,Vn (vector)
+
+INST1(sminv, "sminv", 0, 0, IF_DV_2M, 0x0E31A800)
+ // sminv Vd,Vn DV_2M 0Q001110XX110001 101010nnnnnddddd 0E31 A800 Vd,Vn (vector)
INST1(uaddlv, "uaddlv", 0, 0, IF_DV_2M, 0x2E303800)
- // uaddlv Vd,Vn,imm DV_2M 0Q101110XX110000 001110nnnnnddddd 2E30 3800 Vd,Vn (vector)
+ // uaddlv Vd,Vn DV_2M 0Q101110XX110000 001110nnnnnddddd 2E30 3800 Vd,Vn (vector)
+
+INST1(umaxv, "umaxv", 0, 0, IF_DV_2M, 0x2E30A800)
+ // umaxv Vd,Vn DV_2M 0Q101110XX110000 101010nnnnnddddd 2E30 A800 Vd,Vn (vector)
+
+INST1(uminv, "uminv", 0, 0, IF_DV_2M, 0x2E31A800)
+ // uminv Vd,Vn DV_2M 0Q101110XX110001 101010nnnnnddddd 2E31 A800 Vd,Vn (vector)
INST1(xtn, "xtn", 0, 0, IF_DV_2M, 0x0E212800)
- // xtn Vd,Vn,imm DV_2M 00101110XX110000 001110nnnnnddddd 0E21 2800 Vd,Vn (vector)
+ // xtn Vd,Vn DV_2M 00101110XX110000 001110nnnnnddddd 0E21 2800 Vd,Vn (vector)
INST1(xtn2, "xtn2", 0, 0, IF_DV_2M, 0x4E212800)
- // xtn Vd,Vn,imm DV_2M 01101110XX110000 001110nnnnnddddd 4E21 2800 Vd,Vn (vector)
+ // xtn2 Vd,Vn DV_2M 01101110XX110000 001110nnnnnddddd 4E21 2800 Vd,Vn (vector)
INST1(fnmul, "fnmul", 0, 0, IF_DV_3D, 0x1E208800)
// fnmul Vd,Vn,Vm DV_3D 000111100X1mmmmm 100010nnnnnddddd 1E20 8800 Vd,Vn,Vm (scalar)