insns.decode (e8325dc02d059685331d8607d5e620328bac594e) insns.decode (0faef01b3989bb1fb6e0ed73ffa909e77b79f780)
1# SPDX-License-Identifier: LGPL-2.0+
2#
3# Sparc instruction decode definitions.
4# Copyright (c) 2023 Richard Henderson <rth@twiddle.net>
5
6##
7## Major Opcodes 00 and 01 -- branches, call, and sethi.
8##

--- 8 unchanged lines hidden (view full) ---

17BPr 00 a:1 0 cond:3 011 .. - rs1:5 .............. i=%d16
18
19NCP 00 - ---- 111 ---------------------- # CBcc
20
21SETHI 00 rd:5 100 i:22
22
23CALL 01 i:s30
24
1# SPDX-License-Identifier: LGPL-2.0+
2#
3# Sparc instruction decode definitions.
4# Copyright (c) 2023 Richard Henderson <rth@twiddle.net>
5
6##
7## Major Opcodes 00 and 01 -- branches, call, and sethi.
8##

--- 8 unchanged lines hidden (view full) ---

17BPr 00 a:1 0 cond:3 011 .. - rs1:5 .............. i=%d16
18
19NCP 00 - ---- 111 ---------------------- # CBcc
20
21SETHI 00 rd:5 100 i:22
22
23CALL 01 i:s30
24
25##
26## Major Opcode 10 -- integer, floating-point, vis, and system insns.
27##
28
29&r_r_ri rd rs1 rs2_or_imm imm:bool
30@n_r_ri .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri rd=0
31
25{
26 [
27 STBAR 10 00000 101000 01111 0 0000000000000
28 MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4
29
30 RDCCR 10 rd:5 101000 00010 0 0000000000000
31 RDASI 10 rd:5 101000 00011 0 0000000000000
32 RDTICK 10 rd:5 101000 00100 0 0000000000000

--- 7 unchanged lines hidden (view full) ---

40 RDSTICK_CMPR 10 rd:5 101000 11001 0 0000000000000
41 RDSTRAND_STATUS 10 rd:5 101000 11010 0 0000000000000
42 ]
43 # Before v8, all rs1 accepted; otherwise rs1==0.
44 RDY 10 rd:5 101000 rs1:5 0 0000000000000
45}
46
47{
32{
33 [
34 STBAR 10 00000 101000 01111 0 0000000000000
35 MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4
36
37 RDCCR 10 rd:5 101000 00010 0 0000000000000
38 RDASI 10 rd:5 101000 00011 0 0000000000000
39 RDTICK 10 rd:5 101000 00100 0 0000000000000

--- 7 unchanged lines hidden (view full) ---

47 RDSTICK_CMPR 10 rd:5 101000 11001 0 0000000000000
48 RDSTRAND_STATUS 10 rd:5 101000 11010 0 0000000000000
49 ]
50 # Before v8, all rs1 accepted; otherwise rs1==0.
51 RDY 10 rd:5 101000 rs1:5 0 0000000000000
52}
53
54{
55 [
56 WRY 10 00000 110000 ..... . ............. @n_r_ri
57 WRCCR 10 00010 110000 ..... . ............. @n_r_ri
58 WRASI 10 00011 110000 ..... . ............. @n_r_ri
59 WRFPRS 10 00110 110000 ..... . ............. @n_r_ri
60 {
61 WRGSR 10 10011 110000 ..... . ............. @n_r_ri
62 WRPOWERDOWN 10 10011 110000 ..... . ............. @n_r_ri
63 }
64 WRSOFTINT_SET 10 10100 110000 ..... . ............. @n_r_ri
65 WRSOFTINT_CLR 10 10101 110000 ..... . ............. @n_r_ri
66 WRSOFTINT 10 10110 110000 ..... . ............. @n_r_ri
67 WRTICK_CMPR 10 10111 110000 ..... . ............. @n_r_ri
68 WRSTICK 10 11000 110000 ..... . ............. @n_r_ri
69 WRSTICK_CMPR 10 11001 110000 ..... . ............. @n_r_ri
70 ]
71 # Before v8, rs1==0 was WRY, and the rest executed as nop.
72 [
73 NOP_v7 10 ----- 110000 ----- 0 00000000 -----
74 NOP_v7 10 ----- 110000 ----- 1 -------- -----
75 ]
76}
77
78{
48 RDPSR 10 rd:5 101001 00000 0 0000000000000
49 RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000
50}
51RDHPR_htstate 10 rd:5 101001 00001 0 0000000000000
52RDHPR_hintp 10 rd:5 101001 00011 0 0000000000000
53RDHPR_htba 10 rd:5 101001 00101 0 0000000000000
54RDHPR_hver 10 rd:5 101001 00110 0 0000000000000
55RDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000

--- 40 unchanged lines hidden ---
79 RDPSR 10 rd:5 101001 00000 0 0000000000000
80 RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000
81}
82RDHPR_htstate 10 rd:5 101001 00001 0 0000000000000
83RDHPR_hintp 10 rd:5 101001 00011 0 0000000000000
84RDHPR_htba 10 rd:5 101001 00101 0 0000000000000
85RDHPR_hver 10 rd:5 101001 00110 0 0000000000000
86RDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000

--- 40 unchanged lines hidden ---