@@ -260,23 +260,25 @@ enum ExpressionOpCode {
260
260
DerefSize = 146 ,
261
261
XderefSize = 147 ,
262
262
Nop = 148 ,
263
- PushObjectAddress = 149 ,
264
- Call2 = 150 ,
265
- Call4 = 151 ,
266
- CallRef = 152 ,
267
- FormTlsAddress = 153 ,
268
- CallFrameCfa = 154 ,
269
- ImplicitValue = 155 ,
270
- ImplicitPointer = 156 ,
271
- Addrx = 157 ,
272
- Constx = 158 ,
273
- EntryValue = 159 ,
274
- ConstTypeOp = 160 ,
275
- RegvalType = 161 ,
276
- DerefType = 162 ,
277
- XderefType = 163 ,
278
- Reinterpret = 164 ,
279
- LLVMArg = 165 ,
263
+ PushObjectAddress = 149 ,
264
+ Call2 = 150 ,
265
+ Call4 = 151 ,
266
+ CallRef = 152 ,
267
+ FormTlsAddress = 153 ,
268
+ CallFrameCfa = 154 ,
269
+ ImplicitValue = 155 ,
270
+ ImplicitPointer = 156 ,
271
+ Addrx = 157 ,
272
+ Constx = 158 ,
273
+ EntryValue = 159 ,
274
+ ConstTypeOp = 160 ,
275
+ RegvalType = 161 ,
276
+ DerefType = 162 ,
277
+ XderefType = 163 ,
278
+ Reinterpret = 164 ,
279
+ LLVMArg = 165 ,
280
+ ImplicitPointerTag = 166 ,
281
+ TagOffset = 167 ,
280
282
};
281
283
282
284
enum ImportedEntityTag {
@@ -675,15 +677,15 @@ static std::map<ExpressionOpCode, unsigned> OpCountMap {
675
677
{ Constu, 2 },
676
678
{ Fragment, 3 },
677
679
{ Convert, 3 },
678
- // { Addr, 2 }, /* not implemented */
679
- // { Const1u, 2 },
680
- // { Const1s, 2 },
681
- // { Const2u, 2 },
682
- // { Const2s, 2 },
683
- // { Const4u, 2 },
684
- // { Const4s, 2 },
685
- // { Const8u, 2 },
686
- // { Const8s, 2 },
680
+ { Addr, 2 },
681
+ { Const1u, 2 },
682
+ { Const1s, 2 },
683
+ { Const2u, 2 },
684
+ { Const2s, 2 },
685
+ { Const4u, 2 },
686
+ { Const4s, 2 },
687
+ { Const8u, 2 },
688
+ { Const8s, 2 },
687
689
{ Consts, 2 },
688
690
{ Dup, 1 },
689
691
{ Drop, 1 },
@@ -702,14 +704,14 @@ static std::map<ExpressionOpCode, unsigned> OpCountMap {
702
704
{ Shr, 1 },
703
705
{ Shra, 1 },
704
706
{ Xor, 1 },
705
- // { Bra, 2 }, /* not implemented */
707
+ { Bra, 2 },
706
708
{ Eq, 1 },
707
709
{ Ge, 1 },
708
710
{ Gt, 1 },
709
711
{ Le, 1 },
710
712
{ Lt, 1 },
711
713
{ Ne, 1 },
712
- // { Skip, 2 }, /* not implemented */
714
+ { Skip, 2 },
713
715
{ Lit0, 1 },
714
716
{ Lit1, 1 },
715
717
{ Lit2, 1 },
@@ -807,29 +809,31 @@ static std::map<ExpressionOpCode, unsigned> OpCountMap {
807
809
{ Breg30, 2 },
808
810
{ Breg31, 2 },
809
811
{ Regx, 2 },
810
- // { Fbreg, 1 }, /* not implemented */
812
+ { Fbreg, 1 },
811
813
{ Bregx, 3 },
812
- // { Piece, 2 }, /* not implemented */
814
+ { Piece, 2 },
813
815
{ DerefSize, 2 },
814
816
{ XderefSize, 2 },
815
817
{ Nop, 1 },
816
818
{ PushObjectAddress, 1 },
817
- // { Call2, 2 }, /* not implemented */
818
- // { Call4, 2 },
819
- // { CallRef, 2 },
820
- // { FormTlsAddress, 1 },
821
- // { CallFrameCfa, 1 },
822
- // { ImplicitValue, 3 },
823
- // { ImplicitPointer, 3 },
824
- // { Addrx, 2 },
825
- // { Constx, 2 },
826
- // { EntryValue, 3 },
827
- // { ConstTypeOp, 4 },
828
- // { RegvalType, 3 },
829
- // { DerefType, 3 },
830
- // { XderefType, 3 },
831
- // { Reinterpret, 2 },
819
+ { Call2, 2 },
820
+ { Call4, 2 },
821
+ { CallRef, 2 },
822
+ { FormTlsAddress, 1 },
823
+ { CallFrameCfa, 1 },
824
+ { ImplicitValue, 3 },
825
+ { ImplicitPointer, 3 },
826
+ { Addrx, 2 },
827
+ { Constx, 2 },
828
+ { EntryValue, 3 },
829
+ { ConstTypeOp, 4 },
830
+ { RegvalType, 3 },
831
+ { DerefType, 3 },
832
+ { XderefType, 3 },
833
+ { Reinterpret, 2 },
832
834
{ LLVMArg, 2 },
835
+ { ImplicitPointerTag, 2 },
836
+ { TagOffset, 2 },
833
837
};
834
838
}
835
839
@@ -1121,6 +1125,15 @@ inline void DbgExpressionOpCodeMap::init() {
1121
1125
add (dwarf::DW_OP_constu, SPIRVDebug::Constu);
1122
1126
add (dwarf::DW_OP_LLVM_fragment, SPIRVDebug::Fragment);
1123
1127
add (dwarf::DW_OP_LLVM_convert, SPIRVDebug::Convert);
1128
+ add (dwarf::DW_OP_addr, SPIRVDebug::Addr);
1129
+ add (dwarf::DW_OP_const1u, SPIRVDebug::Const1u);
1130
+ add (dwarf::DW_OP_const1s, SPIRVDebug::Const1s);
1131
+ add (dwarf::DW_OP_const2u, SPIRVDebug::Const2u);
1132
+ add (dwarf::DW_OP_const2s, SPIRVDebug::Const2s);
1133
+ add (dwarf::DW_OP_const4u, SPIRVDebug::Const4u);
1134
+ add (dwarf::DW_OP_const4s, SPIRVDebug::Const4s);
1135
+ add (dwarf::DW_OP_const8u, SPIRVDebug::Const8u);
1136
+ add (dwarf::DW_OP_const8s, SPIRVDebug::Const8s);
1124
1137
add (dwarf::DW_OP_consts, SPIRVDebug::Consts);
1125
1138
add (dwarf::DW_OP_dup, SPIRVDebug::Dup);
1126
1139
add (dwarf::DW_OP_drop, SPIRVDebug::Drop);
@@ -1146,6 +1159,7 @@ inline void DbgExpressionOpCodeMap::init() {
1146
1159
add (dwarf::DW_OP_le, SPIRVDebug::Le);
1147
1160
add (dwarf::DW_OP_lt, SPIRVDebug::Lt);
1148
1161
add (dwarf::DW_OP_ne, SPIRVDebug::Ne);
1162
+ add (dwarf::DW_OP_skip, SPIRVDebug::Skip);
1149
1163
add (dwarf::DW_OP_lit0, SPIRVDebug::Lit0);
1150
1164
add (dwarf::DW_OP_lit1, SPIRVDebug::Lit1);
1151
1165
add (dwarf::DW_OP_lit2, SPIRVDebug::Lit2);
@@ -1244,11 +1258,31 @@ inline void DbgExpressionOpCodeMap::init() {
1244
1258
add (dwarf::DW_OP_breg31, SPIRVDebug::Breg31);
1245
1259
add (dwarf::DW_OP_regx, SPIRVDebug::Regx);
1246
1260
add (dwarf::DW_OP_bregx, SPIRVDebug::Bregx);
1261
+ add (dwarf::DW_OP_piece, SPIRVDebug::Piece);
1247
1262
add (dwarf::DW_OP_deref_size, SPIRVDebug::DerefSize );
1248
1263
add (dwarf::DW_OP_xderef_size, SPIRVDebug::XderefSize );
1249
1264
add (dwarf::DW_OP_nop, SPIRVDebug::Nop);
1250
1265
add (dwarf::DW_OP_push_object_address, SPIRVDebug::PushObjectAddress );
1251
- add (dwarf::DW_OP_LLVM_arg, SPIRVDebug::LLVMArg);
1266
+
1267
+
1268
+ add (dwarf::DW_OP_call2, SPIRVDebug::Call2);
1269
+ add (dwarf::DW_OP_call4, SPIRVDebug::Call4);
1270
+ add (dwarf::DW_OP_call_ref, SPIRVDebug::CallRef);
1271
+ add (dwarf::DW_OP_form_tls_address, SPIRVDebug::FormTlsAddress);
1272
+ add (dwarf::DW_OP_call_frame_cfa, SPIRVDebug::CallFrameCfa);
1273
+ add (dwarf::DW_OP_implicit_value, SPIRVDebug::ImplicitValue);
1274
+ add (dwarf::DW_OP_implicit_pointer, SPIRVDebug::ImplicitPointer);
1275
+ add (dwarf::DW_OP_addrx, SPIRVDebug::Addrx);
1276
+ add (dwarf::DW_OP_constx, SPIRVDebug::Constx);
1277
+ add (dwarf::DW_OP_entry_value, SPIRVDebug::EntryValue);
1278
+ add (dwarf::DW_OP_const_type, SPIRVDebug::ConstTypeOp);
1279
+ add (dwarf::DW_OP_regval_type, SPIRVDebug::RegvalType);
1280
+ add (dwarf::DW_OP_deref_type, SPIRVDebug::DerefType);
1281
+ add (dwarf::DW_OP_xderef_type, SPIRVDebug::XderefType);
1282
+ add (dwarf::DW_OP_reinterpret, SPIRVDebug::Reinterpret);
1283
+ add (dwarf::DW_OP_LLVM_arg, SPIRVDebug::LLVMArg);
1284
+ add (dwarf::DW_OP_LLVM_implicit_pointer, SPIRVDebug::ImplicitPointerTag);
1285
+ add (dwarf::DW_OP_LLVM_tag_offset, SPIRVDebug::TagOffset);
1252
1286
}
1253
1287
1254
1288
typedef SPIRVMap<dwarf::Tag, SPIRVDebug::ImportedEntityTag>
0 commit comments