47 {0b0000,
"No Access"},
50 {0b0011,
"Read, Execute"},
52 {0b0101,
"Write, Read"},
53 {0b0110,
"Write, Execute"},
54 {0b0111,
"Read, Write, Execute"},
58 std::vector<RegisterTypeFlags::Field>{
59 {
"Perm15", 60, 63, por_el0_perm_enum},
60 {
"Perm14", 56, 59, por_el0_perm_enum},
61 {
"Perm13", 52, 55, por_el0_perm_enum},
62 {
"Perm12", 48, 51, por_el0_perm_enum},
63 {
"Perm11", 44, 47, por_el0_perm_enum},
64 {
"Perm10", 40, 43, por_el0_perm_enum},
65 {
"Perm9", 36, 39, por_el0_perm_enum},
66 {
"Perm8", 32, 35, por_el0_perm_enum},
67 {
"Perm7", 28, 31, por_el0_perm_enum},
68 {
"Perm6", 24, 27, por_el0_perm_enum},
69 {
"Perm5", 20, 23, por_el0_perm_enum},
70 {
"Perm4", 16, 19, por_el0_perm_enum},
71 {
"Perm3", 12, 15, por_el0_perm_enum},
72 {
"Perm2", 8, 11, por_el0_perm_enum},
73 {
"Perm1", 4, 7, por_el0_perm_enum},
74 {
"Perm0", 0, 3, por_el0_perm_enum},
95 std::vector<RegisterTypeFlags::Field>{{
"LSCALE2", 32, 37},
100 {
"F8D", 6, 8, fp8_format_enum},
101 {
"F8S2", 3, 5, fp8_format_enum},
102 {
"F8S1", 0, 2, fp8_format_enum}});
300 "Must call DetectTypes before updating register info.");
305 std::vector<std::pair<llvm::StringRef, const RegisterType *>>
311 for (
auto reg_name : reg.m_names)
312 search_registers.push_back({reg_name, reg.m_type});
322 for (uint32_t idx = 0; idx < num_regs && search_registers.size();
324 auto reg_it = std::find_if(
325 search_registers.cbegin(), search_registers.cend(),
326 [reg_info](
auto reg) { return reg.first == reg_info->name; });
328 if (reg_it != search_registers.end()) {
332 search_registers.erase(reg_it);