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