Lines Matching refs:Op
22 typedef DWARFExpression::Operation Op; typedef
23 typedef Op::Description Desc;
28 Descriptions[DW_OP_addr] = Desc(Op::Dwarf2, Op::SizeAddr); in getOpDescriptions()
29 Descriptions[DW_OP_deref] = Desc(Op::Dwarf2); in getOpDescriptions()
30 Descriptions[DW_OP_const1u] = Desc(Op::Dwarf2, Op::Size1); in getOpDescriptions()
31 Descriptions[DW_OP_const1s] = Desc(Op::Dwarf2, Op::SignedSize1); in getOpDescriptions()
32 Descriptions[DW_OP_const2u] = Desc(Op::Dwarf2, Op::Size2); in getOpDescriptions()
33 Descriptions[DW_OP_const2s] = Desc(Op::Dwarf2, Op::SignedSize2); in getOpDescriptions()
34 Descriptions[DW_OP_const4u] = Desc(Op::Dwarf2, Op::Size4); in getOpDescriptions()
35 Descriptions[DW_OP_const4s] = Desc(Op::Dwarf2, Op::SignedSize4); in getOpDescriptions()
36 Descriptions[DW_OP_const8u] = Desc(Op::Dwarf2, Op::Size8); in getOpDescriptions()
37 Descriptions[DW_OP_const8s] = Desc(Op::Dwarf2, Op::SignedSize8); in getOpDescriptions()
38 Descriptions[DW_OP_constu] = Desc(Op::Dwarf2, Op::SizeLEB); in getOpDescriptions()
39 Descriptions[DW_OP_consts] = Desc(Op::Dwarf2, Op::SignedSizeLEB); in getOpDescriptions()
40 Descriptions[DW_OP_dup] = Desc(Op::Dwarf2); in getOpDescriptions()
41 Descriptions[DW_OP_drop] = Desc(Op::Dwarf2); in getOpDescriptions()
42 Descriptions[DW_OP_over] = Desc(Op::Dwarf2); in getOpDescriptions()
43 Descriptions[DW_OP_pick] = Desc(Op::Dwarf2, Op::Size1); in getOpDescriptions()
44 Descriptions[DW_OP_swap] = Desc(Op::Dwarf2); in getOpDescriptions()
45 Descriptions[DW_OP_rot] = Desc(Op::Dwarf2); in getOpDescriptions()
46 Descriptions[DW_OP_xderef] = Desc(Op::Dwarf2); in getOpDescriptions()
47 Descriptions[DW_OP_abs] = Desc(Op::Dwarf2); in getOpDescriptions()
48 Descriptions[DW_OP_and] = Desc(Op::Dwarf2); in getOpDescriptions()
49 Descriptions[DW_OP_div] = Desc(Op::Dwarf2); in getOpDescriptions()
50 Descriptions[DW_OP_minus] = Desc(Op::Dwarf2); in getOpDescriptions()
51 Descriptions[DW_OP_mod] = Desc(Op::Dwarf2); in getOpDescriptions()
52 Descriptions[DW_OP_mul] = Desc(Op::Dwarf2); in getOpDescriptions()
53 Descriptions[DW_OP_neg] = Desc(Op::Dwarf2); in getOpDescriptions()
54 Descriptions[DW_OP_not] = Desc(Op::Dwarf2); in getOpDescriptions()
55 Descriptions[DW_OP_or] = Desc(Op::Dwarf2); in getOpDescriptions()
56 Descriptions[DW_OP_plus] = Desc(Op::Dwarf2); in getOpDescriptions()
57 Descriptions[DW_OP_plus_uconst] = Desc(Op::Dwarf2, Op::SizeLEB); in getOpDescriptions()
58 Descriptions[DW_OP_shl] = Desc(Op::Dwarf2); in getOpDescriptions()
59 Descriptions[DW_OP_shr] = Desc(Op::Dwarf2); in getOpDescriptions()
60 Descriptions[DW_OP_shra] = Desc(Op::Dwarf2); in getOpDescriptions()
61 Descriptions[DW_OP_xor] = Desc(Op::Dwarf2); in getOpDescriptions()
62 Descriptions[DW_OP_skip] = Desc(Op::Dwarf2, Op::SignedSize2); in getOpDescriptions()
63 Descriptions[DW_OP_bra] = Desc(Op::Dwarf2, Op::SignedSize2); in getOpDescriptions()
64 Descriptions[DW_OP_eq] = Desc(Op::Dwarf2); in getOpDescriptions()
65 Descriptions[DW_OP_ge] = Desc(Op::Dwarf2); in getOpDescriptions()
66 Descriptions[DW_OP_gt] = Desc(Op::Dwarf2); in getOpDescriptions()
67 Descriptions[DW_OP_le] = Desc(Op::Dwarf2); in getOpDescriptions()
68 Descriptions[DW_OP_lt] = Desc(Op::Dwarf2); in getOpDescriptions()
69 Descriptions[DW_OP_ne] = Desc(Op::Dwarf2); in getOpDescriptions()
71 Descriptions[LA] = Desc(Op::Dwarf2); in getOpDescriptions()
73 Descriptions[LA] = Desc(Op::Dwarf2); in getOpDescriptions()
75 Descriptions[LA] = Desc(Op::Dwarf2, Op::SignedSizeLEB); in getOpDescriptions()
76 Descriptions[DW_OP_regx] = Desc(Op::Dwarf2, Op::SizeLEB); in getOpDescriptions()
77 Descriptions[DW_OP_fbreg] = Desc(Op::Dwarf2, Op::SignedSizeLEB); in getOpDescriptions()
78 Descriptions[DW_OP_bregx] = Desc(Op::Dwarf2, Op::SizeLEB, Op::SignedSizeLEB); in getOpDescriptions()
79 Descriptions[DW_OP_piece] = Desc(Op::Dwarf2, Op::SizeLEB); in getOpDescriptions()
80 Descriptions[DW_OP_deref_size] = Desc(Op::Dwarf2, Op::Size1); in getOpDescriptions()
81 Descriptions[DW_OP_xderef_size] = Desc(Op::Dwarf2, Op::Size1); in getOpDescriptions()
82 Descriptions[DW_OP_nop] = Desc(Op::Dwarf2); in getOpDescriptions()
83 Descriptions[DW_OP_push_object_address] = Desc(Op::Dwarf3); in getOpDescriptions()
84 Descriptions[DW_OP_call2] = Desc(Op::Dwarf3, Op::Size2); in getOpDescriptions()
85 Descriptions[DW_OP_call4] = Desc(Op::Dwarf3, Op::Size4); in getOpDescriptions()
86 Descriptions[DW_OP_call_ref] = Desc(Op::Dwarf3, Op::SizeRefAddr); in getOpDescriptions()
87 Descriptions[DW_OP_form_tls_address] = Desc(Op::Dwarf3); in getOpDescriptions()
88 Descriptions[DW_OP_call_frame_cfa] = Desc(Op::Dwarf3); in getOpDescriptions()
89 Descriptions[DW_OP_bit_piece] = Desc(Op::Dwarf3, Op::SizeLEB, Op::SizeLEB); in getOpDescriptions()
91 Desc(Op::Dwarf3, Op::SizeLEB, Op::SizeBlock); in getOpDescriptions()
92 Descriptions[DW_OP_stack_value] = Desc(Op::Dwarf3); in getOpDescriptions()
94 Desc(Op::Dwarf4, Op::SizeLEB, Op::WasmLocationArg); in getOpDescriptions()
95 Descriptions[DW_OP_GNU_push_tls_address] = Desc(Op::Dwarf3); in getOpDescriptions()
96 Descriptions[DW_OP_GNU_addr_index] = Desc(Op::Dwarf4, Op::SizeLEB); in getOpDescriptions()
97 Descriptions[DW_OP_GNU_const_index] = Desc(Op::Dwarf4, Op::SizeLEB); in getOpDescriptions()
98 Descriptions[DW_OP_GNU_entry_value] = Desc(Op::Dwarf4, Op::SizeLEB); in getOpDescriptions()
99 Descriptions[DW_OP_addrx] = Desc(Op::Dwarf5, Op::SizeLEB); in getOpDescriptions()
100 Descriptions[DW_OP_constx] = Desc(Op::Dwarf5, Op::SizeLEB); in getOpDescriptions()
101 Descriptions[DW_OP_convert] = Desc(Op::Dwarf5, Op::BaseTypeRef); in getOpDescriptions()
102 Descriptions[DW_OP_entry_value] = Desc(Op::Dwarf5, Op::SizeLEB); in getOpDescriptions()
104 Desc(Op::Dwarf5, Op::SizeLEB, Op::BaseTypeRef); in getOpDescriptions()
108 Descriptions[DW_OP_LLVM_user] = Desc(Op::Dwarf5, Op::SizeSubOpLEB); in getOpDescriptions()
131 Descriptions[DW_OP_LLVM_nop] = Desc(Op::Dwarf5, Op::SizeSubOpLEB); in getSubOpDescriptions()
151 Operands.resize(Desc.Op.size()); in extract()
152 OperandEndOffsets.resize(Desc.Op.size()); in extract()
153 for (unsigned Operand = 0; Operand < Desc.Op.size(); ++Operand) { in extract()
154 unsigned Size = Desc.Op[Operand]; in extract()
164 assert(Desc.Op[Operand] == Operation::SizeSubOpLEB && in extract()
292 if (!Desc.Op.size() || Desc.Op[0] != Operation::SizeSubOpLEB) in getSubCode()
316 for (unsigned Operand = 0; Operand < Desc.Op.size(); ++Operand) { in print()
317 unsigned Size = Desc.Op[Operand]; in print()
366 for (auto &Op : *this) { in print()
368 if (!Op.print(OS, DumpOpts, this, U)) { in print()
369 uint64_t FailOffset = Op.getEndOffset(); in print()
375 if (Op.getCode() == DW_OP_entry_value || in print()
376 Op.getCode() == DW_OP_GNU_entry_value) { in print()
378 EntryValExprSize = Op.getRawOperand(0); in print()
379 EntryValStartOffset = Op.getEndOffset(); in print()
384 EntryValExprSize -= Op.getEndOffset() - EntryValStartOffset; in print()
389 if (Op.getEndOffset() < Data.getData().size()) in print()
394 bool DWARFExpression::Operation::verify(const Operation &Op, DWARFUnit *U) { in verify() argument
395 for (unsigned Operand = 0; Operand < Op.Desc.Op.size(); ++Operand) { in verify()
396 unsigned Size = Op.Desc.Op[Operand]; in verify()
403 if (Op.Opcode == DW_OP_convert && Op.Operands[Operand] == 0) in verify()
405 auto Die = U->getDIEForOffset(U->getOffset() + Op.Operands[Operand]); in verify()
415 for (auto &Op : *this) in verify()
416 if (!Operation::verify(Op, U)) in verify()
444 const DWARFExpression::Operation &Op = *I; in printCompactDWARFExpr() local
445 uint8_t Opcode = Op.getCode(); in printCompactDWARFExpr()
450 uint64_t DwarfRegNum = Op.getRawOperand(0); in printCompactDWARFExpr()
459 int DwarfRegNum = Op.getRawOperand(0); in printCompactDWARFExpr()
460 int64_t Offset = Op.getRawOperand(1); in printCompactDWARFExpr()
474 uint64_t SubExprLength = Op.getRawOperand(0); in printCompactDWARFExpr()
495 assert(Op.getSubCode() && *Op.getSubCode() == dwarf::DW_OP_LLVM_nop); in printCompactDWARFExpr()
511 int64_t Offset = Op.getRawOperand(0); in printCompactDWARFExpr()