[PATCH 0/6] Add support for nanoMIPS architecture

"Tsing" <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
From: tsing <[email protected]>

This series of patches mainly provides support for the nanomips architecture in the Gas, BFD and Opcodes.

tsing (6):
  Gas changes for nanoMIPS support.
  BFD changes for nanoMIPS support.
  Opcodes changes for nanoMIPS support.
  Readelf for nanoMIPS.
  Add nanoMIPS documentation.
  Add nanoMIPS tests.

 bfd/Makefile.am                               |    17 +
 bfd/Makefile.in                               |    20 +
 bfd/archures.c                                |     5 +
 bfd/bfd-in2.h                                 |    72 +
 bfd/config.bfd                                |    11 +
 bfd/configure                                 |     4 +
 bfd/configure.ac                              |     4 +
 bfd/cpu-nanomips.c                            |    61 +
 bfd/elf-bfd.h                                 |     1 +
 bfd/elfnn-nanomips.c                          |  1535 ++
 bfd/elfxx-nanomips.c                          |   449 +
 bfd/elfxx-nanomips.h                          |    46 +
 bfd/libbfd.h                                  |    67 +
 bfd/reloc.c                                   |   138 +
 bfd/targets.c                                 |    11 +
 binutils/doc/binutils.texi                    |     7 +
 binutils/readelf.c                            |   422 +
 binutils/testsuite/binutils-all/objdump.exp   |     3 +-
 config/mt-nanomips                            |     3 +
 configure                                     |     9 +
 configure.ac                                  |     9 +
 gas/Makefile.am                               |     2 +
 gas/Makefile.in                               |     5 +
 gas/config.in                                 |     9 +
 gas/config/obj-elf.h                          |     5 +
 gas/config/tc-nanomips.c                      | 11667 ++++++++++++++++
 gas/config/tc-nanomips.h                      |   187 +
 gas/configure                                 |    54 +
 gas/configure.ac                              |    45 +
 gas/configure.tgt                             |     5 +
 gas/doc/all.texi                              |     1 +
 gas/doc/as.texi                               |   189 +
 gas/doc/c-nanomips-aliases.texi               |  1527 ++
 gas/doc/c-nanomips-macros.texi                |  3136 +++++
 gas/doc/c-nanomips.texi                       |  1499 ++
 gas/read.c                                    |     2 +-
 gas/testsuite/gas/all/gas.exp                 |     6 +-
 gas/testsuite/gas/cfi/cfi-nanomips-1.d        |    29 +
 gas/testsuite/gas/cfi/cfi.exp                 |     5 +-
 gas/testsuite/gas/elf/elf.exp                 |     6 +
 gas/testsuite/gas/elf/section2.e-nanomips     |     8 +
 gas/testsuite/gas/nanomips/abi32-pic.d        |    94 +
 gas/testsuite/gas/nanomips/abi32-pic.s        |    38 +
 gas/testsuite/gas/nanomips/abi32.d            |    79 +
 gas/testsuite/gas/nanomips/abi32.s            |    70 +
 gas/testsuite/gas/nanomips/abs.d              |    17 +
 gas/testsuite/gas/nanomips/abs.s              |     4 +
 gas/testsuite/gas/nanomips/add.d              |    24 +
 gas/testsuite/gas/nanomips/add.s              |    13 +
 gas/testsuite/gas/nanomips/addu.d             |    23 +
 gas/testsuite/gas/nanomips/addu.s             |     9 +
 gas/testsuite/gas/nanomips/aent.d             |    13 +
 gas/testsuite/gas/nanomips/aent.s             |    16 +
 gas/testsuite/gas/nanomips/and.d              |    35 +
 gas/testsuite/gas/nanomips/and.s              |    23 +
 gas/testsuite/gas/nanomips/baddata1.l         |     3 +
 gas/testsuite/gas/nanomips/baddata1.s         |     9 +
 gas/testsuite/gas/nanomips/beq.d              |    39 +
 gas/testsuite/gas/nanomips/beq.s              |    22 +
 gas/testsuite/gas/nanomips/bge.d              |    53 +
 gas/testsuite/gas/nanomips/bge.s              |    24 +
 gas/testsuite/gas/nanomips/bgeu.d             |    44 +
 gas/testsuite/gas/nanomips/bgeu.s             |    21 +
 gas/testsuite/gas/nanomips/blt.d              |    52 +
 gas/testsuite/gas/nanomips/blt.s              |    24 +
 gas/testsuite/gas/nanomips/bltu.d             |    44 +
 gas/testsuite/gas/nanomips/bltu.s             |    21 +
 .../gas/nanomips/cp0-names-numeric.d          |    44 +
 gas/testsuite/gas/nanomips/cp0-names.d        |    43 +
 gas/testsuite/gas/nanomips/cp0-names.s        |    38 +
 .../gas/nanomips/cp0sel-names-numeric.d       |   236 +
 gas/testsuite/gas/nanomips/cp0sel-names.d     |   235 +
 gas/testsuite/gas/nanomips/cp0sel-names.s     |   236 +
 gas/testsuite/gas/nanomips/ctc.d              |    87 +
 gas/testsuite/gas/nanomips/ctc.s              |    66 +
 gas/testsuite/gas/nanomips/debug-dis.d        |    18 +
 gas/testsuite/gas/nanomips/debug-dis.s        |    12 +
 gas/testsuite/gas/nanomips/div.d              |    45 +
 gas/testsuite/gas/nanomips/div.s              |    31 +
 gas/testsuite/gas/nanomips/empty.s            |     3 +
 gas/testsuite/gas/nanomips/expr-const.d       |    11 +
 gas/testsuite/gas/nanomips/expr-const.s       |    24 +
 gas/testsuite/gas/nanomips/expr-ill.l         |     7 +
 gas/testsuite/gas/nanomips/expr-ill.s         |    20 +
 gas/testsuite/gas/nanomips/expr-sym.d         |    71 +
 gas/testsuite/gas/nanomips/expr-sym.s         |    36 +
 gas/testsuite/gas/nanomips/expr-vol.d         |    17 +
 gas/testsuite/gas/nanomips/expr-vol.s         |    17 +
 gas/testsuite/gas/nanomips/expr1.d            |    18 +
 gas/testsuite/gas/nanomips/expr1.s            |     9 +
 .../gas/nanomips/gpr-names-numeric.d          |    44 +
 gas/testsuite/gas/nanomips/gpr-names.d        |    44 +
 gas/testsuite/gas/nanomips/gpr-names.s        |    38 +
 .../gas/nanomips/hwr-names-numeric.d          |    59 +
 .../gas/nanomips/hwr-names-numeric.s          |    53 +
 .../gas/nanomips/insn-suffix-error.l          |    20 +
 .../gas/nanomips/insn-suffix-error.s          |    22 +
 gas/testsuite/gas/nanomips/isa-errors.l       |     7 +
 gas/testsuite/gas/nanomips/isa-errors.s       |     9 +
 gas/testsuite/gas/nanomips/jal.d              |    21 +
 gas/testsuite/gas/nanomips/jal.s              |    11 +
 gas/testsuite/gas/nanomips/jalr.l             |     3 +
 gas/testsuite/gas/nanomips/jalr.s             |    15 +
 gas/testsuite/gas/nanomips/la-lpic-mclarge.d  |   116 +
 gas/testsuite/gas/nanomips/la-lpic-mcmedium.d |   116 +
 gas/testsuite/gas/nanomips/la-mclarge-pcrel.d |   116 +
 gas/testsuite/gas/nanomips/la-mclarge.d       |   115 +
 gas/testsuite/gas/nanomips/la-pcrel.d         |   116 +
 gas/testsuite/gas/nanomips/la-pic-mclarge.d   |   116 +
 gas/testsuite/gas/nanomips/la-pic.d           |   156 +
 gas/testsuite/gas/nanomips/la.d               |   115 +
 gas/testsuite/gas/nanomips/la.s               |    82 +
 gas/testsuite/gas/nanomips/lb.d               |   176 +
 gas/testsuite/gas/nanomips/lb.s               |    72 +
 gas/testsuite/gas/nanomips/ld-reloc.d         |    86 +
 gas/testsuite/gas/nanomips/ld-reloc.s         |    34 +
 gas/testsuite/gas/nanomips/ld.d               |   174 +
 gas/testsuite/gas/nanomips/ld.s               |   145 +
 gas/testsuite/gas/nanomips/li.d               |    16 +
 gas/testsuite/gas/nanomips/li.s               |     9 +
 gas/testsuite/gas/nanomips/lif-pic.d          |    16 +
 gas/testsuite/gas/nanomips/lifloat-mem.d      |    20 +
 gas/testsuite/gas/nanomips/lifloat-nms.d      |    20 +
 gas/testsuite/gas/nanomips/lifloat.d          |    15 +
 gas/testsuite/gas/nanomips/lifloat.s          |     6 +
 gas/testsuite/gas/nanomips/lineno.d           |    86 +
 gas/testsuite/gas/nanomips/lineno.s           |    54 +
 gas/testsuite/gas/nanomips/linkrelax-dis.d    |    30 +
 gas/testsuite/gas/nanomips/linkrelax-dis.s    |    14 +
 gas/testsuite/gas/nanomips/linkrelax-relocs.d |    79 +
 gas/testsuite/gas/nanomips/linkrelax.d        |    17 +
 gas/testsuite/gas/nanomips/linkrelax.s        |    54 +
 gas/testsuite/gas/nanomips/mcmodel-err.l      |     3 +
 gas/testsuite/gas/nanomips/mcmodel-err.s      |     2 +
 gas/testsuite/gas/nanomips/mcmodel.l          |     0
 gas/testsuite/gas/nanomips/mcmodel.s          |     3 +
 gas/testsuite/gas/nanomips/move.d             |    14 +
 gas/testsuite/gas/nanomips/move.s             |     3 +
 gas/testsuite/gas/nanomips/mt-ase.d           |   651 +
 gas/testsuite/gas/nanomips/mt-ase.s           |   656 +
 gas/testsuite/gas/nanomips/mvh.d              |    16 +
 gas/testsuite/gas/nanomips/mvh.s              |    12 +
 gas/testsuite/gas/nanomips/nanomips-error.l   |    26 +
 gas/testsuite/gas/nanomips/nanomips-error.s   |    46 +
 .../gas/nanomips/nanomips-exc-noalias.d       |   254 +
 gas/testsuite/gas/nanomips/nanomips-exc.s     |   282 +
 gas/testsuite/gas/nanomips/nanomips-exc32.d   |   198 +
 gas/testsuite/gas/nanomips/nanomips-subset.d  |    37 +
 gas/testsuite/gas/nanomips/nanomips-subset.s  |    23 +
 gas/testsuite/gas/nanomips/nanomips.d         |  2317 +++
 gas/testsuite/gas/nanomips/nanomips.exp       |   557 +
 gas/testsuite/gas/nanomips/nanomips.l         |    10 +
 gas/testsuite/gas/nanomips/nanomips.s         |  2034 +++
 gas/testsuite/gas/nanomips/nanomips32.d       |  2309 +++
 .../gas/nanomips/[email protected]        |  2318 +++
 .../gas/nanomips/[email protected]      |  2309 +++
 .../gas/nanomips/[email protected]        |   206 +
 .../gas/nanomips/[email protected]       |   206 +
 .../gas/nanomips/[email protected]       |   206 +
 gas/testsuite/gas/nanomips/[email protected]   |   206 +
 gas/testsuite/gas/nanomips/[email protected]     |   176 +
 .../gas/nanomips/[email protected]         |   156 +
 gas/testsuite/gas/nanomips/[email protected]           |   175 +
 gas/testsuite/gas/nanomips/[email protected]  |    23 +
 gas/testsuite/gas/nanomips/[email protected]      |    21 +
 gas/testsuite/gas/nanomips/[email protected]   |    10 +
 gas/testsuite/gas/nanomips/[email protected]   |    26 +
 .../gas/nanomips/nolinkrelax-relocs.d         |    14 +
 gas/testsuite/gas/nanomips/nolinkrelax.d      |    17 +
 gas/testsuite/gas/nanomips/rol.d              |    28 +
 gas/testsuite/gas/nanomips/rol.s              |    22 +
 gas/testsuite/gas/nanomips/save-error.l       |    16 +
 gas/testsuite/gas/nanomips/save-error.s       |    42 +
 gas/testsuite/gas/nanomips/save-relocs.d      |    22 +
 gas/testsuite/gas/nanomips/save.d             |    64 +
 gas/testsuite/gas/nanomips/save.s             |    94 +
 gas/testsuite/gas/nanomips/sb.d               |   175 +
 gas/testsuite/gas/nanomips/sb.s               |    71 +
 include/dis-asm.h                             |     1 +
 include/elf/common.h                          |     1 +
 include/elf/nanomips.h                        |   211 +
 include/opcode/nanomips.h                     |  1238 ++
 ld/configure.tgt                              |     2 +
 ld/gen-doc.texi                               |     1 +
 ld/ld.texi                                    |    37 +
 opcodes/Makefile.am                           |     2 +
 opcodes/Makefile.in                           |     4 +
 opcodes/configure                             |     1 +
 opcodes/configure.ac                          |     1 +
 opcodes/disassemble.c                         |    14 +
 opcodes/disassemble.h                         |     1 +
 opcodes/nanomips-dis.c                        |  1394 ++
 opcodes/nanomips-formats.h                    |   265 +
 opcodes/nanomips-opc.c                        |   807 ++
 194 files changed, 45967 insertions(+), 5 deletions(-)
 create mode 100644 bfd/cpu-nanomips.c
 create mode 100644 bfd/elfnn-nanomips.c
 create mode 100644 bfd/elfxx-nanomips.c
 create mode 100644 bfd/elfxx-nanomips.h
 create mode 100644 config/mt-nanomips
 create mode 100644 gas/config/tc-nanomips.c
 create mode 100644 gas/config/tc-nanomips.h
 create mode 100644 gas/doc/c-nanomips-aliases.texi
 create mode 100644 gas/doc/c-nanomips-macros.texi
 create mode 100644 gas/doc/c-nanomips.texi
 create mode 100644 gas/testsuite/gas/cfi/cfi-nanomips-1.d
 create mode 100644 gas/testsuite/gas/elf/section2.e-nanomips
 create mode 100644 gas/testsuite/gas/nanomips/abi32-pic.d
 create mode 100644 gas/testsuite/gas/nanomips/abi32-pic.s
 create mode 100644 gas/testsuite/gas/nanomips/abi32.d
 create mode 100644 gas/testsuite/gas/nanomips/abi32.s
 create mode 100644 gas/testsuite/gas/nanomips/abs.d
 create mode 100644 gas/testsuite/gas/nanomips/abs.s
 create mode 100644 gas/testsuite/gas/nanomips/add.d
 create mode 100644 gas/testsuite/gas/nanomips/add.s
 create mode 100644 gas/testsuite/gas/nanomips/addu.d
 create mode 100644 gas/testsuite/gas/nanomips/addu.s
 create mode 100644 gas/testsuite/gas/nanomips/aent.d
 create mode 100644 gas/testsuite/gas/nanomips/aent.s
 create mode 100644 gas/testsuite/gas/nanomips/and.d
 create mode 100644 gas/testsuite/gas/nanomips/and.s
 create mode 100644 gas/testsuite/gas/nanomips/baddata1.l
 create mode 100644 gas/testsuite/gas/nanomips/baddata1.s
 create mode 100644 gas/testsuite/gas/nanomips/beq.d
 create mode 100644 gas/testsuite/gas/nanomips/beq.s
 create mode 100644 gas/testsuite/gas/nanomips/bge.d
 create mode 100644 gas/testsuite/gas/nanomips/bge.s
 create mode 100644 gas/testsuite/gas/nanomips/bgeu.d
 create mode 100644 gas/testsuite/gas/nanomips/bgeu.s
 create mode 100644 gas/testsuite/gas/nanomips/blt.d
 create mode 100644 gas/testsuite/gas/nanomips/blt.s
 create mode 100644 gas/testsuite/gas/nanomips/bltu.d
 create mode 100644 gas/testsuite/gas/nanomips/bltu.s
 create mode 100644 gas/testsuite/gas/nanomips/cp0-names-numeric.d
 create mode 100644 gas/testsuite/gas/nanomips/cp0-names.d
 create mode 100644 gas/testsuite/gas/nanomips/cp0-names.s
 create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names-numeric.d
 create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names.d
 create mode 100644 gas/testsuite/gas/nanomips/cp0sel-names.s
 create mode 100644 gas/testsuite/gas/nanomips/ctc.d
 create mode 100644 gas/testsuite/gas/nanomips/ctc.s
 create mode 100644 gas/testsuite/gas/nanomips/debug-dis.d
 create mode 100644 gas/testsuite/gas/nanomips/debug-dis.s
 create mode 100644 gas/testsuite/gas/nanomips/div.d
 create mode 100644 gas/testsuite/gas/nanomips/div.s
 create mode 100644 gas/testsuite/gas/nanomips/empty.s
 create mode 100644 gas/testsuite/gas/nanomips/expr-const.d
 create mode 100644 gas/testsuite/gas/nanomips/expr-const.s
 create mode 100644 gas/testsuite/gas/nanomips/expr-ill.l
 create mode 100644 gas/testsuite/gas/nanomips/expr-ill.s
 create mode 100644 gas/testsuite/gas/nanomips/expr-sym.d
 create mode 100644 gas/testsuite/gas/nanomips/expr-sym.s
 create mode 100644 gas/testsuite/gas/nanomips/expr-vol.d
 create mode 100644 gas/testsuite/gas/nanomips/expr-vol.s
 create mode 100644 gas/testsuite/gas/nanomips/expr1.d
 create mode 100644 gas/testsuite/gas/nanomips/expr1.s
 create mode 100644 gas/testsuite/gas/nanomips/gpr-names-numeric.d
 create mode 100644 gas/testsuite/gas/nanomips/gpr-names.d
 create mode 100644 gas/testsuite/gas/nanomips/gpr-names.s
 create mode 100644 gas/testsuite/gas/nanomips/hwr-names-numeric.d
 create mode 100644 gas/testsuite/gas/nanomips/hwr-names-numeric.s
 create mode 100644 gas/testsuite/gas/nanomips/insn-suffix-error.l
 create mode 100644 gas/testsuite/gas/nanomips/insn-suffix-error.s
 create mode 100644 gas/testsuite/gas/nanomips/isa-errors.l
 create mode 100644 gas/testsuite/gas/nanomips/isa-errors.s
 create mode 100644 gas/testsuite/gas/nanomips/jal.d
 create mode 100644 gas/testsuite/gas/nanomips/jal.s
 create mode 100644 gas/testsuite/gas/nanomips/jalr.l
 create mode 100644 gas/testsuite/gas/nanomips/jalr.s
 create mode 100644 gas/testsuite/gas/nanomips/la-lpic-mclarge.d
 create mode 100644 gas/testsuite/gas/nanomips/la-lpic-mcmedium.d
 create mode 100644 gas/testsuite/gas/nanomips/la-mclarge-pcrel.d
 create mode 100644 gas/testsuite/gas/nanomips/la-mclarge.d
 create mode 100644 gas/testsuite/gas/nanomips/la-pcrel.d
 create mode 100644 gas/testsuite/gas/nanomips/la-pic-mclarge.d
 create mode 100644 gas/testsuite/gas/nanomips/la-pic.d
 create mode 100644 gas/testsuite/gas/nanomips/la.d
 create mode 100644 gas/testsuite/gas/nanomips/la.s
 create mode 100644 gas/testsuite/gas/nanomips/lb.d
 create mode 100644 gas/testsuite/gas/nanomips/lb.s
 create mode 100644 gas/testsuite/gas/nanomips/ld-reloc.d
 create mode 100644 gas/testsuite/gas/nanomips/ld-reloc.s
 create mode 100644 gas/testsuite/gas/nanomips/ld.d
 create mode 100644 gas/testsuite/gas/nanomips/ld.s
 create mode 100644 gas/testsuite/gas/nanomips/li.d
 create mode 100644 gas/testsuite/gas/nanomips/li.s
 create mode 100644 gas/testsuite/gas/nanomips/lif-pic.d
 create mode 100644 gas/testsuite/gas/nanomips/lifloat-mem.d
 create mode 100644 gas/testsuite/gas/nanomips/lifloat-nms.d
 create mode 100644 gas/testsuite/gas/nanomips/lifloat.d
 create mode 100644 gas/testsuite/gas/nanomips/lifloat.s
 create mode 100644 gas/testsuite/gas/nanomips/lineno.d
 create mode 100644 gas/testsuite/gas/nanomips/lineno.s
 create mode 100644 gas/testsuite/gas/nanomips/linkrelax-dis.d
 create mode 100644 gas/testsuite/gas/nanomips/linkrelax-dis.s
 create mode 100644 gas/testsuite/gas/nanomips/linkrelax-relocs.d
 create mode 100644 gas/testsuite/gas/nanomips/linkrelax.d
 create mode 100644 gas/testsuite/gas/nanomips/linkrelax.s
 create mode 100644 gas/testsuite/gas/nanomips/mcmodel-err.l
 create mode 100644 gas/testsuite/gas/nanomips/mcmodel-err.s
 create mode 100644 gas/testsuite/gas/nanomips/mcmodel.l
 create mode 100644 gas/testsuite/gas/nanomips/mcmodel.s
 create mode 100644 gas/testsuite/gas/nanomips/move.d
 create mode 100644 gas/testsuite/gas/nanomips/move.s
 create mode 100644 gas/testsuite/gas/nanomips/mt-ase.d
 create mode 100644 gas/testsuite/gas/nanomips/mt-ase.s
 create mode 100644 gas/testsuite/gas/nanomips/mvh.d
 create mode 100644 gas/testsuite/gas/nanomips/mvh.s
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-error.l
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-error.s
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc-noalias.d
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc.s
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-exc32.d
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-subset.d
 create mode 100644 gas/testsuite/gas/nanomips/nanomips-subset.s
 create mode 100644 gas/testsuite/gas/nanomips/nanomips.d
 create mode 100644 gas/testsuite/gas/nanomips/nanomips.exp
 create mode 100644 gas/testsuite/gas/nanomips/nanomips.l
 create mode 100644 gas/testsuite/gas/nanomips/nanomips.s
 create mode 100644 gas/testsuite/gas/nanomips/nanomips32.d
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/[email protected]
 create mode 100644 gas/testsuite/gas/nanomips/nolinkrelax-relocs.d
 create mode 100644 gas/testsuite/gas/nanomips/nolinkrelax.d
 create mode 100644 gas/testsuite/gas/nanomips/rol.d
 create mode 100644 gas/testsuite/gas/nanomips/rol.s
 create mode 100644 gas/testsuite/gas/nanomips/save-error.l
 create mode 100644 gas/testsuite/gas/nanomips/save-error.s
 create mode 100644 gas/testsuite/gas/nanomips/save-relocs.d
 create mode 100644 gas/testsuite/gas/nanomips/save.d
 create mode 100644 gas/testsuite/gas/nanomips/save.s
 create mode 100644 gas/testsuite/gas/nanomips/sb.d
 create mode 100644 gas/testsuite/gas/nanomips/sb.s
 create mode 100644 include/elf/nanomips.h
 create mode 100644 include/opcode/nanomips.h
 create mode 100644 opcodes/nanomips-dis.c
 create mode 100644 opcodes/nanomips-formats.h
 create mode 100644 opcodes/nanomips-opc.c

-- 
2.39.5
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.