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