Lines Matching refs:dwarf

9 // This file contains support for writing dwarf debug info into asm files.
31 emitOp(dwarf::DW_OP_lit0 + Value);
35 emitOp(dwarf::DW_OP_lit0);
36 emitOp(dwarf::DW_OP_not);
38 emitOp(dwarf::DW_OP_constu);
44 assert(DwarfReg >= 0 && "invalid negative dwarf register number");
49 emitOp(dwarf::DW_OP_reg0 + DwarfReg, Comment);
51 emitOp(dwarf::DW_OP_regx, Comment);
57 assert(DwarfReg >= 0 && "invalid negative dwarf register number");
60 emitOp(dwarf::DW_OP_breg0 + DwarfReg);
62 emitOp(dwarf::DW_OP_bregx);
69 emitOp(dwarf::DW_OP_fbreg);
79 emitOp(dwarf::DW_OP_bit_piece);
83 emitOp(dwarf::DW_OP_piece);
92 emitOp(dwarf::DW_OP_shr);
97 emitOp(dwarf::DW_OP_and);
188 emitOp(dwarf::DW_OP_stack_value);
194 emitOp(dwarf::DW_OP_consts);
230 emitOp(dwarf::DW_OP_implicit_value);
263 if (Op && Op->getOp() != dwarf::DW_OP_LLVM_fragment)
310 emitOp(dwarf::DW_OP_stack_value);
318 (NextOp->getOp() != dwarf::DW_OP_LLVM_fragment))
326 return Op.getOp() == dwarf::DW_OP_stack_value;
350 if (Op && (Op->getOp() == dwarf::DW_OP_plus_uconst)) {
362 if (Op && Op->getOp() == dwarf::DW_OP_constu) {
366 if (N && N->getOp() == dwarf::DW_OP_plus && Offset <= IntMax) {
369 } else if (N && N->getOp() == dwarf::DW_OP_minus &&
386 (NextOp->getOp() != dwarf::DW_OP_LLVM_fragment))
411 assert(Op && Op->getOp() == dwarf::DW_OP_LLVM_entry_value);
427 emitOp(CU.getDwarf5OrGNULocationAtom(dwarf::DW_OP_entry_value));
455 dwarf::TypeKind Encoding) {
475 case dwarf::DW_OP_deref:
476 case dwarf::DW_OP_LLVM_fragment:
505 if (OpNum >= dwarf::DW_OP_reg0 && OpNum <= dwarf::DW_OP_reg31) {
508 } else if (OpNum >= dwarf::DW_OP_breg0 && OpNum <= dwarf::DW_OP_breg31) {
509 addBReg(OpNum - dwarf::DW_OP_breg0, Op->getArg(0));
514 case dwarf::DW_OP_LLVM_arg:
520 case dwarf::DW_OP_LLVM_fragment: {
550 case dwarf::DW_OP_LLVM_extract_bits_sext:
551 case dwarf::DW_OP_LLVM_extract_bits_zext: {
559 emitOp(dwarf::DW_OP_deref_size);
571 emitOp(dwarf::DW_OP_constu);
573 emitOp(dwarf::DW_OP_shl);
575 emitOp(dwarf::DW_OP_constu);
577 emitOp(OpNum == dwarf::DW_OP_LLVM_extract_bits_sext ? dwarf::DW_OP_shra
578 : dwarf::DW_OP_shr);
585 case dwarf::DW_OP_plus_uconst:
587 emitOp(dwarf::DW_OP_plus_uconst);
590 case dwarf::DW_OP_plus:
591 case dwarf::DW_OP_minus:
592 case dwarf::DW_OP_mul:
593 case dwarf::DW_OP_div:
594 case dwarf::DW_OP_mod:
595 case dwarf::DW_OP_or:
596 case dwarf::DW_OP_and:
597 case dwarf::DW_OP_xor:
598 case dwarf::DW_OP_shl:
599 case dwarf::DW_OP_shr:
600 case dwarf::DW_OP_shra:
601 case dwarf::DW_OP_lit0:
602 case dwarf::DW_OP_not:
603 case dwarf::DW_OP_dup:
604 case dwarf::DW_OP_push_object_address:
605 case dwarf::DW_OP_over:
606 case dwarf::DW_OP_eq:
607 case dwarf::DW_OP_ne:
608 case dwarf::DW_OP_gt:
609 case dwarf::DW_OP_ge:
610 case dwarf::DW_OP_lt:
611 case dwarf::DW_OP_le:
614 case dwarf::DW_OP_deref:
621 emitOp(dwarf::DW_OP_deref);
623 case dwarf::DW_OP_constu:
627 case dwarf::DW_OP_consts:
629 emitOp(dwarf::DW_OP_consts);
632 case dwarf::DW_OP_LLVM_convert: {
634 dwarf::TypeKind Encoding = static_cast<dwarf::TypeKind>(Op->getArg(1));
636 emitOp(dwarf::DW_OP_convert);
646 if (Encoding == dwarf::DW_ATE_signed)
648 else if (Encoding == dwarf::DW_ATE_unsigned)
657 case dwarf::DW_OP_stack_value:
660 case dwarf::DW_OP_swap:
662 emitOp(dwarf::DW_OP_swap);
664 case dwarf::DW_OP_xderef:
666 emitOp(dwarf::DW_OP_xderef);
668 case dwarf::DW_OP_deref_size:
669 emitOp(dwarf::DW_OP_deref_size);
672 case dwarf::DW_OP_LLVM_tag_offset:
675 case dwarf::DW_OP_regx:
676 emitOp(dwarf::DW_OP_regx);
679 case dwarf::DW_OP_bregx:
680 emitOp(dwarf::DW_OP_bregx);
706 assert(DwarfRegs.size() == 0 && "dwarf registers not emitted");
730 emitOp(dwarf::DW_OP_dup);
731 emitOp(dwarf::DW_OP_constu);
733 emitOp(dwarf::DW_OP_shr);
734 emitOp(dwarf::DW_OP_lit0);
735 emitOp(dwarf::DW_OP_not);
736 emitOp(dwarf::DW_OP_mul);
737 emitOp(dwarf::DW_OP_constu);
739 emitOp(dwarf::DW_OP_shl);
740 emitOp(dwarf::DW_OP_or);
748 emitOp(dwarf::DW_OP_constu);
756 emitOp(dwarf::DW_OP_lit1);
757 emitOp(dwarf::DW_OP_constu);
759 emitOp(dwarf::DW_OP_shl);
760 emitOp(dwarf::DW_OP_lit1);
761 emitOp(dwarf::DW_OP_minus);
763 emitOp(dwarf::DW_OP_and);
767 emitOp(dwarf::DW_OP_WASM_location);