43 static const FieldEnum por_el0_perm_enum(
"por_el0_perm_enum",
45 {0b0000,
"No Access"},
48 {0b0011,
"Read, Execute"},
50 {0b0101,
"Write, Read"},
51 {0b0110,
"Write, Execute"},
52 {0b0111,
"Read, Write, Execute"},
56 {
"Perm15", 60, 63, &por_el0_perm_enum},
57 {
"Perm14", 56, 59, &por_el0_perm_enum},
58 {
"Perm13", 52, 55, &por_el0_perm_enum},
59 {
"Perm12", 48, 51, &por_el0_perm_enum},
60 {
"Perm11", 44, 47, &por_el0_perm_enum},
61 {
"Perm10", 40, 43, &por_el0_perm_enum},
62 {
"Perm9", 36, 39, &por_el0_perm_enum},
63 {
"Perm8", 32, 35, &por_el0_perm_enum},
64 {
"Perm7", 28, 31, &por_el0_perm_enum},
65 {
"Perm6", 24, 27, &por_el0_perm_enum},
66 {
"Perm5", 20, 23, &por_el0_perm_enum},
67 {
"Perm4", 16, 19, &por_el0_perm_enum},
68 {
"Perm3", 12, 15, &por_el0_perm_enum},
69 {
"Perm2", 8, 11, &por_el0_perm_enum},
70 {
"Perm1", 4, 7, &por_el0_perm_enum},
71 {
"Perm0", 0, 3, &por_el0_perm_enum},
84 static const FieldEnum fp8_format_enum(
"fp8_format_enum", {
94 {
"F8D", 6, 8, &fp8_format_enum},
95 {
"F8S2", 3, 5, &fp8_format_enum},
96 {
"F8S1", 0, 2, &fp8_format_enum},
288 "Must call DetectFields before updating register info.");
293 std::vector<std::pair<llvm::StringRef, const RegisterFlags *>>
298 if (reg.m_flags.GetFields().size())
299 search_registers.push_back({reg.m_name, ®.m_flags});
309 for (uint32_t idx = 0; idx < num_regs && search_registers.size();
311 auto reg_it = std::find_if(
312 search_registers.cbegin(), search_registers.cend(),
313 [reg_info](
auto reg) { return reg.first == reg_info->name; });
315 if (reg_it != search_registers.end()) {
319 search_registers.erase(reg_it);