### 7.57 `.loc fileno lineno [column] [options]`

When emitting DWARF2 line number information, the `.loc` directive will add a row to the `.debug_line` line number matrix corresponding to the immediately following assembly instruction. The fileno, lineno, and optional column arguments will be applied to the `.debug_line` state machine before the row is added.

The options are a sequence of the following tokens in any order:

`basic_block`

  This option will set the `basic_block` register in the `.debug_line` state machine to `true`.

`prologue_end`

  This option will set the `prologue_end` register in the `.debug_line` state machine to `true`.

`epilogue_begin`

  This option will set the `epilogue_begin` register in the `.debug_line` state machine to `true`.

`is_stmt value`

  This option will set the `is_stmt` register in the `.debug_line` state machine to `value`, which must be either 0 or 1.

`isa value`

  This directive will set the `isa` register in the `.debug_line` state machine to value, which must be an unsigned integer.

`discriminator value`

  This directive will set the `discriminator` register in the `.debug_line` state machine to value, which must be an unsigned integer.

`view value`

  This option causes a row to be added to `.debug_line` in reference to the current address (which might not be the same as that of the following assembly instruction), and to associate value with the `view` register in the `.debug_line` state machine. If value is a label, both the `view` register and the label are set to the number of prior `.loc` directives at the same program location. If value is the literal `0`, the `view` register is set to zero, and the assembler asserts that there aren’t any prior `.loc` directives at the same program location. If value is the literal `-0`, the assembler arrange for the `view` register to be reset in this row, even if there are prior `.loc` directives at the same program location.