riscv_codec/
immediates.rs1use riscv_codec_proc_macros::make_immediate;
2use std::fmt::{Display, Formatter};
3
4make_immediate!(IImmediate true false (0 12 20));
6make_immediate!(SImmediate true false (0 5 7) (5 7 25));
7make_immediate!(UImmediate true false (0 20 12));
8make_immediate!(JImmediate true false (12 8 12) (11 1 20) (1 10 21) (20 1 31));
9make_immediate!(BImmediate true false (11 1 7) (1 4 8) (5 6 25) (12 1 31));
10make_immediate!(Shamt false false (0 6 20));
11make_immediate!(ShamtW false false (0 5 20));
12
13make_immediate!(CWideImmediate false true (3 1 5) (2 1 6) (6 4 7) (4 2 11));
14make_immediate!(CDImmediate false true (6 2 5) (3 3 10));
15make_immediate!(CWImmediate false true (6 1 5) (2 1 6) (3 3 10));
16make_immediate!(CIImmediate true true (0 5 2) (5 1 12));
17make_immediate!(CBImmediate true true (5 1 2) (1 2 3) (6 2 5) (3 2 10) (8 1 12));
18make_immediate!(CShamt false true (0 5 2) (5 1 12));
19make_immediate!(CJImmediate true true (5 1 2) (1 3 3) (7 1 6) (6 1 7) (10 1 8) (8 2 9) (4 1 11) (11 1 12));
20make_immediate!(CDSPImmediate false true (6 3 2) (3 2 5) (5 1 12));
21make_immediate!(CWSPImmediate false true (6 2 2) (2 3 4) (5 1 12));
22make_immediate!(CSDSPImmediate false true (6 3 7) (3 3 10));
23make_immediate!(CSWSPImmediate false true (6 2 7) (2 4 9));
24make_immediate!(C16SPImmediate true true (5 1 2) (7 2 3) (6 1 5) (4 1 6) (9 1 12));
25
26make_immediate!(CSR false false (0 12 20));
27make_immediate!(CSRImmediate false false (0 5 15));