]> Git Repo - qemu.git/blob - target/loongarch/insns.decode
target/loongarch: Add fixed point bit instruction translation
[qemu.git] / target / loongarch / insns.decode
1 # SPDX-License-Identifier: GPL-2.0-or-later
2 #
3 # LoongArch instruction decode definitions.
4 #
5 # Copyright (c) 2021 Loongson Technology Corporation Limited
6 #
7
8 #
9 # Fields
10 #
11 %sa2p1     15:2         !function=plus_1
12
13 #
14 # Argument sets
15 #
16 &r_i          rd imm
17 &rr           rd rj
18 &rrr          rd rj rk
19 &rr_i         rd rj imm
20 &rrr_sa       rd rj rk sa
21 &rr_ms_ls     rd rj ms ls
22
23 #
24 # Formats
25 #
26 @rr               .... ........ ..... ..... rj:5 rd:5    &rr
27 @rrr               .... ........ ..... rk:5 rj:5 rd:5    &rrr
28 @r_i20                          .... ... imm:s20 rd:5    &r_i
29 @rr_ui5           .... ........ ..... imm:5 rj:5 rd:5    &rr_i
30 @rr_ui6            .... ........ .... imm:6 rj:5 rd:5    &rr_i
31 @rr_i12                 .... ...... imm:s12 rj:5 rd:5    &rr_i
32 @rr_ui12                 .... ...... imm:12 rj:5 rd:5    &rr_i
33 @rr_i16                     .... .. imm:s16 rj:5 rd:5    &rr_i
34 @rrr_sa2p1        .... ........ ... .. rk:5 rj:5 rd:5    &rrr_sa  sa=%sa2p1
35 @rrr_sa2        .... ........ ... sa:2 rk:5 rj:5 rd:5    &rrr_sa
36 @rrr_sa3         .... ........ .. sa:3 rk:5 rj:5 rd:5    &rrr_sa
37 @rr_2bw            .... ....... ms:5 . ls:5 rj:5 rd:5    &rr_ms_ls
38 @rr_2bd               .... ...... ms:6 ls:6 rj:5 rd:5    &rr_ms_ls
39
40 #
41 # Fixed point arithmetic operation instruction
42 #
43 add_w           0000 00000001 00000 ..... ..... .....    @rrr
44 add_d           0000 00000001 00001 ..... ..... .....    @rrr
45 sub_w           0000 00000001 00010 ..... ..... .....    @rrr
46 sub_d           0000 00000001 00011 ..... ..... .....    @rrr
47 slt             0000 00000001 00100 ..... ..... .....    @rrr
48 sltu            0000 00000001 00101 ..... ..... .....    @rrr
49 slti            0000 001000 ............ ..... .....     @rr_i12
50 sltui           0000 001001 ............ ..... .....     @rr_i12
51 nor             0000 00000001 01000 ..... ..... .....    @rrr
52 and             0000 00000001 01001 ..... ..... .....    @rrr
53 or              0000 00000001 01010 ..... ..... .....    @rrr
54 xor             0000 00000001 01011 ..... ..... .....    @rrr
55 orn             0000 00000001 01100 ..... ..... .....    @rrr
56 andn            0000 00000001 01101 ..... ..... .....    @rrr
57 mul_w           0000 00000001 11000 ..... ..... .....    @rrr
58 mulh_w          0000 00000001 11001 ..... ..... .....    @rrr
59 mulh_wu         0000 00000001 11010 ..... ..... .....    @rrr
60 mul_d           0000 00000001 11011 ..... ..... .....    @rrr
61 mulh_d          0000 00000001 11100 ..... ..... .....    @rrr
62 mulh_du         0000 00000001 11101 ..... ..... .....    @rrr
63 mulw_d_w        0000 00000001 11110 ..... ..... .....    @rrr
64 mulw_d_wu       0000 00000001 11111 ..... ..... .....    @rrr
65 div_w           0000 00000010 00000 ..... ..... .....    @rrr
66 mod_w           0000 00000010 00001 ..... ..... .....    @rrr
67 div_wu          0000 00000010 00010 ..... ..... .....    @rrr
68 mod_wu          0000 00000010 00011 ..... ..... .....    @rrr
69 div_d           0000 00000010 00100 ..... ..... .....    @rrr
70 mod_d           0000 00000010 00101 ..... ..... .....    @rrr
71 div_du          0000 00000010 00110 ..... ..... .....    @rrr
72 mod_du          0000 00000010 00111 ..... ..... .....    @rrr
73 alsl_w          0000 00000000 010 .. ..... ..... .....   @rrr_sa2p1
74 alsl_wu         0000 00000000 011 .. ..... ..... .....   @rrr_sa2p1
75 alsl_d          0000 00000010 110 .. ..... ..... .....   @rrr_sa2p1
76 lu12i_w         0001 010 .................... .....      @r_i20
77 lu32i_d         0001 011 .................... .....      @r_i20
78 lu52i_d         0000 001100 ............ ..... .....     @rr_i12
79 pcaddi          0001 100 .................... .....      @r_i20
80 pcalau12i       0001 101 .................... .....      @r_i20
81 pcaddu12i       0001 110 .................... .....      @r_i20
82 pcaddu18i       0001 111 .................... .....      @r_i20
83 addi_w          0000 001010 ............ ..... .....     @rr_i12
84 addi_d          0000 001011 ............ ..... .....     @rr_i12
85 addu16i_d       0001 00 ................ ..... .....     @rr_i16
86 andi            0000 001101 ............ ..... .....     @rr_ui12
87 ori             0000 001110 ............ ..... .....     @rr_ui12
88 xori            0000 001111 ............ ..... .....     @rr_ui12
89
90 #
91 # Fixed point shift operation instruction
92 #
93 sll_w           0000 00000001 01110 ..... ..... .....    @rrr
94 srl_w           0000 00000001 01111 ..... ..... .....    @rrr
95 sra_w           0000 00000001 10000 ..... ..... .....    @rrr
96 sll_d           0000 00000001 10001 ..... ..... .....    @rrr
97 srl_d           0000 00000001 10010 ..... ..... .....    @rrr
98 sra_d           0000 00000001 10011 ..... ..... .....    @rrr
99 rotr_w          0000 00000001 10110 ..... ..... .....    @rrr
100 rotr_d          0000 00000001 10111 ..... ..... .....    @rrr
101 slli_w          0000 00000100 00001 ..... ..... .....    @rr_ui5
102 slli_d          0000 00000100 0001 ...... ..... .....    @rr_ui6
103 srli_w          0000 00000100 01001 ..... ..... .....    @rr_ui5
104 srli_d          0000 00000100 0101 ...... ..... .....    @rr_ui6
105 srai_w          0000 00000100 10001 ..... ..... .....    @rr_ui5
106 srai_d          0000 00000100 1001 ...... ..... .....    @rr_ui6
107 rotri_w         0000 00000100 11001 ..... ..... .....    @rr_ui5
108 rotri_d         0000 00000100 1101 ...... ..... .....    @rr_ui6
109
110 #
111 # Fixed point bit operation instruction
112 #
113 ext_w_h         0000 00000000 00000 10110 ..... .....    @rr
114 ext_w_b         0000 00000000 00000 10111 ..... .....    @rr
115 clo_w           0000 00000000 00000 00100 ..... .....    @rr
116 clz_w           0000 00000000 00000 00101 ..... .....    @rr
117 cto_w           0000 00000000 00000 00110 ..... .....    @rr
118 ctz_w           0000 00000000 00000 00111 ..... .....    @rr
119 clo_d           0000 00000000 00000 01000 ..... .....    @rr
120 clz_d           0000 00000000 00000 01001 ..... .....    @rr
121 cto_d           0000 00000000 00000 01010 ..... .....    @rr
122 ctz_d           0000 00000000 00000 01011 ..... .....    @rr
123 revb_2h         0000 00000000 00000 01100 ..... .....    @rr
124 revb_4h         0000 00000000 00000 01101 ..... .....    @rr
125 revb_2w         0000 00000000 00000 01110 ..... .....    @rr
126 revb_d          0000 00000000 00000 01111 ..... .....    @rr
127 revh_2w         0000 00000000 00000 10000 ..... .....    @rr
128 revh_d          0000 00000000 00000 10001 ..... .....    @rr
129 bitrev_4b       0000 00000000 00000 10010 ..... .....    @rr
130 bitrev_8b       0000 00000000 00000 10011 ..... .....    @rr
131 bitrev_w        0000 00000000 00000 10100 ..... .....    @rr
132 bitrev_d        0000 00000000 00000 10101 ..... .....    @rr
133 bytepick_w      0000 00000000 100 .. ..... ..... .....   @rrr_sa2
134 bytepick_d      0000 00000000 11 ... ..... ..... .....   @rrr_sa3
135 maskeqz         0000 00000001 00110 ..... ..... .....    @rrr
136 masknez         0000 00000001 00111 ..... ..... .....    @rrr
137 bstrins_w       0000 0000011 ..... 0 ..... ..... .....   @rr_2bw
138 bstrpick_w      0000 0000011 ..... 1 ..... ..... .....   @rr_2bw
139 bstrins_d       0000 000010 ...... ...... ..... .....    @rr_2bd
140 bstrpick_d      0000 000011 ...... ...... ..... .....    @rr_2bd
This page took 0.032389 seconds and 4 git commands to generate.