mbox series

[v8,00/87] Add nanoMIPS support to QEMU

Message ID 1534182832-554-1-git-send-email-aleksandar.markovic@rt-rk.com
Headers show
Series Add nanoMIPS support to QEMU | expand

Message

Aleksandar Markovic Aug. 13, 2018, 5:52 p.m. UTC
From: Aleksandar Markovic <amarkovic@wavecomp.com>

v7->v8:

  - the series is slightly reorganized so that:
      - patches 1-19 are fixes and improvements that are not
      dependent on the existence of nanoMIPS (even though most
      of them are logicaly connected to (and necessary for)
      nanoMIPS support) - they fix and improve pre-nanoMIPS code
      - patches 20-65 introduce core nanoMIPS functionality, but
      do not contain any dependence on or reference to nanoMIPS
      Linux ABI
      - patches 66-87 mostly deal with Linux user mode-related
      nanoMIPS functionality, therefore dependent on nanoMIPS
      Linux ABI
  - the series will probably be split into three (corresponding
      to the organization mentioned above) in near future

  - added support for availability control via bit config XNP
  - fixed availabitily control for LLWP/SCWP
  - added support for availability control via bit config MT
  - fixed availabitily control for pre-nanoMIPS MT ASE
  - fixed availabitily control for nanoMIPS MT ASE
  - completely removed case-statements defined by integer range
      from translate.c
  - patch on nanoMIPS specifics in ELF headers split into two
  - patch on GT64120-related functionality in nanoMIPS bootloader
      updated with comments and reorganizes with respect to
      endianness
  - replaced one instance of shift/mask with extract32()
  - fixed one instance of missing default case in decoding engine
  - removed several instances of unnecessary default case in
    decoding engine
  - minor tweaks related to variable scope and naming
  - fixed several spelling mistakes in commit messages
  - rebased to the latest code

v6->v7:

  - found a better place for MIPS_ARCH in elf.h
  - improved patch for LLWP and SCWP
  - fixed missing availability control, alignment, usage
    of extract32() in DSP patches
  - added disassembler support for microMIPS and nanoMIPS
  - removed unnecessary addition of one empty line in the
    patch on WR bit
  - improved statx() syscall translation
  - improved nanoMIPS items in binfmt script
  - amended pre-nanoMIPS items in qemu-doc.texi
  - added nanoMIPS items in qemu-doc.texi
  - changed slightly patch order to be logicaly more
    comprehensive 
  - rebased to the latest code
  - NOTE: there will be some sheckpatch.pl errors and warning
    for this series; however, we think those are flase positives
    in these particular circumstances - therefore we will not
    change any patch related to these checkpatch.pl messages

v5->v6:

  - used names offset and imm instead of rd and rs when
    appropriate
  - used gen_op_addr_addi when appropriate in one more place
  - avoided usage of tcg_temp_local_new
  - avoided unnecessary sign extension related to addr_add
  - fixed unprotected storing to cpu_gpr[0]
  - removed some unnecessary testing for ISA_NANOMIPS
  - updated patch for LLWP and SCWP
  - extract32 inserted instead of shift/mask in DSP patches
  - removed useless casts from DSP patches
  - reorganized functions to eliminated duplicated loading of
    gpr values into tcg variables in DSP patches
  - check Config1.WR bit for Watch registers only when using
    in runtime
  - removed duplicated check for bad address in PC register
  - added support for statx system call
  - updated script qemu-binfmt-conf.sh for nanoMIPS
  - rebased to the latest code

v4->v5:

  - merged series "Mips maintenance and misc fixes and improvements"
    and this one for easier handling (there are build dependencies)
  - eliminated shadow variables from translate.c
  - replaced shift/mask combination with extract32()
  - added new function gen_op_addr_addi()
  - added patch for LLWP and SCWP
  - added "fall through" comments at appropriate places
  - eliminated micromips flag from I7200 definition
  - numerous other enhancements originating from reviewer's
    comments
  - some of the patches split into two or more for easier
    handling and review
  - rebased to the latest code

v3->v4:

  - added support for nanoMIPS user mode functionality and
    configuration
  - DSP patch split into three for easier review and handling
  - corrected indentation in all decoding engine patches
  - shift/mask replaced with equivalent extract32() in some
    patches
  - added missing default cases in some patches
  - refactored invocation logic aroung decode_nanomips_opc()
  - improved comments before decode_gpr_XXX() utilities
  - all four decode_gpr_XXX() are now in a single patch
  - two patches on updating BadInstr and related registers
    are now merged, and execution logic improved
  - minor formatting corrections
  - rebased to the latest code

v2->v3:

  - added support for nanoMIPS-specifics in ELF headers
  - added support for CP0 Config0.WR bit
  - updated I7200 definition
  - improved indentation of some switch statements
  - slight reorganization of patches (splitting, order)
  - rebased to the latest code

v1->v2:

  - added DSP ASE support
  - added MT ASE support
  - added GDB XML support
  - order of patches changed
  - commit messages and patch title improved across the board
  - obsolete email addresses for authors and cosigners replaced
    with the right ones
  - some functions renamed to reflect better the documentation
  - some macros renamed to reflect better their nanoMIPS nature
  - streamlined formatting
  - some of other reviewer's comments addressed, but the majority
    was not; this is because the focus of this version was on
    completing the functionality as much as possible; remaining
    comments will be addressed in the subsequent versions of this
    series

This series of patches implements recently announced nanoMIPS on QEMU.
nanoMIPS is a variable length ISA containing 16, 32 and 48-bit wide
instructions. It is designed to be portable at assembly level with
other MIPS and microMIPS code, but contains a number of changes that
enhance code density and efficiency. The largest portion of patches
is nanoMIPS decoding engine.

For more information, please refer to the following link:

https://www.mips.com/products/architectures/nanomips/
Aleksandar Markovic (16):
  MAINTAINERS: Update target/mips maintainer's email addresses
  target/mips: Avoid case statements formulated by ranges - part 1
  target/mips: Mark switch fallthroughs with interpretable comments
  target/mips: Fix two instances of shadow variables
  target/mips: Update some CP0 registers bit definitions
  elf: Remove duplicate preprocessor constant definition
  elf: Add ELF flags for MIPS machine variants
  linux-user: Update MIPS syscall numbers up to kernel 4.18 headers
  qemu-doc: Amend MIPS-related items
  target/mips: Add preprocessor constants for nanoMIPS
  target/mips: Add placeholder and invocation of decode_nanomips_opc()
  target/mips: Add nanoMIPS decoding and extraction utilities
  elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too
  elf: Don't check FCR31_NAN2008 bit for nanoMIPS
  linux-user: Update syscall_defs.h header for nanoMIPS
  qemu-doc: Add nanoMIPS-related items

Aleksandar Rikalo (20):
  target/mips: Avoid case statements formulated by ranges - part 2
  target/mips: Add support for availability control via bit XNP
  target/mips: Add support for availability control via bit MT
  target/mips: Fix MT ASE instructions' availability control
  linux-user: Add preprocessor availability control to some syscalls
  target/mips: Implement emulation of nanoMIPS LLWP/SCWP pair
  elf: Add EM_NANOMIPS value as a valid one for e_machine field
  elf: On elf loading, treat both EM_MIPS and EM_NANOMIPS as legal for
    MIPS
  elf: Add nanoMIPS specific variations in ELF header fields
  linux-user: Add syscall numbers for nanoMIPS
  linux-user: Add target_signal.h header for nanoMIPS
  linux-user: Add termbits.h header for nanoMIPS
  linux-user: Add target_fcntl.h header for nanoMIPS
  linux-user: Add sockbits.h header for nanoMIPS
  linux-user: Add target_syscall.h header for nanoMIPS
  linux-user: Add support for nanoMIPS signal trampoline
  linux-user: Amend support for sigaction() syscall for nanoMIPS
  linux-user: Add support for statx() syscall for all platforms
  linux-user: Add support for nanoMIPS core files
  linux-user: Add nanoMIPS support in scripts/qemu-binfmt-conf.sh

Dimitrije Nikolic (5):
  linux-user: Add target_cpu.h header for nanoMIPS
  linux-user: Add target_structs.h header for nanoMIPS
  linux-user: Add target_elf.h header for nanoMIPS
  linux-user: Add signal.c for nanoMIPS
  linux-user: Add cpu_loop.c for nanoMIPS

James Hogan (5):
  target/mips: Implement emulation of nanoMIPS EXTW instruction
  target/mips: Adjust exception_resume_pc() for nanoMIPS
  target/mips: Adjust set_hflags_for_handler() for nanoMIPS
  target/mips: Adjust set_pc() for nanoMIPS
  gdbstub: Disable handling of nanoMIPS ISA bit in the MIPS gdbstub

Matthew Fortune (5):
  target/mips: Add emulation of nanoMIPS 16-bit save and restore
    instructions
  target/mips: Implement emulation of nanoMIPS ROTX instruction
  disas: Add support for microMIPS and nanoMIPS
  target/mips: Add handling of branch delay slots for nanoMIPS
  mips_malta: Add basic nanoMIPS boot code for Malta board

Paul Burton (1):
  mips_malta: Add setting up GT64120 BARs to the nanoMIPS bootloader

Stefan Markovic (16):
  target/mips: Add CP0 BadInstrX register
  target/mips: Implement CP0 Config1.WR bit functionality
  target/mips: Add gen_op_addr_addi()
  target/mips: Add nanoMIPS DSP ASE opcodes
  target/mips: Implement MT ASE support for nanoMIPS
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 1
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 2
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 3
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 4
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 5
  target/mips: Add emulation of DSP ASE for nanoMIPS - part 6
  target/mips: Add updating BadInstr, BadInstrP, BadInstrX for nanoMIPS
  mips_malta: Fix semihosting argument passing for nanoMIPS bare metal
  target/mips: Add definition of nanoMIPS I7200 CPU
  linux-user: Add nanoMIPS linux user mode configuration support
  gdbstub: Add XML support for GDB for nanoMIPS

Yongbok Kim (19):
  target/mips: Don't update BadVAddr register in Debug Mode
  target/mips: Check ELPA flag only in some cases of MFHC0 and MTHC0
  target/mips: Add nanoMIPS base instruction set opcodes
  target/mips: Add emulation of nanoMIPS 16-bit arithmetic instructions
  target/mips: Add emulation of nanoMIPS 16-bit branch instructions
  target/mips: Add emulation of nanoMIPS 16-bit shift instructions
  target/mips: Add emulation of nanoMIPS 16-bit misc instructions
  target/mips: Add emulation of nanoMIPS 16-bit load and store
    instructions
  target/mips: Add emulation of nanoMIPS 16-bit logic instructions
  target/mips: Add emulation of some common nanoMIPS 32-bit instructions
  target/mips: Add emulation of nanoMIPS instructions MOVE.P and
    MOVE.PREV
  target/mips: Add emulation of nanoMIPS 48-bit instructions
  target/mips: Add emulation of nanoMIPS FP instructions
  target/mips: Add emulation of misc nanoMIPS instructions (pool32a0)
  target/mips: Add emulation of misc nanoMIPS instructions (pool32axf)
  target/mips: Add emulation of misc nanoMIPS instructions (p_lsx)
  target/mips: Add emulation of nanoMIPS 32-bit load and store
    instructions
  target/mips: Add emulation of nanoMIPS 32-bit branch instructions
  target/mips: Fix ERET/ERETNC behavior related to ADEL exception

 .mailmap                                |     7 +-
 MAINTAINERS                             |    12 +-
 configure                               |    13 +-
 default-configs/nanomips-linux-user.mak |     1 +
 disas/Makefile.objs                     |     1 +
 disas/mips.c                            |   358 +-
 disas/nanomips.cpp                      | 15752 ++++++++++++++++++++++++++++++
 disas/nanomips.h                        |  1208 +++
 gdb-xml/nanomips-cp0.xml                |    13 +
 gdb-xml/nanomips-cpu.xml                |    44 +
 gdb-xml/nanomips-dsp.xml                |    20 +
 gdb-xml/nanomips-fpu.xml                |    45 +
 gdb-xml/nanomips-linux.xml              |    20 +
 hw/mips/mips_malta.c                    |   212 +-
 include/disas/bfd.h                     |     1 +
 include/elf.h                           |    44 +-
 include/hw/elf_ops.h                    |     8 +
 linux-user/elfload.c                    |    12 +-
 linux-user/mips/cpu_loop.c              |    36 +-
 linux-user/mips/signal.c                |    36 +-
 linux-user/mips/syscall_nr.h            |     9 +
 linux-user/mips/termbits.h              |     4 +
 linux-user/mips64/syscall_nr.h          |    18 +
 linux-user/nanomips/cpu_loop.c          |     1 +
 linux-user/nanomips/signal.c            |     1 +
 linux-user/nanomips/sockbits.h          |     1 +
 linux-user/nanomips/syscall_nr.h        |   275 +
 linux-user/nanomips/target_cpu.h        |    21 +
 linux-user/nanomips/target_elf.h        |    14 +
 linux-user/nanomips/target_fcntl.h      |    38 +
 linux-user/nanomips/target_signal.h     |    22 +
 linux-user/nanomips/target_structs.h    |     1 +
 linux-user/nanomips/target_syscall.h    |    30 +
 linux-user/nanomips/termbits.h          |     1 +
 linux-user/strace.c                     |    14 +-
 linux-user/syscall.c                    |   150 +-
 linux-user/syscall_defs.h               |    95 +-
 qemu-doc.texi                           |    15 +-
 scripts/qemu-binfmt-conf.sh             |    16 +-
 target/mips/cpu.c                       |    12 +-
 target/mips/cpu.h                       |   164 +-
 target/mips/gdbstub.c                   |    13 +-
 target/mips/helper.c                    |    35 +-
 target/mips/helper.h                    |     2 +
 target/mips/internal.h                  |     9 +-
 target/mips/machine.c                   |     5 +-
 target/mips/mips-defs.h                 |     4 +
 target/mips/op_helper.c                 |   113 +-
 target/mips/translate.c                 |  4997 +++++++++-
 target/mips/translate_init.inc.c        |    39 +
 50 files changed, 23718 insertions(+), 244 deletions(-)
 create mode 100644 default-configs/nanomips-linux-user.mak
 create mode 100644 disas/nanomips.cpp
 create mode 100644 disas/nanomips.h
 create mode 100644 gdb-xml/nanomips-cp0.xml
 create mode 100644 gdb-xml/nanomips-cpu.xml
 create mode 100644 gdb-xml/nanomips-dsp.xml
 create mode 100644 gdb-xml/nanomips-fpu.xml
 create mode 100644 gdb-xml/nanomips-linux.xml
 create mode 100644 linux-user/nanomips/cpu_loop.c
 create mode 100644 linux-user/nanomips/signal.c
 create mode 100644 linux-user/nanomips/sockbits.h
 create mode 100644 linux-user/nanomips/syscall_nr.h
 create mode 100644 linux-user/nanomips/target_cpu.h
 create mode 100644 linux-user/nanomips/target_elf.h
 create mode 100644 linux-user/nanomips/target_fcntl.h
 create mode 100644 linux-user/nanomips/target_signal.h
 create mode 100644 linux-user/nanomips/target_structs.h
 create mode 100644 linux-user/nanomips/target_syscall.h
 create mode 100644 linux-user/nanomips/termbits.h

Comments

Aleksandar Markovic Aug. 14, 2018, 3:52 p.m. UTC | #1
> From: Aleksandar Markovic <aleksandar.markovic@rt-rk.com
> Sent: Monday, August 13, 2018 7:52 PM
> 
> Subject: [PATCH v8 00/87] Add nanoMIPS support to QEMU
> 
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
> 
> v7->v8:
> 
>   - the series is slightly reorganized so that:
>      - patches 1-19 are fixes and improvements that are not
>      dependent on the existence of nanoMIPS (even though most
>      of them are logically connected to (and necessary for)
>      nanoMIPS support) - they fix and improve pre-nanoMIPS code
>       - patches 20-65 introduce core nanoMIPS functionality, but
>       do not contain any dependence on or reference to nanoMIPS
>       Linux ABI
>       - patches 66-87 mostly deal with Linux user mode-related
>       nanoMIPS functionality, therefore dependent on nanoMIPS
>       Linux ABI
>   - the series will probably be split into three (corresponding
>      to the organization mentioned above) in near future

Hello, all,

I am going to do splitting as described above soon. This will hopefully allow all of us to work easier with this series, and to make progress on parts that don't depend on Linux ABI independently on the destiny of Linux ABI-dependent parts.

Please let me know if you have any reservations.

Regards,
Aleksandar
no-reply@patchew.org Aug. 16, 2018, 8:16 a.m. UTC | #2
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 1534182832-554-1-git-send-email-aleksandar.markovic@rt-rk.com
Subject: [Qemu-devel] [PATCH v8 00/87] Add nanoMIPS support to QEMU

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/20180814124254.5229-1-peter.maydell@linaro.org -> patchew/20180814124254.5229-1-peter.maydell@linaro.org
Switched to a new branch 'test'
fac42f8865 qemu-doc: Add nanoMIPS-related items
d43d5394ec gdbstub: Add XML support for GDB for nanoMIPS
be84315d2b gdbstub: Disable handling of nanoMIPS ISA bit in the MIPS gdbstub
6e0ed49b51 linux-user: Add nanoMIPS support in scripts/qemu-binfmt-conf.sh
77ade6242a linux-user: Add nanoMIPS linux user mode configuration support
fa3a48ee21 linux-user: Add support for nanoMIPS core files
5c4e621529 linux-user: Add support for statx() syscall for all platforms
e0b2c6b944 linux-user: Amend support for sigaction() syscall for nanoMIPS
5b77b3db32 linux-user: Add cpu_loop.c for nanoMIPS
c930d7df54 linux-user: Add support for nanoMIPS signal trampoline
84b6db80f6 linux-user: Add signal.c for nanoMIPS
7b6c630289 linux-user: Add target_elf.h header for nanoMIPS
ea4815bf2e linux-user: Add target_structs.h header for nanoMIPS
01ba7d1d83 linux-user: Add target_cpu.h header for nanoMIPS
646d28f897 linux-user: Add target_syscall.h header for nanoMIPS
1c313bc906 linux-user: Add sockbits.h header for nanoMIPS
d8fa5d7422 linux-user: Add target_fcntl.h header for nanoMIPS
4e6a108c25 linux-user: Update syscall_defs.h header for nanoMIPS
d9feca652a linux-user: Add termbits.h header for nanoMIPS
c4d510be5a linux-user: Add target_signal.h header for nanoMIPS
4b1f9d5fba linux-user: Add syscall numbers for nanoMIPS
9fca61d37b elf: Add nanoMIPS specific variations in ELF header fields
056bdea55d target/mips: Add definition of nanoMIPS I7200 CPU
a1d3456a16 mips_malta: Fix semihosting argument passing for nanoMIPS bare metal
8b1712a854 mips_malta: Add setting up GT64120 BARs to the nanoMIPS bootloader
ab8023fade mips_malta: Add basic nanoMIPS boot code for Malta board
c8029e0d74 elf: On elf loading, treat both EM_MIPS and EM_NANOMIPS as legal for MIPS
d6f8520f27 elf: Don't check FCR31_NAN2008 bit for nanoMIPS
028dd85c14 elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too
aec7c34312 elf: Add EM_NANOMIPS value as a valid one for e_machine field
069fbd7e7c target/mips: Fix ERET/ERETNC behavior related to ADEL exception
e89fe52648 target/mips: Adjust set_pc() for nanoMIPS
7ac8ee6a05 target/mips: Adjust set_hflags_for_handler() for nanoMIPS
ae3a1c7255 target/mips: Adjust exception_resume_pc() for nanoMIPS
96a8b80e8f target/mips: Add updating BadInstr, BadInstrP, BadInstrX for nanoMIPS
5f05596e99 target/mips: Add handling of branch delay slots for nanoMIPS
6561a9b7a3 disas: Add support for microMIPS and nanoMIPS
70c1c34c36 target/mips: Add emulation of DSP ASE for nanoMIPS - part 6
b8865ddc64 target/mips: Add emulation of DSP ASE for nanoMIPS - part 5
a8bbbc77a7 target/mips: Add emulation of DSP ASE for nanoMIPS - part 4
7a3eea0733 target/mips: Add emulation of DSP ASE for nanoMIPS - part 3
f20d6e767c target/mips: Add emulation of DSP ASE for nanoMIPS - part 2
2cbfdb6373 target/mips: Add emulation of DSP ASE for nanoMIPS - part 1
948216d775 target/mips: Implement MT ASE support for nanoMIPS
ca66c06309 target/mips: Add emulation of nanoMIPS 32-bit branch instructions
3f523002af target/mips: Implement emulation of nanoMIPS LLWP/SCWP pair
783994d6b8 target/mips: Add emulation of nanoMIPS 32-bit load and store instructions
043f78c068 target/mips: Implement emulation of nanoMIPS EXTW instruction
8d0ef85707 target/mips: Implement emulation of nanoMIPS ROTX instruction
82e7d6022d target/mips: Add emulation of misc nanoMIPS instructions (p_lsx)
342833bc21 target/mips: Add emulation of misc nanoMIPS instructions (pool32axf)
ab79a06b77 target/mips: Add emulation of misc nanoMIPS instructions (pool32a0)
4157eb9c42 target/mips: Add emulation of nanoMIPS FP instructions
76a17b7be9 target/mips: Add emulation of nanoMIPS 48-bit instructions
f2f0c31e87 target/mips: Add emulation of nanoMIPS instructions MOVE.P and MOVE.PREV
1793b81c87 target/mips: Add emulation of some common nanoMIPS 32-bit instructions
9541d0f758 target/mips: Add emulation of nanoMIPS 16-bit save and restore instructions
77cfeb5e5b target/mips: Add emulation of nanoMIPS 16-bit logic instructions
543e827f55 target/mips: Add emulation of nanoMIPS 16-bit load and store instructions
d835b9de55 target/mips: Add emulation of nanoMIPS 16-bit misc instructions
801def3f9b target/mips: Add emulation of nanoMIPS 16-bit shift instructions
b63a7e6980 target/mips: Add emulation of nanoMIPS 16-bit branch instructions
a399d564c0 target/mips: Add emulation of nanoMIPS 16-bit arithmetic instructions
e689608f33 target/mips: Add nanoMIPS decoding and extraction utilities
ab249748fe target/mips: Add placeholder and invocation of decode_nanomips_opc()
60c689101d target/mips: Add nanoMIPS DSP ASE opcodes
069d6e6cc0 target/mips: Add nanoMIPS base instruction set opcodes
85c6419fcb target/mips: Add preprocessor constants for nanoMIPS
463e9f77e4 qemu-doc: Amend MIPS-related items
c7d6e91a16 linux-user: Add preprocessor availability control to some syscalls
fa22ac3c81 linux-user: Update MIPS syscall numbers up to kernel 4.18 headers
753b7ddc9f elf: Add ELF flags for MIPS machine variants
2731da1ea4 elf: Remove duplicate preprocessor constant definition
99ed97e25f target/mips: Add gen_op_addr_addi()
14f4e549a1 target/mips: Check ELPA flag only in some cases of MFHC0 and MTHC0
d41913a620 target/mips: Don't update BadVAddr register in Debug Mode
2583d95d46 target/mips: Implement CP0 Config1.WR bit functionality
e8bf0b5bb8 target/mips: Fix MT ASE instructions' availability control
2e40ec0a66 target/mips: Add support for availability control via bit MT
6cc683c8c2 target/mips: Add support for availability control via bit XNP
c6cf9dbbd6 target/mips: Add CP0 BadInstrX register
3da785ee55 target/mips: Update some CP0 registers bit definitions
d49428b302 target/mips: Fix two instances of shadow variables
b8b0dbf712 target/mips: Mark switch fallthroughs with interpretable comments
c3342491bc target/mips: Avoid case statements formulated by ranges - part 2
4969fbbd87 target/mips: Avoid case statements formulated by ranges - part 1
7d92c3cbb4 MAINTAINERS: Update target/mips maintainer's email addresses

=== OUTPUT BEGIN ===
Checking PATCH 1/87: MAINTAINERS: Update target/mips maintainer's email addresses...
Checking PATCH 2/87: target/mips: Avoid case statements formulated by ranges - part 1...
Checking PATCH 3/87: target/mips: Avoid case statements formulated by ranges - part 2...
Checking PATCH 4/87: target/mips: Mark switch fallthroughs with interpretable comments...
Checking PATCH 5/87: target/mips: Fix two instances of shadow variables...
Checking PATCH 6/87: target/mips: Update some CP0 registers bit definitions...
Checking PATCH 7/87: target/mips: Add CP0 BadInstrX register...
Checking PATCH 8/87: target/mips: Add support for availability control via bit XNP...
Checking PATCH 9/87: target/mips: Add support for availability control via bit MT...
Checking PATCH 10/87: target/mips: Fix MT ASE instructions' availability control...
Checking PATCH 11/87: target/mips: Implement CP0 Config1.WR bit functionality...
Checking PATCH 12/87: target/mips: Don't update BadVAddr register in Debug Mode...
Checking PATCH 13/87: target/mips: Check ELPA flag only in some cases of MFHC0 and MTHC0...
Checking PATCH 14/87: target/mips: Add gen_op_addr_addi()...
Checking PATCH 15/87: elf: Remove duplicate preprocessor constant definition...
Checking PATCH 16/87: elf: Add ELF flags for MIPS machine variants...
Checking PATCH 17/87: linux-user: Update MIPS syscall numbers up to kernel 4.18 headers...
Checking PATCH 18/87: linux-user: Add preprocessor availability control to some syscalls...
Checking PATCH 19/87: qemu-doc: Amend MIPS-related items...
Checking PATCH 20/87: target/mips: Add preprocessor constants for nanoMIPS...
Checking PATCH 21/87: target/mips: Add nanoMIPS base instruction set opcodes...
Checking PATCH 22/87: target/mips: Add nanoMIPS DSP ASE opcodes...
Checking PATCH 23/87: target/mips: Add placeholder and invocation of decode_nanomips_opc()...
Checking PATCH 24/87: target/mips: Add nanoMIPS decoding and extraction utilities...
Checking PATCH 25/87: target/mips: Add emulation of nanoMIPS 16-bit arithmetic instructions...
Checking PATCH 26/87: target/mips: Add emulation of nanoMIPS 16-bit branch instructions...
Checking PATCH 27/87: target/mips: Add emulation of nanoMIPS 16-bit shift instructions...
Checking PATCH 28/87: target/mips: Add emulation of nanoMIPS 16-bit misc instructions...
Checking PATCH 29/87: target/mips: Add emulation of nanoMIPS 16-bit load and store instructions...
Checking PATCH 30/87: target/mips: Add emulation of nanoMIPS 16-bit logic instructions...
Checking PATCH 31/87: target/mips: Add emulation of nanoMIPS 16-bit save and restore instructions...
Checking PATCH 32/87: target/mips: Add emulation of some common nanoMIPS 32-bit instructions...
Checking PATCH 33/87: target/mips: Add emulation of nanoMIPS instructions MOVE.P and MOVE.PREV...
Checking PATCH 34/87: target/mips: Add emulation of nanoMIPS 48-bit instructions...
Checking PATCH 35/87: target/mips: Add emulation of nanoMIPS FP instructions...
Checking PATCH 36/87: target/mips: Add emulation of misc nanoMIPS instructions (pool32a0)...
Checking PATCH 37/87: target/mips: Add emulation of misc nanoMIPS instructions (pool32axf)...
Checking PATCH 38/87: target/mips: Add emulation of misc nanoMIPS instructions (p_lsx)...
Checking PATCH 39/87: target/mips: Implement emulation of nanoMIPS ROTX instruction...
Checking PATCH 40/87: target/mips: Implement emulation of nanoMIPS EXTW instruction...
Checking PATCH 41/87: target/mips: Add emulation of nanoMIPS 32-bit load and store instructions...
Checking PATCH 42/87: target/mips: Implement emulation of nanoMIPS LLWP/SCWP pair...
Checking PATCH 43/87: target/mips: Add emulation of nanoMIPS 32-bit branch instructions...
Checking PATCH 44/87: target/mips: Implement MT ASE support for nanoMIPS...
Checking PATCH 45/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 1...
Checking PATCH 46/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 2...
Checking PATCH 47/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 3...
Checking PATCH 48/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 4...
Checking PATCH 49/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 5...
Checking PATCH 50/87: target/mips: Add emulation of DSP ASE for nanoMIPS - part 6...
Checking PATCH 51/87: disas: Add support for microMIPS and nanoMIPS...
ERROR: externs should be avoided in .c files
#330: FILE: disas/mips.c:6074:
+int nanomips_dis(char *buf, unsigned address, unsigned short one,

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#414: 
new file mode 100644

ERROR: space required before that '*' (ctx:OxV)
#860: FILE: disas/nanomips.cpp:442:
+                if ((cond == 0) || (this->*cond)(op_code)) {
                                           ^

ERROR: space required before that '*' (ctx:OxV)
#888: FILE: disas/nanomips.cpp:470:
+                            dis = (this->*dis_fn)(op_code);
                                          ^

ERROR: space prohibited between function name and open parenthesis '('
#17393: FILE: include/disas/bfd.h:390:
+int print_insn_micromips        (bfd_vma, disassemble_info*);

total: 4 errors, 1 warnings, 17374 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 52/87: target/mips: Add handling of branch delay slots for nanoMIPS...
Checking PATCH 53/87: target/mips: Add updating BadInstr, BadInstrP, BadInstrX for nanoMIPS...
Checking PATCH 54/87: target/mips: Adjust exception_resume_pc() for nanoMIPS...
Checking PATCH 55/87: target/mips: Adjust set_hflags_for_handler() for nanoMIPS...
Checking PATCH 56/87: target/mips: Adjust set_pc() for nanoMIPS...
Checking PATCH 57/87: target/mips: Fix ERET/ERETNC behavior related to ADEL exception...
Checking PATCH 58/87: elf: Add EM_NANOMIPS value as a valid one for e_machine field...
Checking PATCH 59/87: elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too...
Checking PATCH 60/87: elf: Don't check FCR31_NAN2008 bit for nanoMIPS...
Checking PATCH 61/87: elf: On elf loading, treat both EM_MIPS and EM_NANOMIPS as legal for MIPS...
Checking PATCH 62/87: mips_malta: Add basic nanoMIPS boot code for Malta board...
Checking PATCH 63/87: mips_malta: Add setting up GT64120 BARs to the nanoMIPS bootloader...
Checking PATCH 64/87: mips_malta: Fix semihosting argument passing for nanoMIPS bare metal...
Checking PATCH 65/87: target/mips: Add definition of nanoMIPS I7200 CPU...
Checking PATCH 66/87: elf: Add nanoMIPS specific variations in ELF header fields...
Checking PATCH 67/87: linux-user: Add syscall numbers for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#16: 
new file mode 100644

total: 0 errors, 1 warnings, 275 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 68/87: linux-user: Add target_signal.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#16: 
new file mode 100644

total: 0 errors, 1 warnings, 22 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 69/87: linux-user: Add termbits.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#30: 
new file mode 100644

total: 0 errors, 1 warnings, 11 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 70/87: linux-user: Update syscall_defs.h header for nanoMIPS...
Checking PATCH 71/87: linux-user: Add target_fcntl.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

total: 0 errors, 1 warnings, 38 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 72/87: linux-user: Add sockbits.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

total: 0 errors, 1 warnings, 1 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 73/87: linux-user: Add target_syscall.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

total: 0 errors, 1 warnings, 30 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 74/87: linux-user: Add target_cpu.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14: 
new file mode 100644

total: 0 errors, 1 warnings, 21 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 75/87: linux-user: Add target_structs.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100644

total: 0 errors, 1 warnings, 1 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 76/87: linux-user: Add target_elf.h header for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100644

total: 0 errors, 1 warnings, 14 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 77/87: linux-user: Add signal.c for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#113: 
new file mode 100644

total: 0 errors, 1 warnings, 84 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 78/87: linux-user: Add support for nanoMIPS signal trampoline...
Checking PATCH 79/87: linux-user: Add cpu_loop.c for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#54: 
new file mode 100644

total: 0 errors, 1 warnings, 33 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 80/87: linux-user: Amend support for sigaction() syscall for nanoMIPS...
Checking PATCH 81/87: linux-user: Add support for statx() syscall for all platforms...
WARNING: architecture specific defines should be avoided
#45: FILE: linux-user/syscall.c:10040:
+#if defined(__NR_statx)

total: 0 errors, 1 warnings, 175 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 82/87: linux-user: Add support for nanoMIPS core files...
Checking PATCH 83/87: linux-user: Add nanoMIPS linux user mode configuration support...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#60: 
new file mode 100644

total: 0 errors, 1 warnings, 38 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 84/87: linux-user: Add nanoMIPS support in scripts/qemu-binfmt-conf.sh...
WARNING: line over 80 characters
#30: FILE: scripts/qemu-binfmt-conf.sh:79:
+nanomips_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf9\x00'

ERROR: line over 90 characters
#31: FILE: scripts/qemu-binfmt-conf.sh:80:
+nanomips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'

WARNING: line over 80 characters
#34: FILE: scripts/qemu-binfmt-conf.sh:83:
+nanomipseb_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf9'

ERROR: line over 90 characters
#35: FILE: scripts/qemu-binfmt-conf.sh:84:
+nanomipseb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'

total: 2 errors, 2 warnings, 34 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 85/87: gdbstub: Disable handling of nanoMIPS ISA bit in the MIPS gdbstub...
Checking PATCH 86/87: gdbstub: Add XML support for GDB for nanoMIPS...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#34: 
new file mode 100644

total: 0 errors, 1 warnings, 157 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 87/87: qemu-doc: Add nanoMIPS-related items...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Aleksandar Markovic Aug. 16, 2018, 11:43 a.m. UTC | #3
> From: no-reply@patchew.org <no-reply@patchew.org>
> Sent: Thursday, August 16, 2018 10:16 AM
>
> Subject: Re: [Qemu-devel] [PATCH v8 00/87] Add nanoMIPS support to QEMU
> 
> Hi,
> 
> This series seems to have some coding style problems. See output below for
more information:
> 
> ...
>

We are aware of all these warnings. As Stefan explained earlier, they are all "false positives" for given circumstances, and we don't plan to fix any of the patches.

Yours,
Aleksandar