# ??? This probably shouldn't be replicated here...
proc run_list_test { name opts } {
    global srcdir subdir
    set testname "lns $name"
    set file $srcdir/$subdir/$name
    gas_run ${name}.s $opts ">&dump.out"
    if { [regexp_diff "dump.out" "${file}.l"] } then {
        fail $testname
        verbose "output is [file_contents "dump.out"]" 2
        return
    }
    pass $testname
}

if ![is_elf_format] then {
    return
}

run_list_test "lns-diag-1" ""

# ??? Won't work on targets that don't have a bare "nop" insn.
# Perhaps we could arrange for an include file or something that
# defined a macro...
# Nor does it work on targets that do not generate line number
# information (d10v).
if {
        ![istarget d10v-*-*]
     && ![istarget ia64*-*-*]
     && ![istarget i370-*-*]
     && ![istarget i960-*-*]
     && ![istarget mcore-*-*]
     && ![istarget or32-*-*]
     && ![istarget s390*-*-*]
} {
    # Use alternate file for targets using DW_LNS_fixed_advance_pc opcodes.
    if { [istarget xtensa-*-*] } {
      run_dump_test "lns-common-1-alt"
    } else {
      run_dump_test "lns-common-1"
    }
}
