Lines Matching defs:lh
2718 struct line_head lh;
2745 lh.total_length = read_4_bytes (abfd, &line_ptr, line_end);
2747 if (lh.total_length == 0xffffffff)
2749 lh.total_length = read_8_bytes (abfd, &line_ptr, line_end);
2752 else if (lh.total_length == 0 && unit->addr_size == 8)
2755 lh.total_length = read_4_bytes (abfd, &line_ptr, line_end);
2759 if (lh.total_length > (size_t) (line_end - line_ptr))
2765 (uint64_t) lh.total_length, (unsigned long) (line_end - line_ptr));
2770 line_end = line_ptr + lh.total_length;
2772 lh.version = read_2_bytes (abfd, &line_ptr, line_end);
2773 if (lh.version < 2 || lh.version > 5)
2776 (_("DWARF error: unhandled .debug_line version %d"), lh.version);
2781 if (line_ptr + offset_size + (lh.version >= 5 ? 8 : (lh.version >= 4 ? 6 : 5))
2790 if (lh.version >= 5)
2809 lh.prologue_length = read_4_bytes (abfd, &line_ptr, line_end);
2811 lh.prologue_length = read_8_bytes (abfd, &line_ptr, line_end);
2813 lh.minimum_instruction_length = read_1_byte (abfd, &line_ptr, line_end);
2815 if (lh.version >= 4)
2816 lh.maximum_ops_per_insn = read_1_byte (abfd, &line_ptr, line_end);
2818 lh.maximum_ops_per_insn = 1;
2820 if (lh.maximum_ops_per_insn == 0)
2828 lh.default_is_stmt = read_1_byte (abfd, &line_ptr, line_end);
2829 lh.line_base = read_1_signed_byte (abfd, &line_ptr, line_end);
2830 lh.line_range = read_1_byte (abfd, &line_ptr, line_end);
2831 lh.opcode_base = read_1_byte (abfd, &line_ptr, line_end);
2833 if (line_ptr + (lh.opcode_base - 1) >= line_end)
2840 amt = lh.opcode_base * sizeof (unsigned char);
2841 lh.standard_opcode_lengths = (unsigned char *) bfd_alloc (abfd, amt);
2843 lh.standard_opcode_lengths[0] = 1;
2845 for (i = 1; i < lh.opcode_base; ++i)
2846 lh.standard_opcode_lengths[i] = read_1_byte (abfd, &line_ptr, line_end);
2866 if (lh.version >= 5)
2913 int is_stmt = lh.default_is_stmt;
2936 if (op_code >= lh.opcode_base)
2939 adj_opcode = op_code - lh.opcode_base;
2940 if (lh.line_range == 0)
2942 if (lh.maximum_ops_per_insn == 1)
2943 address += (adj_opcode / lh.line_range
2944 * lh.minimum_instruction_length);
2947 address += ((op_index + adj_opcode / lh.line_range)
2948 / lh.maximum_ops_per_insn
2949 * lh.minimum_instruction_length);
2950 op_index = ((op_index + adj_opcode / lh.line_range)
2951 % lh.maximum_ops_per_insn);
2953 line += lh.line_base + (adj_opcode % lh.line_range);
3030 if (lh.maximum_ops_per_insn == 1)
3031 address += (lh.minimum_instruction_length
3038 address = ((op_index + adjust) / lh.maximum_ops_per_insn
3039 * lh.minimum_instruction_length);
3040 op_index = (op_index + adjust) % lh.maximum_ops_per_insn;
3069 if (lh.line_range == 0)
3071 if (lh.maximum_ops_per_insn == 1)
3072 address += (lh.minimum_instruction_length
3073 * ((255 - lh.opcode_base) / lh.line_range));
3076 bfd_vma adjust = ((255 - lh.opcode_base) / lh.line_range);
3077 address += (lh.minimum_instruction_length
3079 / lh.maximum_ops_per_insn));
3080 op_index = (op_index + adjust) % lh.maximum_ops_per_insn;
3089 for (i = 0; i < lh.standard_opcode_lengths[op_code]; i++)