#[macro_export]
macro_rules! for_each_gp_register {
($m: path) => {
$m! {
(x0, "x0", 1, 0),
(x1, "x1", 1, 0),
(x2, "x2", 1, 1),
(x3, "x3", 1, 0),
(x4, "x4", 1, 0),
(x5, "x5", 0, 0),
(x6, "x6", 0, 0),
(x7, "x7", 0, 0),
(x8, "x8", 1, 1),
(x9, "x9", 0, 1),
(x10, "x10", 0, 0),
(x11, "x11", 0, 0),
(x12, "x12", 0, 0),
(x13, "x13", 0, 0),
(x14, "x14", 0, 0),
(x15, "x15", 0, 0),
(x16, "x16", 0, 0),
(x17, "x17", 0, 0),
(x18, "x18", 0, 1),
(x19, "x19", 0, 1),
(x20, "x20", 0, 1),
(x21, "x21", 0, 1),
(x22, "x22", 0, 1),
(x23, "x23", 0, 1),
(x24, "x24", 0, 1),
(x25, "x25", 0, 1),
(x26, "x26", 0, 1),
(x27, "x27", 0, 1),
(x28, "x28", 0, 1),
(x29, "x29", 0, 1),
(x30, "x30", 0, 0),
(x31, "x31", 0, 0),
}
};
}
#[macro_export]
macro_rules! for_each_fp_register {
($m: path) => {
$m! {
(f0, "f0", 0, 0),
(f1, "f1", 0, 0),
(f2, "f2", 0, 0),
(f3, "f3", 0, 0),
(f4, "f4", 0, 0),
(f5, "f5", 0, 0),
(f6, "f6", 0, 0),
(f7, "f7", 0, 0),
(f8, "f8", 0, 1),
(f9, "f9", 0, 1),
(f10, "f10", 0, 0),
(f11, "f11", 0, 0),
(f12, "f12", 0, 0),
(f13, "f13", 0, 0),
(f14, "f14", 0, 0),
(f15, "f15", 0, 0),
(f16, "f16", 0, 0),
(f17, "f17", 0, 0),
(f18, "f18", 0, 1),
(f19, "f19", 0, 1),
(f20, "f20", 0, 1),
(f21, "f21", 0, 1),
(f22, "f22", 0, 1),
(f23, "f23", 0, 1),
(f24, "f24", 0, 1),
(f25, "f25", 0, 1),
(f26, "f26", 0, 1),
(f27, "f27", 0, 1),
(f28, "f28", 0, 0),
(f29, "f29", 0, 0),
(f30, "f30", 0, 0),
(f31, "f31", 0, 0),
}
};
}
#[macro_export]
macro_rules! for_each_sp_register {
($m: path) => {
$m! {
(pc, "pc", 0, 0),
}
};
}
#[macro_export]
macro_rules! for_each_register_alias {
($m: path) => {
$m! {
(zero, "zero", x0),
(ra, "ra", x1),
(sp, "sp", x2),
(gp, "gp", x3),
(tp, "tp", x4),
(fp, "fp", x8)
}
};
}