summaryrefslogtreecommitdiff
path: root/opcodes-hwacha-ut
blob: eeb693718f1b0835c563912753dca54802f9add8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# format of a line in this file:
# <instruction name> <args> <opcode>
#
# <opcode> is given by specifying one or more range/value pairs:
# hi..lo=value or bit=value or arg=value (e.g. 6..2=0x45 10=1 rd=0)
#
# <args> is one of rd, rs1, rs2, rs3, imm25, imm20, imm12, imm12lo, imm12hi,
# shamtw, shamt, rm

# vector scalar instructions
stop    31..25=0 24..20=0 19..15=0 14..12=5 11..7=0 6..2=0x1D 1..0=3
utidx   31..25=0 24..20=0 19..15=0 14..12=6 rd      6..2=0x1D 1..0=3
movz    31..25=0 rs2      rs1      14..12=7 rd      6..2=0x1D 1..0=3
movn    31..25=1 rs2      rs1      14..12=7 rd      6..2=0x1D 1..0=3
fmovz   31..25=2 rs2      rs1      14..12=7 rd      6..2=0x1D 1..0=3
fmovn   31..25=3 rs2      rs1      14..12=7 rd      6..2=0x1D 1..0=3

# half-precision floating-point operations for hwacha microthreads

fadd.h      rd rs1 rs2      31..27=0x0  rm       26..25=2 6..2=0x14 1..0=3
fsub.h      rd rs1 rs2      31..27=0x1  rm       26..25=2 6..2=0x14 1..0=3
fmul.h      rd rs1 rs2      31..27=0x2  rm       26..25=2 6..2=0x14 1..0=3
fdiv.h      rd rs1 rs2      31..27=0x3  rm       26..25=2 6..2=0x14 1..0=3
fsqrt.h     rd rs1 24..20=0 31..27=0x4  rm       26..25=2 6..2=0x14 1..0=3
fsgnj.h     rd rs1 rs2      31..27=0x5  14..12=0 26..25=2 6..2=0x14 1..0=3
fsgnjn.h    rd rs1 rs2      31..27=0x6  14..12=0 26..25=2 6..2=0x14 1..0=3
fsgnjx.h    rd rs1 rs2      31..27=0x7  14..12=0 26..25=2 6..2=0x14 1..0=3

fcvt.h.l    rd rs1 24..20=0 31..27=0xC  rm      26..25=2 6..2=0x14 1..0=3
fcvt.h.lu   rd rs1 24..20=0 31..27=0xD  rm      26..25=2 6..2=0x14 1..0=3
fcvt.h.w    rd rs1 24..20=0 31..27=0xE  rm      26..25=2 6..2=0x14 1..0=3
fcvt.h.wu   rd rs1 24..20=0 31..27=0xF  rm      26..25=2 6..2=0x14 1..0=3

fcvt.l.h    rd rs1 24..20=0 31..27=0x8  rm      26..25=2 6..2=0x14 1..0=3
fcvt.lu.h   rd rs1 24..20=0 31..27=0x9  rm      26..25=2 6..2=0x14 1..0=3
fcvt.w.h    rd rs1 24..20=0 31..27=0xA  rm      26..25=2 6..2=0x14 1..0=3
fcvt.wu.h   rd rs1 24..20=0 31..27=0xB  rm      26..25=2 6..2=0x14 1..0=3

fcvt.s.h    rd rs1 24..20=0 31..29=0x4 28..27=0 rm 26..25=2 6..2=0x14 1..0=3
fcvt.h.s    rd rs1 24..20=0 31..29=0x4 28..27=2 rm 26..25=0 6..2=0x14 1..0=3

fcvt.d.h    rd rs1 24..20=0 31..29=0x4 28..27=1 rm 26..25=2 6..2=0x14 1..0=3
fcvt.h.d    rd rs1 24..20=0 31..29=0x4 28..27=2 rm 26..25=1 6..2=0x14 1..0=3

feq.h     rd rs1 rs2      31..27=0x15 14..12=0 26..25=2 6..2=0x14 1..0=3
flt.h     rd rs1 rs2      31..27=0x16 14..12=0 26..25=2 6..2=0x14 1..0=3
fle.h     rd rs1 rs2      31..27=0x17 14..12=0 26..25=2 6..2=0x14 1..0=3

fmin.h    rd rs1 rs2      31..27=0x18 14..12=0 26..25=2 6..2=0x14 1..0=3
fmax.h    rd rs1 rs2      31..27=0x19 14..12=0 26..25=2 6..2=0x14 1..0=3

fmv.x.h     rd rs1      24..20=0 31..27=0x1C 14..12=0 26..25=2 6..2=0x14 1..0=3
fmv.h.x     rd rs1      24..20=0 31..27=0x1E 14..12=0 26..25=2 6..2=0x14 1..0=3

flh        rd rs1 imm12 14..12=1 6..2=0x01 1..0=3

fsh        imm12hi rs1 rs2 imm12lo 14..12=1 6..2=0x09 1..0=3

fmadd.h     rd rs1 rs2 rs3 rm 26..25=2 6..2=0x10 1..0=3
fmsub.h     rd rs1 rs2 rs3 rm 26..25=2 6..2=0x11 1..0=3
fnmsub.h    rd rs1 rs2 rs3 rm 26..25=2 6..2=0x12 1..0=3
fnmadd.h    rd rs1 rs2 rs3 rm 26..25=2 6..2=0x13 1..0=3