Lines Matching refs:opcode
241 uint8_t opcode = debug_line_data.getU8(offset_ptr);
243 if (opcode == 0) {
244 // Extended Opcodes always start with a zero opcode followed by
315 // Length doesn't include the zero opcode byte or the length itself, but
320 } else if (opcode < prologue->OpcodeBase) {
321 switch (opcode) {
371 // opcode 255. The motivation for DW_LNS_const_add_pc is this:
373 // small amount, it can use a single special opcode, which occupies
375 // twice the range of the last special opcode, it can use
376 // DW_LNS_const_add_pc followed by a special opcode, for a total
379 // and a special opcode, requiring three or more bytes.
391 // is the only extended opcode that takes an argument that is not
395 // judge when the computation of a special opcode overflows and
422 // as a multiple of LEB128 operands for each opcode.
424 assert(opcode - 1U < prologue->StandardOpcodeLengths.size());
425 uint8_t opcode_length = prologue->StandardOpcodeLengths[opcode - 1];
434 // A special opcode value is chosen based on the amount that needs
436 // increment for a special opcode is the value of the line_base
440 // opcode must be used instead of a special opcode. The "address
443 // special opcode is then calculated using the following formula:
445 // opcode = (desired line increment - line_base) +
448 // If the resulting opcode is greater than 255, a standard opcode
451 // To decode a special opcode, subtract the opcode_base from the
452 // opcode itself to give the adjusted opcode. The amount to
454 // opcode divided by the line_range multiplied by the
457 // address increment = (adjusted opcode / line_range) *
461 // the result of the adjusted opcode modulo the line_range. That is:
463 // line increment = line_base + (adjusted opcode % line_range)
465 uint8_t adjust_opcode = opcode - prologue->OpcodeBase;