1 | //! Utility macros. |
2 | |
3 | // Helper macro used to trigger const eval errors when the const generic immediate value `imm` is |
4 | // not a round number. |
5 | #[allow (unused)] |
6 | macro_rules! static_assert_rounding { |
7 | ($imm:ident) => { |
8 | static_assert!( |
9 | $imm == 4 || $imm == 8 || $imm == 9 || $imm == 10 || $imm == 11, |
10 | "Invalid IMM value" |
11 | ) |
12 | }; |
13 | } |
14 | |
15 | // Helper macro used to trigger const eval errors when the const generic immediate value `imm` is |
16 | // not a sae number. |
17 | #[allow (unused)] |
18 | macro_rules! static_assert_sae { |
19 | ($imm:ident) => { |
20 | static_assert!($imm == 4 || $imm == 8, "Invalid IMM value" ) |
21 | }; |
22 | } |
23 | |
24 | #[cfg (target_pointer_width = "32" )] |
25 | macro_rules! vps { |
26 | ($inst1:expr, $inst2:expr) => { |
27 | concat!($inst1, " [{p:e}]" , $inst2) |
28 | }; |
29 | } |
30 | #[cfg (target_pointer_width = "64" )] |
31 | macro_rules! vps { |
32 | ($inst1:expr, $inst2:expr) => { |
33 | concat!($inst1, " [{p}]" , $inst2) |
34 | }; |
35 | } |
36 | |