aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Schmidt <colins@eecs.berkeley.edu>2018-10-29 12:08:24 -0700
committerColin Schmidt <colins@eecs.berkeley.edu>2018-10-29 19:16:39 -0700
commit2edd2fbe3bc87b9bc69481a722e591d126f4dbff (patch)
treee9a4a9109713baf01b0e0ab908cc32bfd7ff33cc
parent9b4c43f67289f44a53ea5babdb6e3840f8663de6 (diff)
downloadriscv-opcodes-2edd2fbe3bc87b9bc69481a722e591d126f4dbff.zip
riscv-opcodes-2edd2fbe3bc87b9bc69481a722e591d126f4dbff.tar.gz
riscv-opcodes-2edd2fbe3bc87b9bc69481a722e591d126f4dbff.tar.bz2
Align comparison opcodes with spec
-rw-r--r--opcodes-v22
-rwxr-xr-xparse-opcodes10
2 files changed, 19 insertions, 13 deletions
diff --git a/opcodes-v b/opcodes-v
index 267c3c7..1b1670e 100644
--- a/opcodes-v
+++ b/opcodes-v
@@ -143,10 +143,6 @@ vsl m vd vs1 vs2 27..25=0 31..28=9 14=1 6..0=0x57
vsr m vd vs1 vs2 27..25=1 31..28=9 14=1 6..0=0x57
vor m vd vs1 vs2 27..25=2 31..28=9 14=1 6..0=0x57
vand m vd vs1 vs2 27..25=3 31..28=9 14=1 6..0=0x57
-vseq m vd vs1 vs2 27..25=4 31..28=9 14=1 6..0=0x57
-vsne m vd vs1 vs2 27..25=5 31..28=9 14=1 6..0=0x57
-vslt m vd vs1 vs2 27..25=6 31..28=9 14=1 6..0=0x57
-vsge m vd vs1 vs2 27..25=7 31..28=9 14=1 6..0=0x57
# group 31..28=10 includes instructions that write xd
# (and may also read xs1 and/or xs2).
@@ -171,6 +167,12 @@ vpopc m vd vs1 27..25=7 31..28=12 14=1 6..0=0x57 24..20=1
vsqrt m vd vs1 27..25=7 31..28=12 14=1 6..0=0x57 24..20=2
# group 31..28=13
+vseq m vd vs1 vs2 27..25=0 31..28=13 14=1 6..0=0x57
+vsne m vd vs1 vs2 27..25=1 31..28=13 14=1 6..0=0x57
+vslt m vd vs1 vs2 27..25=2 31..28=13 14=1 6..0=0x57
+vsge m vd vs1 vs2 27..25=3 31..28=13 14=1 6..0=0x57
+vsltu m vd vs1 vs2 27..25=6 31..28=13 14=1 6..0=0x57
+vsgeu m vd vs1 vs2 27..25=7 31..28=13 14=1 6..0=0x57
# group 31..28=14
@@ -190,10 +192,11 @@ vfsgnjx.s m vd vs1 vs2 31..27=0x06 26..25=0 14=0 6..0=0x57
vfmin.s m vd vs1 vs2 31..27=0x07 26..25=0 14=0 6..0=0x57
vfmax.s m vd vs1 vs2 31..27=0x08 26..25=0 14=0 6..0=0x57
vfsqrt.s m vd vs1 24..20=0 31..27=0x09 26..25=0 14=0 6..0=0x57
+vfclass.s m vd vs1 24..20=1 31..27=0x09 26..25=0 14=0 6..0=0x57
vfle.s m vd vs1 vs2 31..27=0x0A 26..25=0 14=0 6..0=0x57
vflt.s m vd vs1 vs2 31..27=0x0B 26..25=0 14=0 6..0=0x57
vfeq.s m vd vs1 vs2 31..27=0x0C 26..25=0 14=0 6..0=0x57
-vfclass.s m vd vs1 24..20=0 31..27=0x0D 26..25=0 14=0 6..0=0x57
+vfne.s m vd vs1 vs2 31..27=0x0D 26..25=0 14=0 6..0=0x57
vfcvt.s.w m vd vs1 24..20=0 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.s.wu m vd vs1 24..20=1 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.s.l m vd vs1 24..20=2 31..27=0x0E 26..25=0 14=0 6..0=0x57
@@ -215,10 +218,11 @@ vfsgnjx.d m vd vs1 vs2 31..27=0x06 26..25=1 14=0 6..0=0x57
vfmin.d m vd vs1 vs2 31..27=0x07 26..25=1 14=0 6..0=0x57
vfmax.d m vd vs1 vs2 31..27=0x08 26..25=1 14=0 6..0=0x57
vfsqrt.d m vd vs1 24..20=0 31..27=0x09 26..25=1 14=0 6..0=0x57
+vfclass.d m vd vs1 24..20=1 31..27=0x09 26..25=1 14=0 6..0=0x57
vfle.d m vd vs1 vs2 31..27=0x0A 26..25=1 14=0 6..0=0x57
vflt.d m vd vs1 vs2 31..27=0x0B 26..25=1 14=0 6..0=0x57
vfeq.d m vd vs1 vs2 31..27=0x0C 26..25=1 14=0 6..0=0x57
-vfclass.d m vd vs1 24..20=0 31..27=0x0D 26..25=1 14=0 6..0=0x57
+vfne.d m vd vs1 vs2 31..27=0x0D 26..25=1 14=0 6..0=0x57
vfcvt.d.w m vd vs1 24..20=0 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.d.wu m vd vs1 24..20=1 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.d.l m vd vs1 24..20=2 31..27=0x0E 26..25=1 14=0 6..0=0x57
@@ -242,10 +246,11 @@ vfsgnjx.h m vd vs1 vs2 31..27=0x06 26..25=2 14=0 6..0=0x57
vfmin.h m vd vs1 vs2 31..27=0x07 26..25=2 14=0 6..0=0x57
vfmax.h m vd vs1 vs2 31..27=0x08 26..25=2 14=0 6..0=0x57
vfsqrt.h m vd vs1 24..20=0 31..27=0x09 26..25=2 14=0 6..0=0x57
+vfclass.h m vd vs1 24..20=1 31..27=0x09 26..25=2 14=0 6..0=0x57
vfle.h m vd vs1 vs2 31..27=0x0A 26..25=2 14=0 6..0=0x57
vflt.h m vd vs1 vs2 31..27=0x0B 26..25=2 14=0 6..0=0x57
vfeq.h m vd vs1 vs2 31..27=0x0C 26..25=2 14=0 6..0=0x57
-vfclass.h m vd vs1 24..20=0 31..27=0x0D 26..25=2 14=0 6..0=0x57
+vfne.h m vd vs1 vs2 31..27=0x0D 26..25=2 14=0 6..0=0x57
vfcvt.h.w m vd vs1 24..20=0 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.h.wu m vd vs1 24..20=1 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.h.l m vd vs1 24..20=2 31..27=0x0E 26..25=2 14=0 6..0=0x57
@@ -269,10 +274,11 @@ vfsgnjx.q m vd vs1 vs2 31..27=0x06 26..25=3 14=0 6..0=0x57
vfmin.q m vd vs1 vs2 31..27=0x07 26..25=3 14=0 6..0=0x57
vfmax.q m vd vs1 vs2 31..27=0x08 26..25=3 14=0 6..0=0x57
vfsqrt.q m vd vs1 24..20=0 31..27=0x09 26..25=3 14=0 6..0=0x57
+vfclass.q m vd vs1 24..20=1 31..27=0x09 26..25=3 14=0 6..0=0x57
vfle.q m vd vs1 vs2 31..27=0x0A 26..25=3 14=0 6..0=0x57
vflt.q m vd vs1 vs2 31..27=0x0B 26..25=3 14=0 6..0=0x57
vfeq.q m vd vs1 vs2 31..27=0x0C 26..25=3 14=0 6..0=0x57
-vfclass.q m vd vs1 24..20=0 31..27=0x0D 26..25=3 14=0 6..0=0x57
+vfne.q m vd vs1 vs2 31..27=0x0D 26..25=3 14=0 6..0=0x57
vfcvt.q.w m vd vs1 24..20=0 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.q.wu m vd vs1 24..20=1 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.q.l m vd vs1 24..20=2 31..27=0x0E 26..25=3 14=0 6..0=0x57
diff --git a/parse-opcodes b/parse-opcodes
index 03877f3..9df1702 100755
--- a/parse-opcodes
+++ b/parse-opcodes
@@ -954,8 +954,8 @@ def make_vector_adoc_table():
#print_vec_subtitile('RV32V Standard Extension')
print_vec_header()
print_vec_insts('vadd', 'vsub', 'vsl', 'vsr', 'vand', 'vor', 'vxor')
- print_vec_insts('vseq', 'vsne', 'vslt', 'vsge')
print_vec_insts('vclip', 'vcvt', 'vmpop', 'vmfirst', 'vextract', 'vinsert', 'vmerge', 'vselect', 'vslide')
+ print_vec_insts('vseq', 'vsne', 'vslt', 'vsge', 'vsltu', 'vsgeu')
print_vec_insts('vdiv', 'vrem', 'vmul', 'vmulh', 'vmulhu', 'vmulhsu')
print_vec_insts('vpopc')
print_vec_insts('vaddi', 'vsli', 'vsrli', 'vsrai', 'vclipi', 'vandi', 'vori', 'vxori')
@@ -965,7 +965,7 @@ def make_vector_adoc_table():
print_vec_insts('vfmadd.s', 'vfmsub.s')
print_vec_insts('vfadd.s', 'vfsub.s', 'vfmul.s', 'vfdiv.s', 'vfsqrt.s')
print_vec_insts('vfsgnj.s', 'vfsgnjn.s', 'vfsgnjx.s', 'vfmin.s', 'vfmax.s')
- print_vec_insts('vfeq.s', 'vflt.s', 'vfle.s', 'vfclass.s')
+ print_vec_insts('vfeq.s', 'vfne.s', 'vflt.s', 'vfle.s', 'vfclass.s')
print_vec_insts('vfcvt.w.s', 'vfcvt.wu.s', 'vfmv.x.w')
print_vec_insts('vfcvt.s.w', 'vfcvt.s.wu', 'vfmv.w.x')
print_vec_insts('vfcvt.l.s', 'vfcvt.lu.s')
@@ -975,7 +975,7 @@ def make_vector_adoc_table():
print_vec_insts('vfmadd.d', 'vfmsub.d')
print_vec_insts('vfadd.d', 'vfsub.d', 'vfmul.d', 'vfdiv.d', 'vfsqrt.d')
print_vec_insts('vfsgnj.d', 'vfsgnjn.d', 'vfsgnjx.d', 'vfmin.d', 'vfmax.d')
- print_vec_insts('vfeq.d', 'vflt.d', 'vfle.d', 'vfclass.d')
+ print_vec_insts('vfeq.d', 'vfne.d', 'vflt.d', 'vfle.d', 'vfclass.d')
print_vec_insts('vfcvt.s.d', 'vfcvt.d.s')
print_vec_insts('vfcvt.w.d', 'vfcvt.wu.d')
print_vec_insts('vfcvt.d.w', 'vfcvt.d.wu')
@@ -986,7 +986,7 @@ def make_vector_adoc_table():
print_vec_insts('vfmadd.h', 'vfmsub.h')
print_vec_insts('vfadd.h', 'vfsub.h', 'vfmul.h', 'vfdiv.h', 'vfsqrt.h')
print_vec_insts('vfsgnj.h', 'vfsgnjn.h', 'vfsgnjx.h', 'vfmin.h', 'vfmax.h')
- print_vec_insts('vfeq.h', 'vflt.h', 'vfle.h', 'vfclass.h')
+ print_vec_insts('vfeq.h', 'vfne.h', 'vflt.h', 'vfle.h', 'vfclass.h')
print_vec_insts('vfcvt.s.h', 'vfcvt.h.s')
print_vec_insts('vfcvt.w.h', 'vfcvt.wu.h')
print_vec_insts('vfcvt.h.w', 'vfcvt.h.wu')
@@ -997,7 +997,7 @@ def make_vector_adoc_table():
print_vec_insts('vfmadd.q', 'vfmsub.q')
print_vec_insts('vfadd.q', 'vfsub.q', 'vfmul.q', 'vfdiv.q', 'vfsqrt.q')
print_vec_insts('vfsgnj.q', 'vfsgnjn.q', 'vfsgnjx.q', 'vfmin.q', 'vfmax.q')
- print_vec_insts('vfeq.q', 'vflt.q', 'vfle.q', 'vfclass.q')
+ print_vec_insts('vfeq.q', 'vfne.q', 'vflt.q', 'vfle.q', 'vfclass.q')
print_vec_insts('vfcvt.s.q', 'vfcvt.q.s')
print_vec_insts('vfcvt.w.q', 'vfcvt.wu.q')
print_vec_insts('vfcvt.q.w', 'vfcvt.q.wu')