43 static const FieldEnum por_perm_enum(
"por_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_perm_enum}, {
"Perm14", 56, 59, &por_perm_enum},
57 {
"Perm13", 52, 55, &por_perm_enum}, {
"Perm12", 48, 51, &por_perm_enum},
58 {
"Perm11", 44, 47, &por_perm_enum}, {
"Perm10", 40, 43, &por_perm_enum},
59 {
"Perm9", 36, 39, &por_perm_enum}, {
"Perm8", 32, 35, &por_perm_enum},
60 {
"Perm7", 28, 31, &por_perm_enum}, {
"Perm6", 24, 27, &por_perm_enum},
61 {
"Perm5", 20, 23, &por_perm_enum}, {
"Perm4", 16, 19, &por_perm_enum},
62 {
"Perm3", 12, 15, &por_perm_enum}, {
"Perm2", 8, 11, &por_perm_enum},
63 {
"Perm1", 4, 7, &por_perm_enum}, {
"Perm0", 0, 3, &por_perm_enum},
76 static const FieldEnum fp8_format_enum(
"fp8_format_enum", {
86 {
"F8D", 6, 8, &fp8_format_enum},
87 {
"F8S2", 3, 5, &fp8_format_enum},
88 {
"F8S1", 0, 2, &fp8_format_enum},
280 "Must call DetectFields before updating register info.");
285 std::vector<std::pair<llvm::StringRef, const RegisterFlags *>>
290 if (reg.m_flags.GetFields().size())
291 search_registers.push_back({reg.m_name, ®.m_flags});
301 for (uint32_t idx = 0; idx < num_regs && search_registers.size();
303 auto reg_it = std::find_if(
304 search_registers.cbegin(), search_registers.cend(),
305 [reg_info](
auto reg) { return reg.first == reg_info->name; });
307 if (reg_it != search_registers.end()) {
311 search_registers.erase(reg_it);