@@ -56,25 +56,29 @@ def ATable : GenericTable {
56
56
57
57
// CHECK-LABEL: GET_BTable_IMPL
58
58
// CHECK: constexpr BTypeName BTable[] = {
59
- // CHECK: { "BAlice", 0xAC, },
60
- // CHECK: { "BBob", 0x14, Bob == 13 },
61
- // CHECK: { "BCharlie", 0x80, Charlie == 42 },
62
- // CHECK: { "BEve", 0x4C, Eve == 108 },
59
+ // CHECK: { "BAlice", 0xAC, false, },
60
+ // CHECK: { "BBob", 0x14, false, Bob == 13 },
61
+ // CHECK: { "BCharlie", 0x80, true, Charlie == 42 },
62
+ // CHECK: { "BEve", 0x4C, true, Eve == 108 },
63
63
// CHECK: };
64
64
// CHECK: const BTypeName *lookupBTableByName(StringRef Name) {
65
65
// CHECK: return &BTable[Idx->_index];
66
66
// CHECK: }
67
+ // CHECK: const BTypeName *lookupBTableByNameAndFlag(StringRef Name, bool Flag) {
68
+ // CHECK: return &BTable[Idx->_index];
69
+ // CHECK: }
67
70
68
- class BEntry<bits<16> enc, code test = [{}]> {
71
+ class BEntry<bits<16> enc, bit flag = 0, code test = [{}]> {
69
72
string Name = NAME;
70
73
bits<16> Encoding = enc;
74
+ bit Flag = flag;
71
75
code Test = test;
72
76
}
73
77
74
78
def BAlice : BEntry<0xac>;
75
- def BBob : BEntry<0x14, [{Bob == 13}]>;
76
- def BCharlie : BEntry<0x80, "Charlie == 42">;
77
- def BEve : BEntry<0x4c, [{Eve == }] # 108>;
79
+ def BBob : BEntry<0x14, 0, [{Bob == 13}]>;
80
+ def BCharlie : BEntry<0x80, 1, "Charlie == 42">;
81
+ def BEve : BEntry<0x4c, 1, [{Eve == }] # 108>;
78
82
79
83
def BValues : GenericEnum {
80
84
let FilterClass = "BEntry";
@@ -85,7 +89,7 @@ def BValues : GenericEnum {
85
89
def BTable : GenericTable {
86
90
let FilterClass = "BEntry";
87
91
string CppTypeName = "BTypeName";
88
- let Fields = ["Name", "Encoding", "Test"];
92
+ let Fields = ["Name", "Encoding", "Flag", " Test"];
89
93
string TypeOf_Test = "code";
90
94
}
91
95
@@ -94,6 +98,10 @@ def lookupBTableByName : SearchIndex {
94
98
let Key = ["Name"];
95
99
}
96
100
101
+ def lookupBTableByNameAndFlag : SearchIndex {
102
+ let Table = BTable;
103
+ let Key = ["Name", "Flag"];
104
+ }
97
105
98
106
// CHECK-LABEL: GET_CTable_DECL
99
107
// CHECK: const CEntry *lookupCEntryByEncoding(uint16_t Encoding);
0 commit comments