if opcode >= self.header['opcode_base']:
# Special opcode (follow the recipe in 6.2.5.1)
maximum_operations_per_instruction = self['maximum_operations_per_instruction']
-
-
adjusted_opcode = opcode - self['opcode_base']
operation_advance = adjusted_opcode // self['line_range']
-
- address_addend = self['minimum_instruction_length'] * ((state.op_index + operation_advance) // maximum_operations_per_instruction)
-
+ address_addend = (
+ self['minimum_instruction_length'] *
+ ((state.op_index + operation_advance) //
+ maximum_operations_per_instruction))
state.address += address_addend
-
state.op_index = (state.op_index + operation_advance) % maximum_operations_per_instruction
-
line_addend = self['line_base'] + (adjusted_opcode % self['line_range'])
-
state.line += line_addend
-
- add_entry_new_state(opcode, [line_addend, address_addend, state.op_index])
-
-
+ add_entry_new_state(
+ opcode, [line_addend, address_addend, state.op_index])
elif opcode == 0:
# Extended opcode: start with a zero byte, followed by
# instruction size and the instruction itself.
self.Dwarf_uint16('version'),
self.Dwarf_offset('header_length'),
self.Dwarf_uint8('minimum_instruction_length'),
-
- If(lambda ctx: ctx['version'] >= 4,
- self.Dwarf_uint8("maximum_operations_per_instruction"),
- 1),
-
+ If(lambda ctx: ctx['version'] >= 4,
+ self.Dwarf_uint8("maximum_operations_per_instruction"),
+ 1),
self.Dwarf_uint8('default_is_stmt'),
self.Dwarf_int8('line_base'),
self.Dwarf_uint8('line_range'),