mbox

[PULL,00/66] ppc-for-2.8 queue 20160906

Message ID 1473133253-17598-1-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Pull-request

git://github.com/dgibson/qemu.git tags/ppc-for-2.8-20160906

Message

David Gibson Sept. 6, 2016, 3:39 a.m. UTC
The following changes since commit e87d397e5ef66276ccc49b829527d605ca07d0ad:

  Open 2.8 development tree (2016-09-05 11:38:54 +0100)

are available in the git repository at:

  git://github.com/dgibson/qemu.git tags/ppc-for-2.8-20160906

for you to fetch changes up to 2ccbe3e29adb7c016bc5525d38d2a6e938c481af:

  tests: Check serial output of firmware boot of some machines (2016-09-06 10:28:17 +1000)

----------------------------------------------------------------
ppc patch queue for 2016-Sep-6

This is my first pull request for the newly opened qemu-2.8 tree.  It
contains a heap of things that were too late for 2.7 and have been
queued for a while.  In particular:
    * A number of preliminary patches for the powernv machine type
        * A substantial cleanup of exception handling which will be
	  necessary to support running a TCG with hypervisor
	  facilities
    * A start on support for POWER9
        * Some TCG implementations for new POWER9 instructions
	* Some TCG and related cleanups in preparation for POWER9
    * Some assorted TCG optimizations
    * An implementation of the H_CHANGE_LOGICAL_LAN_MAC hypercall
      which allows the MAC address to be changed on the PAPR virtual
      NIC.
    * Add some extra test cases for several machines (this isn't
      strictly in the ppc code, but is most value to ppc)

----------------------------------------------------------------
Aneesh Kumar K.V (1):
      target-ppc: Introduce Power9 family

Benjamin Herrenschmidt (38):
      ppc: Provide basic raise_exception_* functions
      ppc: Move classic fp ops out of translate.c
      ppc: Move embedded spe ops out of translate.c
      ppc: Move DFP ops out of translate.c
      ppc: Move VMX ops out of translate.c
      ppc: Move VSX ops out of translate.c
      ppc: Rename fload_invalid_op_excp to float_invalid_op_excp
      ppc: Make float_invalid_op_excp() pass the return address
      ppc: Make float_check_status() pass the return address
      ppc: Don't update the NIP in floating point generated code
      ppc: FP exceptions are always precise
      ppc: Don't update NIP in lswi/lswx/stswi/stswx
      ppc: Don't update NIP in lmw/stmw/icbi
      ppc: Make tlb_fill() use new exception helper
      ppc: Rework NIP updates vs. exception generation
      ppc: Fix source NIP on SLB related interrupts
      ppc: Don't update NIP in DCR access routines
      ppc: Don't update NIP in facility unavailable interrupts
      ppc: Don't update NIP BookE 2.06 tlbwe
      ppc: Don't update NIP on conditional trap instructions
      ppc: Don't update NIP if not taking alignment exceptions
      ppc: Don't update NIP in dcbz and lscbx
      ppc: Make alignment exceptions suck less
      ppc: Handle unconditional (always/never) traps at translation time
      ppc: Speed up dcbz
      ppc: Fix CFAR updates
      ppc: Don't set access_type on all load/stores on hash64
      ppc: Use a helper to generate "LE unsupported" alignment interrupts
      ppc: load/store multiple and string insns don't do LE
      ppc: Speed up load/store multiple
      ppc: Rename #include'd .c files to .inc.c
      ppc: Fix macio ESCC legacy mapping
      ppc: Fix catching some segfaults in user mode
      ppc: Stop dumping state on all exceptions in linux-user
      ppc: Don't generate dead code on unconditional branches
      ppc: Improve flags for helpers loading/writing the time facilities
      ppc: Improve the exception helpers flags
      ppc: Improve a few more helper flags

Cédric Le Goater (3):
      hw/ppc: include fdt helper routine in a common file
      hw/ppc: use error_report instead of fprintf
      hw/ppc: add a ppc_create_page_sizes_prop() helper routine

Greg Kurz (1):
      xics_kvm: drop extra checking of kernel_xics_fd

Laurent Vivier (1):
      spapr: implement H_CHANGE_LOGICAL_LAN_MAC h_call

Nikunj A Dadhania (13):
      target-ppc: Introduce POWER ISA 3.0 flag
      target-ppc: adding addpcis instruction
      target-ppc: add cmprb instruction
      target-ppc: add modulo word operations
      target-ppc: add modulo dword operations
      target-ppc: add cnttzw[.] instruction
      target-ppc: add cmpeqb instruction
      target-ppc: add maddld instruction
      target-ppc: add maddhd and maddhdu instruction
      target-ppc: introduce opc4 for Expanded Opcode
      target-ppc: implement branch-less divw[o][.]
      target-ppc: implement branch-less divd[o][.]
      target-ppc: add extswsli[.] instruction

Sandipan Das (3):
      target-ppc: add cnttzd[.] instruction
      target-ppc: add dtstsfi[q] instructions
      target-ppc: add vabsdu[b,h,w] instructions

Swapnil Bokade (1):
      target-ppc: add vcmpnez[b,h,w][.] instructions

Thomas Huth (2):
      tests: Resort check-qtest entries in Makefile.include
      tests: Check serial output of firmware boot of some machines

Vivek Andrew Sha (3):
      target-ppc: add setb instruction
      target-ppc: add vslv instruction
      target-ppc: add vsrv instruction

 hw/intc/xics_kvm.c                  |   20 +-
 hw/misc/macio/macio.c               |   26 +-
 hw/net/spapr_llan.c                 |   30 +
 hw/ppc/Makefile.objs                |    2 +-
 hw/ppc/fdt.c                        |   49 +
 hw/ppc/spapr.c                      |   59 +-
 hw/ppc/spapr_drc.c                  |    8 +-
 hw/ppc/spapr_events.c               |   11 +-
 hw/ppc/spapr_iommu.c                |    4 +-
 hw/ppc/spapr_rtas.c                 |   13 +-
 hw/ppc/spapr_vio.c                  |    3 +-
 include/hw/ppc/fdt.h                |   30 +
 linux-user/main.c                   |   25 +-
 target-ppc/cpu-models.c             |    5 +
 target-ppc/cpu-models.h             |    1 +
 target-ppc/cpu-qom.h                |    1 +
 target-ppc/cpu.h                    |   14 +-
 target-ppc/dfp_helper.c             |   35 +
 target-ppc/excp_helper.c            |  203 +-
 target-ppc/fpu_helper.c             |  193 +-
 target-ppc/helper.h                 |   76 +-
 target-ppc/int_helper.c             |  123 +
 target-ppc/mem_helper.c             |  153 +-
 target-ppc/misc_helper.c            |    9 +-
 target-ppc/mmu-hash64.c             |   16 +-
 target-ppc/mmu_helper.c             |   21 +-
 target-ppc/timebase_helper.c        |   23 +-
 target-ppc/translate.c              | 5984 +++++------------------------------
 target-ppc/translate/dfp-impl.inc.c |  232 ++
 target-ppc/translate/dfp-ops.inc.c  |  165 +
 target-ppc/translate/fp-impl.inc.c  | 1070 +++++++
 target-ppc/translate/fp-ops.inc.c   |  111 +
 target-ppc/translate/spe-impl.inc.c | 1229 +++++++
 target-ppc/translate/spe-ops.inc.c  |  105 +
 target-ppc/translate/vmx-impl.inc.c |  843 +++++
 target-ppc/translate/vmx-ops.inc.c  |  259 ++
 target-ppc/translate/vsx-impl.inc.c |  715 +++++
 target-ppc/translate/vsx-ops.inc.c  |  270 ++
 target-ppc/translate_init.c         |  214 +-
 tests/Makefile.include              |   52 +-
 tests/boot-serial-test.c            |  110 +
 41 files changed, 6768 insertions(+), 5744 deletions(-)
 create mode 100644 hw/ppc/fdt.c
 create mode 100644 include/hw/ppc/fdt.h
 create mode 100644 target-ppc/translate/dfp-impl.inc.c
 create mode 100644 target-ppc/translate/dfp-ops.inc.c
 create mode 100644 target-ppc/translate/fp-impl.inc.c
 create mode 100644 target-ppc/translate/fp-ops.inc.c
 create mode 100644 target-ppc/translate/spe-impl.inc.c
 create mode 100644 target-ppc/translate/spe-ops.inc.c
 create mode 100644 target-ppc/translate/vmx-impl.inc.c
 create mode 100644 target-ppc/translate/vmx-ops.inc.c
 create mode 100644 target-ppc/translate/vsx-impl.inc.c
 create mode 100644 target-ppc/translate/vsx-ops.inc.c
 create mode 100644 tests/boot-serial-test.c

Comments

no-reply@patchew.org Sept. 6, 2016, 5:14 a.m. UTC | #1
Hi,

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

Subject: [Qemu-devel] [PULL 00/66] ppc-for-2.8 queue 20160906
Type: series
Message-id: 1473133253-17598-1-git-send-email-david@gibson.dropbear.id.au

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

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

# Useful git options
git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git show --no-patch --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
 * [new tag]         patchew/1473133253-17598-1-git-send-email-david@gibson.dropbear.id.au -> patchew/1473133253-17598-1-git-send-email-david@gibson.dropbear.id.au
Switched to a new branch 'test'
0db92ad tests: Check serial output of firmware boot of some machines
c3c8428 tests: Resort check-qtest entries in Makefile.include
d68d0f5 spapr: implement H_CHANGE_LOGICAL_LAN_MAC h_call
0bea6a3 ppc: Improve a few more helper flags
b1a4a8c ppc: Improve the exception helpers flags
a4acaba ppc: Improve flags for helpers loading/writing the time facilities
9477f7b ppc: Don't generate dead code on unconditional branches
4bcb34e ppc: Stop dumping state on all exceptions in linux-user
65504c0 ppc: Fix catching some segfaults in user mode
4eb70b5 ppc: Fix macio ESCC legacy mapping
f29e48e hw/ppc: add a ppc_create_page_sizes_prop() helper routine
3c8f0e4 hw/ppc: use error_report instead of fprintf
2c28d84 ppc: Rename #include'd .c files to .inc.c
41bed35 target-ppc: add extswsli[.] instruction
5ae4db1 target-ppc: add vsrv instruction
158c26b target-ppc: add vslv instruction
5f6afc0 target-ppc: add vcmpnez[b, h, w][.] instructions
aafc65b target-ppc: add vabsdu[b, h, w] instructions
062340d target-ppc: add dtstsfi[q] instructions
1d1b7ab target-ppc: implement branch-less divd[o][.]
9b0d7e8 target-ppc: implement branch-less divw[o][.]
3eb2924 ppc: Speed up load/store multiple
15a9293 ppc: load/store multiple and string insns don't do LE
627174e ppc: Use a helper to generate "LE unsupported" alignment interrupts
3ec0c72 ppc: Don't set access_type on all load/stores on hash64
0f2aa5c ppc: Fix CFAR updates
e0ca52e ppc: Speed up dcbz
f4d1f26 ppc: Handle unconditional (always/never) traps at translation time
c0d3897 ppc: Make alignment exceptions suck less
8f9c3fa ppc: Don't update NIP in dcbz and lscbx
fea1b36 ppc: Don't update NIP if not taking alignment exceptions
1f80c42 ppc: Don't update NIP on conditional trap instructions
f658b94 ppc: Don't update NIP BookE 2.06 tlbwe
6201d12 ppc: Don't update NIP in facility unavailable interrupts
2ce2cab ppc: Don't update NIP in DCR access routines
ba842da ppc: Fix source NIP on SLB related interrupts
cc6f1bc ppc: Rework NIP updates vs. exception generation
93b5ef1 ppc: Make tlb_fill() use new exception helper
5c2b3b5 ppc: Don't update NIP in lmw/stmw/icbi
3777fc8 ppc: Don't update NIP in lswi/lswx/stswi/stswx
9c88a78 ppc: FP exceptions are always precise
e09e1a9 ppc: Don't update the NIP in floating point generated code
bb10926 ppc: Make float_check_status() pass the return address
5893c9c ppc: Make float_invalid_op_excp() pass the return address
3067320 ppc: Rename fload_invalid_op_excp to float_invalid_op_excp
6634434 ppc: Move VSX ops out of translate.c
656061b ppc: Move VMX ops out of translate.c
0c2aeeb ppc: Move DFP ops out of translate.c
a7094ec ppc: Move embedded spe ops out of translate.c
830faa1 ppc: Move classic fp ops out of translate.c
06ec7c7 ppc: Provide basic raise_exception_* functions
9ffdd2d target-ppc: introduce opc4 for Expanded Opcode
4fb01e8 target-ppc: add maddhd and maddhdu instruction
081b316 target-ppc: add maddld instruction
1479463 target-ppc: add setb instruction
e46f061 target-ppc: add cmpeqb instruction
dbd2a4a target-ppc: add cnttzw[.] instruction
4d57c1c target-ppc: add cnttzd[.] instruction
00eac7b target-ppc: add modulo dword operations
a7eca61 target-ppc: add modulo word operations
7689e0e target-ppc: add cmprb instruction
73e41c6 target-ppc: adding addpcis instruction
2bdb997 target-ppc: Introduce POWER ISA 3.0 flag
5e91bbf target-ppc: Introduce Power9 family
a93a241 hw/ppc: include fdt helper routine in a common file
c20613e xics_kvm: drop extra checking of kernel_xics_fd

=== OUTPUT BEGIN ===
Checking PATCH 1/66: xics_kvm: drop extra checking of kernel_xics_fd...
Checking PATCH 2/66: hw/ppc: include fdt helper routine in a common file...
Checking PATCH 3/66: target-ppc: Introduce Power9 family...
Checking PATCH 4/66: target-ppc: Introduce POWER ISA 3.0 flag...
Checking PATCH 5/66: target-ppc: adding addpcis instruction...
Checking PATCH 6/66: target-ppc: add cmprb instruction...
Checking PATCH 7/66: target-ppc: add modulo word operations...
Checking PATCH 8/66: target-ppc: add modulo dword operations...
Checking PATCH 9/66: target-ppc: add cnttzd[.] instruction...
Checking PATCH 10/66: target-ppc: add cnttzw[.] instruction...
Checking PATCH 11/66: target-ppc: add cmpeqb instruction...
Checking PATCH 12/66: target-ppc: add setb instruction...
Checking PATCH 13/66: target-ppc: add maddld instruction...
Checking PATCH 14/66: target-ppc: add maddhd and maddhdu instruction...
Checking PATCH 15/66: target-ppc: introduce opc4 for Expanded Opcode...
WARNING: line over 80 characters
#329: FILE: target-ppc/translate_init.c:9419:
+                                        memcmp(handler->oname, q, strlen(q)) != 0) {

total: 0 errors, 1 warnings, 339 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 16/66: ppc: Provide basic raise_exception_* functions...
Checking PATCH 17/66: ppc: Move classic fp ops out of translate.c...
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#1342: FILE: target-ppc/translate/fp-impl.c:59:
+#define GEN_FLOAT_ACB(name, op2, set_fprf, type)                              \
+_GEN_FLOAT_ACB(name, name, 0x3F, op2, 0, set_fprf, type);                     \
+_GEN_FLOAT_ACB(name##s, name, 0x3B, op2, 1, set_fprf, type);

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#1370: FILE: target-ppc/translate/fp-impl.c:87:
+#define GEN_FLOAT_AB(name, op2, inval, set_fprf, type)                        \
+_GEN_FLOAT_AB(name, name, 0x3F, op2, inval, 0, set_fprf, type);               \
+_GEN_FLOAT_AB(name##s, name, 0x3B, op2, inval, 1, set_fprf, type);

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#1398: FILE: target-ppc/translate/fp-impl.c:115:
+#define GEN_FLOAT_AC(name, op2, inval, set_fprf, type)                        \
+_GEN_FLOAT_AC(name, name, 0x3F, op2, inval, 0, set_fprf, type);               \
+_GEN_FLOAT_AC(name##s, name, 0x3B, op2, inval, 1, set_fprf, type);

WARNING: line over 80 characters
#1749: FILE: target-ppc/translate/fp-impl.c:466:
+    tcg_gen_andi_i32(cpu_crf[crfD(ctx->opcode)], cpu_crf[crfD(ctx->opcode)], 0xf);

WARNING: line over 80 characters
#1753: FILE: target-ppc/translate/fp-impl.c:470:
+    tcg_gen_andi_i64(tnew_fpscr, tnew_fpscr, ~((0xF << shift) & FP_EX_CLEAR_BITS));

WARNING: line over 80 characters
#1788: FILE: target-ppc/translate/fp-impl.c:505:
+        /* NIP cannot be restored if the memory exception comes from an helper */

WARNING: line over 80 characters
#1814: FILE: target-ppc/translate/fp-impl.c:531:
+        /* NIP cannot be restored if the memory exception comes from an helper */

WARNING: line over 80 characters
#1899: FILE: target-ppc/translate/fp-impl.c:616:
+static void glue(gen_, name)(DisasContext *ctx)                                       \

WARNING: line over 80 characters
#1914: FILE: target-ppc/translate/fp-impl.c:631:
+static void glue(gen_, name##u)(DisasContext *ctx)                                    \

WARNING: line over 80 characters
#1934: FILE: target-ppc/translate/fp-impl.c:651:
+static void glue(gen_, name##ux)(DisasContext *ctx)                                   \

WARNING: line over 80 characters
#1954: FILE: target-ppc/translate/fp-impl.c:671:
+static void glue(gen_, name##x)(DisasContext *ctx)                                    \

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#1968: FILE: target-ppc/translate/fp-impl.c:685:
+#define GEN_LDFS(name, ldop, op, type)                                        \
+GEN_LDF(name, ldop, op | 0x20, type);                                         \
+GEN_LDUF(name, ldop, op | 0x21, type);                                        \
+GEN_LDUXF(name, ldop, op | 0x01, type);                                       \
+GEN_LDXF(name, ldop, 0x17, op | 0x00, type)

WARNING: line over 80 characters
#2075: FILE: target-ppc/translate/fp-impl.c:792:
+static void glue(gen_, name)(DisasContext *ctx)                                       \

WARNING: line over 80 characters
#2090: FILE: target-ppc/translate/fp-impl.c:807:
+static void glue(gen_, name##u)(DisasContext *ctx)                                    \

WARNING: line over 80 characters
#2110: FILE: target-ppc/translate/fp-impl.c:827:
+static void glue(gen_, name##ux)(DisasContext *ctx)                                   \

WARNING: line over 80 characters
#2130: FILE: target-ppc/translate/fp-impl.c:847:
+static void glue(gen_, name##x)(DisasContext *ctx)                                    \

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#2144: FILE: target-ppc/translate/fp-impl.c:861:
+#define GEN_STFS(name, stop, op, type)                                        \
+GEN_STF(name, stop, op | 0x20, type);                                         \
+GEN_STUF(name, stop, op | 0x21, type);                                        \
+GEN_STUXF(name, stop, op | 0x01, type);                                       \
+GEN_STXF(name, stop, 0x17, op | 0x00, type)

ERROR: braces {} are necessary for all arms of this statement
#2257: FILE: target-ppc/translate/fp-impl.c:974:
+    if (ra != 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2277: FILE: target-ppc/translate/fp-impl.c:994:
+    if (ra != 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2324: FILE: target-ppc/translate/fp-impl.c:1041:
+    if (ra != 0)
[...]

ERROR: braces {} are necessary for all arms of this statement
#2343: FILE: target-ppc/translate/fp-impl.c:1060:
+    if (ra != 0)
[...]

ERROR: Macros with complex values should be enclosed in parenthesis
#2390: FILE: target-ppc/translate/fp-ops.c:3:
+#define GEN_FLOAT_ACB(name, op2, set_fprf, type)                              \
+_GEN_FLOAT_ACB(name, name, 0x3F, op2, 0, set_fprf, type),                     \
+_GEN_FLOAT_ACB(name##s, name, 0x3B, op2, 1, set_fprf, type)

ERROR: Macros with complex values should be enclosed in parenthesis
#2395: FILE: target-ppc/translate/fp-ops.c:8:
+#define GEN_FLOAT_AB(name, op2, inval, set_fprf, type)                        \
+_GEN_FLOAT_AB(name, name, 0x3F, op2, inval, 0, set_fprf, type),               \
+_GEN_FLOAT_AB(name##s, name, 0x3B, op2, inval, 1, set_fprf, type)

ERROR: Macros with complex values should be enclosed in parenthesis
#2400: FILE: target-ppc/translate/fp-ops.c:13:
+#define GEN_FLOAT_AC(name, op2, inval, set_fprf, type)                        \
+_GEN_FLOAT_AC(name, name, 0x3F, op2, inval, 0, set_fprf, type),               \
+_GEN_FLOAT_AC(name##s, name, 0x3B, op2, inval, 1, set_fprf, type)

ERROR: Macros with complex values should be enclosed in parenthesis
#2440: FILE: target-ppc/translate/fp-ops.c:53:
+#define GEN_LDF(name, ldop, opc, type)                                        \
+GEN_HANDLER(name, opc, 0xFF, 0xFF, 0x00000000, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2442: FILE: target-ppc/translate/fp-ops.c:55:
+#define GEN_LDUF(name, ldop, opc, type)                                       \
+GEN_HANDLER(name##u, opc, 0xFF, 0xFF, 0x00000000, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2444: FILE: target-ppc/translate/fp-ops.c:57:
+#define GEN_LDUXF(name, ldop, opc, type)                                      \
+GEN_HANDLER(name##ux, 0x1F, 0x17, opc, 0x00000001, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2446: FILE: target-ppc/translate/fp-ops.c:59:
+#define GEN_LDXF(name, ldop, opc2, opc3, type)                                \
+GEN_HANDLER(name##x, 0x1F, opc2, opc3, 0x00000001, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2461: FILE: target-ppc/translate/fp-ops.c:74:
+#define GEN_STF(name, stop, opc, type)                                        \
+GEN_HANDLER(name, opc, 0xFF, 0xFF, 0x00000000, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2463: FILE: target-ppc/translate/fp-ops.c:76:
+#define GEN_STUF(name, stop, opc, type)                                       \
+GEN_HANDLER(name##u, opc, 0xFF, 0xFF, 0x00000000, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2465: FILE: target-ppc/translate/fp-ops.c:78:
+#define GEN_STUXF(name, stop, opc, type)                                      \
+GEN_HANDLER(name##ux, 0x1F, 0x17, opc, 0x00000001, type),

ERROR: Macros with complex values should be enclosed in parenthesis
#2467: FILE: target-ppc/translate/fp-ops.c:80:
+#define GEN_STXF(name, stop, opc2, opc3, type)                                \
+GEN_HANDLER(name##x, 0x1F, opc2, opc3, 0x00000001, type),

total: 20 errors, 12 warnings, 2463 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 18/66: ppc: Move embedded spe ops out of translate.c...
WARNING: line over 80 characters
#1391: FILE: target-ppc/translate/spe-impl.c:21:
+    tcg_gen_concat_tl_i64(tmp, cpu_gpr[rA(ctx->opcode)], cpu_gprh[rA(ctx->opcode)]);

ERROR: braces {} are necessary for all arms of this statement
#1415: FILE: target-ppc/translate/spe-impl.c:45:
+    if (Rc(ctx->opcode))                                                      \
[...]

WARNING: line over 80 characters
#1942: FILE: target-ppc/translate/spe-impl.c:572:
+GEN_SPE(evaddw,      speundef,    0x00, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1942: FILE: target-ppc/translate/spe-impl.c:572:
+GEN_SPE(evaddw,      speundef,    0x00, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#1944: FILE: target-ppc/translate/spe-impl.c:574:
+GEN_SPE(evsubfw,     speundef,    0x02, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1944: FILE: target-ppc/translate/spe-impl.c:574:
+GEN_SPE(evsubfw,     speundef,    0x02, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#1946: FILE: target-ppc/translate/spe-impl.c:576:
+GEN_SPE(evabs,       evneg,       0x04, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

ERROR: do not use C99 // comments
#1946: FILE: target-ppc/translate/spe-impl.c:576:
+GEN_SPE(evabs,       evneg,       0x04, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

WARNING: line over 80 characters
#1947: FILE: target-ppc/translate/spe-impl.c:577:
+GEN_SPE(evextsb,     evextsh,     0x05, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

ERROR: do not use C99 // comments
#1947: FILE: target-ppc/translate/spe-impl.c:577:
+GEN_SPE(evextsb,     evextsh,     0x05, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

WARNING: line over 80 characters
#1948: FILE: target-ppc/translate/spe-impl.c:578:
+GEN_SPE(evrndw,      evcntlzw,    0x06, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

ERROR: do not use C99 // comments
#1948: FILE: target-ppc/translate/spe-impl.c:578:
+GEN_SPE(evrndw,      evcntlzw,    0x06, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////

WARNING: line over 80 characters
#1949: FILE: target-ppc/translate/spe-impl.c:579:
+GEN_SPE(evcntlsw,    brinc,       0x07, 0x08, 0x0000F800, 0x00000000, PPC_SPE); //

ERROR: do not use C99 // comments
#1949: FILE: target-ppc/translate/spe-impl.c:579:
+GEN_SPE(evcntlsw,    brinc,       0x07, 0x08, 0x0000F800, 0x00000000, PPC_SPE); //

WARNING: line over 80 characters
#1951: FILE: target-ppc/translate/spe-impl.c:581:
+GEN_SPE(speundef,    evand,       0x08, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1951: FILE: target-ppc/translate/spe-impl.c:581:
+GEN_SPE(speundef,    evand,       0x08, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1952: FILE: target-ppc/translate/spe-impl.c:582:
+GEN_SPE(evandc,      speundef,    0x09, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1952: FILE: target-ppc/translate/spe-impl.c:582:
+GEN_SPE(evandc,      speundef,    0x09, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#1953: FILE: target-ppc/translate/spe-impl.c:583:
+GEN_SPE(evxor,       evor,        0x0B, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1953: FILE: target-ppc/translate/spe-impl.c:583:
+GEN_SPE(evxor,       evor,        0x0B, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1954: FILE: target-ppc/translate/spe-impl.c:584:
+GEN_SPE(evnor,       eveqv,       0x0C, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1954: FILE: target-ppc/translate/spe-impl.c:584:
+GEN_SPE(evnor,       eveqv,       0x0C, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1958: FILE: target-ppc/translate/spe-impl.c:588:
+GEN_SPE(speundef,    evorc,       0x0D, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1958: FILE: target-ppc/translate/spe-impl.c:588:
+GEN_SPE(speundef,    evorc,       0x0D, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1959: FILE: target-ppc/translate/spe-impl.c:589:
+GEN_SPE(evnand,      speundef,    0x0F, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1959: FILE: target-ppc/translate/spe-impl.c:589:
+GEN_SPE(evnand,      speundef,    0x0F, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#1960: FILE: target-ppc/translate/spe-impl.c:590:
+GEN_SPE(evsrwu,      evsrws,      0x10, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1960: FILE: target-ppc/translate/spe-impl.c:590:
+GEN_SPE(evsrwu,      evsrws,      0x10, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1962: FILE: target-ppc/translate/spe-impl.c:592:
+GEN_SPE(evslw,       speundef,    0x12, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1962: FILE: target-ppc/translate/spe-impl.c:592:
+GEN_SPE(evslw,       speundef,    0x12, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#1964: FILE: target-ppc/translate/spe-impl.c:594:
+GEN_SPE(evrlw,       evsplati,    0x14, 0x08, 0x00000000, 0x0000F800, PPC_SPE); //

ERROR: do not use C99 // comments
#1964: FILE: target-ppc/translate/spe-impl.c:594:
+GEN_SPE(evrlw,       evsplati,    0x14, 0x08, 0x00000000, 0x0000F800, PPC_SPE); //

WARNING: line over 80 characters
#1966: FILE: target-ppc/translate/spe-impl.c:596:
+GEN_SPE(evmergehi,   evmergelo,   0x16, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1966: FILE: target-ppc/translate/spe-impl.c:596:
+GEN_SPE(evmergehi,   evmergelo,   0x16, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1967: FILE: target-ppc/translate/spe-impl.c:597:
+GEN_SPE(evmergehilo, evmergelohi, 0x17, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1967: FILE: target-ppc/translate/spe-impl.c:597:
+GEN_SPE(evmergehilo, evmergelohi, 0x17, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////

WARNING: line over 80 characters
#1968: FILE: target-ppc/translate/spe-impl.c:598:
+GEN_SPE(evcmpgtu,    evcmpgts,    0x18, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1968: FILE: target-ppc/translate/spe-impl.c:598:
+GEN_SPE(evcmpgtu,    evcmpgts,    0x18, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////

WARNING: line over 80 characters
#1969: FILE: target-ppc/translate/spe-impl.c:599:
+GEN_SPE(evcmpltu,    evcmplts,    0x19, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////

ERROR: do not use C99 // comments
#1969: FILE: target-ppc/translate/spe-impl.c:599:
+GEN_SPE(evcmpltu,    evcmplts,    0x19, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////

WARNING: line over 80 characters
#1970: FILE: target-ppc/translate/spe-impl.c:600:
+GEN_SPE(evcmpeq,     speundef,    0x1A, 0x08, 0x00600000, 0xFFFFFFFF, PPC_SPE); ////

ERROR: do not use C99 // comments
#1970: FILE: target-ppc/translate/spe-impl.c:600:
+GEN_SPE(evcmpeq,     speundef,    0x1A, 0x08, 0x00600000, 0xFFFFFFFF, PPC_SPE); ////

WARNING: line over 80 characters
#2153: FILE: target-ppc/translate/spe-impl.c:783:
+static void glue(gen_, name)(DisasContext *ctx)                                       \

ERROR: if this code is redundant consider removing it
#2192: FILE: target-ppc/translate/spe-impl.c:822:
+#if 0

WARNING: line over 80 characters
#2193: FILE: target-ppc/translate/spe-impl.c:823:
+GEN_SPE(speundef,       evmhessf,      0x01, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);//

ERROR: do not use C99 // comments
#2193: FILE: target-ppc/translate/spe-impl.c:823:
+GEN_SPE(speundef,       evmhessf,      0x01, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);//

WARNING: line over 80 characters
#2194: FILE: target-ppc/translate/spe-impl.c:824:
+GEN_SPE(speundef,       evmhossf,      0x03, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2195: FILE: target-ppc/translate/spe-impl.c:825:
+GEN_SPE(evmheumi,       evmhesmi,      0x04, 0x10, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2196: FILE: target-ppc/translate/spe-impl.c:826:
+GEN_SPE(speundef,       evmhesmf,      0x05, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2197: FILE: target-ppc/translate/spe-impl.c:827:
+GEN_SPE(evmhoumi,       evmhosmi,      0x06, 0x10, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2198: FILE: target-ppc/translate/spe-impl.c:828:
+GEN_SPE(speundef,       evmhosmf,      0x07, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2199: FILE: target-ppc/translate/spe-impl.c:829:
+GEN_SPE(speundef,       evmhessfa,     0x11, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2200: FILE: target-ppc/translate/spe-impl.c:830:
+GEN_SPE(speundef,       evmhossfa,     0x13, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2201: FILE: target-ppc/translate/spe-impl.c:831:
+GEN_SPE(evmheumia,      evmhesmia,     0x14, 0x10, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2202: FILE: target-ppc/translate/spe-impl.c:832:
+GEN_SPE(speundef,       evmhesmfa,     0x15, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2203: FILE: target-ppc/translate/spe-impl.c:833:
+GEN_SPE(evmhoumia,      evmhosmia,     0x16, 0x10, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2204: FILE: target-ppc/translate/spe-impl.c:834:
+GEN_SPE(speundef,       evmhosmfa,     0x17, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2206: FILE: target-ppc/translate/spe-impl.c:836:
+GEN_SPE(speundef,       evmwhssf,      0x03, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2207: FILE: target-ppc/translate/spe-impl.c:837:
+GEN_SPE(evmwlumi,       speundef,      0x04, 0x11, 0x00000000, 0xFFFFFFFF, PPC_SPE);

WARNING: line over 80 characters
#2208: FILE: target-ppc/translate/spe-impl.c:838:
+GEN_SPE(evmwhumi,       evmwhsmi,      0x06, 0x11, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2209: FILE: target-ppc/translate/spe-impl.c:839:
+GEN_SPE(speundef,       evmwhsmf,      0x07, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2210: FILE: target-ppc/translate/spe-impl.c:840:
+GEN_SPE(speundef,       evmwssf,       0x09, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2211: FILE: target-ppc/translate/spe-impl.c:841:
+GEN_SPE(speundef,       evmwsmf,       0x0D, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2212: FILE: target-ppc/translate/spe-impl.c:842:
+GEN_SPE(speundef,       evmwhssfa,     0x13, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2213: FILE: target-ppc/translate/spe-impl.c:843:
+GEN_SPE(evmwlumia,      speundef,      0x14, 0x11, 0x00000000, 0xFFFFFFFF, PPC_SPE);

WARNING: line over 80 characters
#2214: FILE: target-ppc/translate/spe-impl.c:844:
+GEN_SPE(evmwhumia,      evmwhsmia,     0x16, 0x11, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2215: FILE: target-ppc/translate/spe-impl.c:845:
+GEN_SPE(speundef,       evmwhsmfa,     0x17, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2216: FILE: target-ppc/translate/spe-impl.c:846:
+GEN_SPE(speundef,       evmwssfa,      0x19, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2217: FILE: target-ppc/translate/spe-impl.c:847:
+GEN_SPE(speundef,       evmwsmfa,      0x1D, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2219: FILE: target-ppc/translate/spe-impl.c:849:
+GEN_SPE(evadduiaaw,     evaddsiaaw,    0x00, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);

WARNING: line over 80 characters
#2220: FILE: target-ppc/translate/spe-impl.c:850:
+GEN_SPE(evsubfusiaaw,   evsubfssiaaw,  0x01, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);

WARNING: line over 80 characters
#2221: FILE: target-ppc/translate/spe-impl.c:851:
+GEN_SPE(evaddumiaaw,    evaddsmiaaw,   0x04, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);

WARNING: line over 80 characters
#2222: FILE: target-ppc/translate/spe-impl.c:852:
+GEN_SPE(evsubfumiaaw,   evsubfsmiaaw,  0x05, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);

WARNING: line over 80 characters
#2223: FILE: target-ppc/translate/spe-impl.c:853:
+GEN_SPE(evdivws,        evdivwu,       0x06, 0x13, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2225: FILE: target-ppc/translate/spe-impl.c:855:
+GEN_SPE(evmheusiaaw,    evmhessiaaw,   0x00, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2226: FILE: target-ppc/translate/spe-impl.c:856:
+GEN_SPE(speundef,       evmhessfaaw,   0x01, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2227: FILE: target-ppc/translate/spe-impl.c:857:
+GEN_SPE(evmhousiaaw,    evmhossiaaw,   0x02, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2228: FILE: target-ppc/translate/spe-impl.c:858:
+GEN_SPE(speundef,       evmhossfaaw,   0x03, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2229: FILE: target-ppc/translate/spe-impl.c:859:
+GEN_SPE(evmheumiaaw,    evmhesmiaaw,   0x04, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2230: FILE: target-ppc/translate/spe-impl.c:860:
+GEN_SPE(speundef,       evmhesmfaaw,   0x05, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2231: FILE: target-ppc/translate/spe-impl.c:861:
+GEN_SPE(evmhoumiaaw,    evmhosmiaaw,   0x06, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2232: FILE: target-ppc/translate/spe-impl.c:862:
+GEN_SPE(speundef,       evmhosmfaaw,   0x07, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2233: FILE: target-ppc/translate/spe-impl.c:863:
+GEN_SPE(evmhegumiaa,    evmhegsmiaa,   0x14, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2234: FILE: target-ppc/translate/spe-impl.c:864:
+GEN_SPE(speundef,       evmhegsmfaa,   0x15, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2235: FILE: target-ppc/translate/spe-impl.c:865:
+GEN_SPE(evmhogumiaa,    evmhogsmiaa,   0x16, 0x14, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2236: FILE: target-ppc/translate/spe-impl.c:866:
+GEN_SPE(speundef,       evmhogsmfaa,   0x17, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2238: FILE: target-ppc/translate/spe-impl.c:868:
+GEN_SPE(evmwlusiaaw,    evmwlssiaaw,   0x00, 0x15, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2239: FILE: target-ppc/translate/spe-impl.c:869:
+GEN_SPE(evmwlumiaaw,    evmwlsmiaaw,   0x04, 0x15, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2240: FILE: target-ppc/translate/spe-impl.c:870:
+GEN_SPE(speundef,       evmwssfaa,     0x09, 0x15, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2241: FILE: target-ppc/translate/spe-impl.c:871:
+GEN_SPE(speundef,       evmwsmfaa,     0x0D, 0x15, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2243: FILE: target-ppc/translate/spe-impl.c:873:
+GEN_SPE(evmheusianw,    evmhessianw,   0x00, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2244: FILE: target-ppc/translate/spe-impl.c:874:
+GEN_SPE(speundef,       evmhessfanw,   0x01, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2245: FILE: target-ppc/translate/spe-impl.c:875:
+GEN_SPE(evmhousianw,    evmhossianw,   0x02, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2246: FILE: target-ppc/translate/spe-impl.c:876:
+GEN_SPE(speundef,       evmhossfanw,   0x03, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2247: FILE: target-ppc/translate/spe-impl.c:877:
+GEN_SPE(evmheumianw,    evmhesmianw,   0x04, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2248: FILE: target-ppc/translate/spe-impl.c:878:
+GEN_SPE(speundef,       evmhesmfanw,   0x05, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2249: FILE: target-ppc/translate/spe-impl.c:879:
+GEN_SPE(evmhoumianw,    evmhosmianw,   0x06, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2250: FILE: target-ppc/translate/spe-impl.c:880:
+GEN_SPE(speundef,       evmhosmfanw,   0x07, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2251: FILE: target-ppc/translate/spe-impl.c:881:
+GEN_SPE(evmhegumian,    evmhegsmian,   0x14, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2252: FILE: target-ppc/translate/spe-impl.c:882:
+GEN_SPE(speundef,       evmhegsmfan,   0x15, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2253: FILE: target-ppc/translate/spe-impl.c:883:
+GEN_SPE(evmhigumian,    evmhigsmian,   0x16, 0x16, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2254: FILE: target-ppc/translate/spe-impl.c:884:
+GEN_SPE(speundef,       evmhogsmfan,   0x17, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2256: FILE: target-ppc/translate/spe-impl.c:886:
+GEN_SPE(evmwlusianw,    evmwlssianw,   0x00, 0x17, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2257: FILE: target-ppc/translate/spe-impl.c:887:
+GEN_SPE(evmwlumianw,    evmwlsmianw,   0x04, 0x17, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2258: FILE: target-ppc/translate/spe-impl.c:888:
+GEN_SPE(speundef,       evmwssfan,     0x09, 0x17, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2259: FILE: target-ppc/translate/spe-impl.c:889:
+GEN_SPE(evmwumian,      evmwsmian,     0x0C, 0x17, 0x00000000, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2260: FILE: target-ppc/translate/spe-impl.c:890:
+GEN_SPE(speundef,       evmwsmfan,     0x0D, 0x17, 0xFFFFFFFF, 0x00000000, PPC_SPE);

WARNING: line over 80 characters
#2435: FILE: target-ppc/translate/spe-impl.c:1065:
+GEN_SPE(evfsadd,   evfssub,   0x00, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2435: FILE: target-ppc/translate/spe-impl.c:1065:
+GEN_SPE(evfsadd,   evfssub,   0x00, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2436: FILE: target-ppc/translate/spe-impl.c:1066:
+GEN_SPE(evfsabs,   evfsnabs,  0x02, 0x0A, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2436: FILE: target-ppc/translate/spe-impl.c:1066:
+GEN_SPE(evfsabs,   evfsnabs,  0x02, 0x0A, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2437: FILE: target-ppc/translate/spe-impl.c:1067:
+GEN_SPE(evfsneg,   speundef,  0x03, 0x0A, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2437: FILE: target-ppc/translate/spe-impl.c:1067:
+GEN_SPE(evfsneg,   speundef,  0x03, 0x0A, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2438: FILE: target-ppc/translate/spe-impl.c:1068:
+GEN_SPE(evfsmul,   evfsdiv,   0x04, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2438: FILE: target-ppc/translate/spe-impl.c:1068:
+GEN_SPE(evfsmul,   evfsdiv,   0x04, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2439: FILE: target-ppc/translate/spe-impl.c:1069:
+GEN_SPE(evfscmpgt, evfscmplt, 0x06, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2439: FILE: target-ppc/translate/spe-impl.c:1069:
+GEN_SPE(evfscmpgt, evfscmplt, 0x06, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2440: FILE: target-ppc/translate/spe-impl.c:1070:
+GEN_SPE(evfscmpeq, speundef,  0x07, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2440: FILE: target-ppc/translate/spe-impl.c:1070:
+GEN_SPE(evfscmpeq, speundef,  0x07, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2441: FILE: target-ppc/translate/spe-impl.c:1071:
+GEN_SPE(evfscfui,  evfscfsi,  0x08, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2441: FILE: target-ppc/translate/spe-impl.c:1071:
+GEN_SPE(evfscfui,  evfscfsi,  0x08, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2442: FILE: target-ppc/translate/spe-impl.c:1072:
+GEN_SPE(evfscfuf,  evfscfsf,  0x09, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2442: FILE: target-ppc/translate/spe-impl.c:1072:
+GEN_SPE(evfscfuf,  evfscfsf,  0x09, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2443: FILE: target-ppc/translate/spe-impl.c:1073:
+GEN_SPE(evfsctui,  evfsctsi,  0x0A, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2443: FILE: target-ppc/translate/spe-impl.c:1073:
+GEN_SPE(evfsctui,  evfsctsi,  0x0A, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2444: FILE: target-ppc/translate/spe-impl.c:1074:
+GEN_SPE(evfsctuf,  evfsctsf,  0x0B, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2444: FILE: target-ppc/translate/spe-impl.c:1074:
+GEN_SPE(evfsctuf,  evfsctsf,  0x0B, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2445: FILE: target-ppc/translate/spe-impl.c:1075:
+GEN_SPE(evfsctuiz, speundef,  0x0C, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2445: FILE: target-ppc/translate/spe-impl.c:1075:
+GEN_SPE(evfsctuiz, speundef,  0x0C, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2446: FILE: target-ppc/translate/spe-impl.c:1076:
+GEN_SPE(evfsctsiz, speundef,  0x0D, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2446: FILE: target-ppc/translate/spe-impl.c:1076:
+GEN_SPE(evfsctsiz, speundef,  0x0D, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2447: FILE: target-ppc/translate/spe-impl.c:1077:
+GEN_SPE(evfststgt, evfststlt, 0x0E, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2447: FILE: target-ppc/translate/spe-impl.c:1077:
+GEN_SPE(evfststgt, evfststlt, 0x0E, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2448: FILE: target-ppc/translate/spe-impl.c:1078:
+GEN_SPE(evfststeq, speundef,  0x0F, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2448: FILE: target-ppc/translate/spe-impl.c:1078:
+GEN_SPE(evfststeq, speundef,  0x0F, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: line over 90 characters
#2462: FILE: target-ppc/translate/spe-impl.c:1092:
+    tcg_gen_andi_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)], (target_long)~0x80000000LL);

WARNING: line over 80 characters
#2470: FILE: target-ppc/translate/spe-impl.c:1100:
+    tcg_gen_ori_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)], 0x80000000);

WARNING: line over 80 characters
#2478: FILE: target-ppc/translate/spe-impl.c:1108:
+    tcg_gen_xori_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)], 0x80000000);

WARNING: line over 80 characters
#2503: FILE: target-ppc/translate/spe-impl.c:1133:
+GEN_SPE(efsadd,   efssub,   0x00, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2503: FILE: target-ppc/translate/spe-impl.c:1133:
+GEN_SPE(efsadd,   efssub,   0x00, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2504: FILE: target-ppc/translate/spe-impl.c:1134:
+GEN_SPE(efsabs,   efsnabs,  0x02, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2504: FILE: target-ppc/translate/spe-impl.c:1134:
+GEN_SPE(efsabs,   efsnabs,  0x02, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2505: FILE: target-ppc/translate/spe-impl.c:1135:
+GEN_SPE(efsneg,   speundef, 0x03, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2505: FILE: target-ppc/translate/spe-impl.c:1135:
+GEN_SPE(efsneg,   speundef, 0x03, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2506: FILE: target-ppc/translate/spe-impl.c:1136:
+GEN_SPE(efsmul,   efsdiv,   0x04, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2506: FILE: target-ppc/translate/spe-impl.c:1136:
+GEN_SPE(efsmul,   efsdiv,   0x04, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2507: FILE: target-ppc/translate/spe-impl.c:1137:
+GEN_SPE(efscmpgt, efscmplt, 0x06, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2507: FILE: target-ppc/translate/spe-impl.c:1137:
+GEN_SPE(efscmpgt, efscmplt, 0x06, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2508: FILE: target-ppc/translate/spe-impl.c:1138:
+GEN_SPE(efscmpeq, efscfd,   0x07, 0x0B, 0x00600000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2508: FILE: target-ppc/translate/spe-impl.c:1138:
+GEN_SPE(efscmpeq, efscfd,   0x07, 0x0B, 0x00600000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2509: FILE: target-ppc/translate/spe-impl.c:1139:
+GEN_SPE(efscfui,  efscfsi,  0x08, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2509: FILE: target-ppc/translate/spe-impl.c:1139:
+GEN_SPE(efscfui,  efscfsi,  0x08, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2510: FILE: target-ppc/translate/spe-impl.c:1140:
+GEN_SPE(efscfuf,  efscfsf,  0x09, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2510: FILE: target-ppc/translate/spe-impl.c:1140:
+GEN_SPE(efscfuf,  efscfsf,  0x09, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2511: FILE: target-ppc/translate/spe-impl.c:1141:
+GEN_SPE(efsctui,  efsctsi,  0x0A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2511: FILE: target-ppc/translate/spe-impl.c:1141:
+GEN_SPE(efsctui,  efsctsi,  0x0A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2512: FILE: target-ppc/translate/spe-impl.c:1142:
+GEN_SPE(efsctuf,  efsctsf,  0x0B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2512: FILE: target-ppc/translate/spe-impl.c:1142:
+GEN_SPE(efsctuf,  efsctsf,  0x0B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2513: FILE: target-ppc/translate/spe-impl.c:1143:
+GEN_SPE(efsctuiz, speundef, 0x0C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2513: FILE: target-ppc/translate/spe-impl.c:1143:
+GEN_SPE(efsctuiz, speundef, 0x0C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2514: FILE: target-ppc/translate/spe-impl.c:1144:
+GEN_SPE(efsctsiz, speundef, 0x0D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2514: FILE: target-ppc/translate/spe-impl.c:1144:
+GEN_SPE(efsctsiz, speundef, 0x0D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2515: FILE: target-ppc/translate/spe-impl.c:1145:
+GEN_SPE(efststgt, efststlt, 0x0E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2515: FILE: target-ppc/translate/spe-impl.c:1145:
+GEN_SPE(efststgt, efststlt, 0x0E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2516: FILE: target-ppc/translate/spe-impl.c:1146:
+GEN_SPE(efststeq, speundef, 0x0F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

ERROR: do not use C99 // comments
#2516: FILE: target-ppc/translate/spe-impl.c:1146:
+GEN_SPE(efststeq, speundef, 0x0F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //

WARNING: line over 80 characters
#2581: FILE: target-ppc/translate/spe-impl.c:1211:
+GEN_SPE(efdadd,    efdsub,    0x10, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2581: FILE: target-ppc/translate/spe-impl.c:1211:
+GEN_SPE(efdadd,    efdsub,    0x10, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2582: FILE: target-ppc/translate/spe-impl.c:1212:
+GEN_SPE(efdcfuid,  efdcfsid,  0x11, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2582: FILE: target-ppc/translate/spe-impl.c:1212:
+GEN_SPE(efdcfuid,  efdcfsid,  0x11, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2583: FILE: target-ppc/translate/spe-impl.c:1213:
+GEN_SPE(efdabs,    efdnabs,   0x12, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2583: FILE: target-ppc/translate/spe-impl.c:1213:
+GEN_SPE(efdabs,    efdnabs,   0x12, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2584: FILE: target-ppc/translate/spe-impl.c:1214:
+GEN_SPE(efdneg,    speundef,  0x13, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2584: FILE: target-ppc/translate/spe-impl.c:1214:
+GEN_SPE(efdneg,    speundef,  0x13, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2585: FILE: target-ppc/translate/spe-impl.c:1215:
+GEN_SPE(efdmul,    efddiv,    0x14, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2585: FILE: target-ppc/translate/spe-impl.c:1215:
+GEN_SPE(efdmul,    efddiv,    0x14, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2586: FILE: target-ppc/translate/spe-impl.c:1216:
+GEN_SPE(efdctuidz, efdctsidz, 0x15, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2586: FILE: target-ppc/translate/spe-impl.c:1216:
+GEN_SPE(efdctuidz, efdctsidz, 0x15, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2587: FILE: target-ppc/translate/spe-impl.c:1217:
+GEN_SPE(efdcmpgt,  efdcmplt,  0x16, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2587: FILE: target-ppc/translate/spe-impl.c:1217:
+GEN_SPE(efdcmpgt,  efdcmplt,  0x16, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2588: FILE: target-ppc/translate/spe-impl.c:1218:
+GEN_SPE(efdcmpeq,  efdcfs,    0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2588: FILE: target-ppc/translate/spe-impl.c:1218:
+GEN_SPE(efdcmpeq,  efdcfs,    0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2589: FILE: target-ppc/translate/spe-impl.c:1219:
+GEN_SPE(efdcfui,   efdcfsi,   0x18, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2589: FILE: target-ppc/translate/spe-impl.c:1219:
+GEN_SPE(efdcfui,   efdcfsi,   0x18, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2590: FILE: target-ppc/translate/spe-impl.c:1220:
+GEN_SPE(efdcfuf,   efdcfsf,   0x19, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2590: FILE: target-ppc/translate/spe-impl.c:1220:
+GEN_SPE(efdcfuf,   efdcfsf,   0x19, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2591: FILE: target-ppc/translate/spe-impl.c:1221:
+GEN_SPE(efdctui,   efdctsi,   0x1A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2591: FILE: target-ppc/translate/spe-impl.c:1221:
+GEN_SPE(efdctui,   efdctsi,   0x1A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2592: FILE: target-ppc/translate/spe-impl.c:1222:
+GEN_SPE(efdctuf,   efdctsf,   0x1B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2592: FILE: target-ppc/translate/spe-impl.c:1222:
+GEN_SPE(efdctuf,   efdctsf,   0x1B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2593: FILE: target-ppc/translate/spe-impl.c:1223:
+GEN_SPE(efdctuiz,  speundef,  0x1C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2593: FILE: target-ppc/translate/spe-impl.c:1223:
+GEN_SPE(efdctuiz,  speundef,  0x1C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2594: FILE: target-ppc/translate/spe-impl.c:1224:
+GEN_SPE(efdctsiz,  speundef,  0x1D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2594: FILE: target-ppc/translate/spe-impl.c:1224:
+GEN_SPE(efdctsiz,  speundef,  0x1D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2595: FILE: target-ppc/translate/spe-impl.c:1225:
+GEN_SPE(efdtstgt,  efdtstlt,  0x1E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2595: FILE: target-ppc/translate/spe-impl.c:1225:
+GEN_SPE(efdtstgt,  efdtstlt,  0x1E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2596: FILE: target-ppc/translate/spe-impl.c:1226:
+GEN_SPE(efdtsteq,  speundef,  0x1F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

ERROR: do not use C99 // comments
#2596: FILE: target-ppc/translate/spe-impl.c:1226:
+GEN_SPE(efdtsteq,  speundef,  0x1F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //

WARNING: line over 80 characters
#2612: FILE: target-ppc/translate/spe-ops.c:7:
+    GEN_OPCODE_DUAL(name0##_##name1, 0x04, opc2, opc3, inval0, inval1, type, PPC_NONE)

WARNING: line over 80 characters
#2643: FILE: target-ppc/translate/spe-ops.c:38:
+GEN_SPE(evfsadd,     evfssub,     0x00, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2644: FILE: target-ppc/translate/spe-ops.c:39:
+GEN_SPE(evfsabs,     evfsnabs,    0x02, 0x0A, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2645: FILE: target-ppc/translate/spe-ops.c:40:
+GEN_SPE(evfsneg,     speundef,    0x03, 0x0A, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2646: FILE: target-ppc/translate/spe-ops.c:41:
+GEN_SPE(evfsmul,     evfsdiv,     0x04, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2647: FILE: target-ppc/translate/spe-ops.c:42:
+GEN_SPE(evfscmpgt,   evfscmplt,   0x06, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2648: FILE: target-ppc/translate/spe-ops.c:43:
+GEN_SPE(evfscmpeq,   speundef,    0x07, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2649: FILE: target-ppc/translate/spe-ops.c:44:
+GEN_SPE(evfscfui,    evfscfsi,    0x08, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2650: FILE: target-ppc/translate/spe-ops.c:45:
+GEN_SPE(evfscfuf,    evfscfsf,    0x09, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2651: FILE: target-ppc/translate/spe-ops.c:46:
+GEN_SPE(evfsctui,    evfsctsi,    0x0A, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2652: FILE: target-ppc/translate/spe-ops.c:47:
+GEN_SPE(evfsctuf,    evfsctsf,    0x0B, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2653: FILE: target-ppc/translate/spe-ops.c:48:
+GEN_SPE(evfsctuiz,   speundef,    0x0C, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2654: FILE: target-ppc/translate/spe-ops.c:49:
+GEN_SPE(evfsctsiz,   speundef,    0x0D, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2655: FILE: target-ppc/translate/spe-ops.c:50:
+GEN_SPE(evfststgt,   evfststlt,   0x0E, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2656: FILE: target-ppc/translate/spe-ops.c:51:
+GEN_SPE(evfststeq,   speundef,    0x0F, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2658: FILE: target-ppc/translate/spe-ops.c:53:
+GEN_SPE(efsadd,      efssub,      0x00, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2659: FILE: target-ppc/translate/spe-ops.c:54:
+GEN_SPE(efsabs,      efsnabs,     0x02, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2660: FILE: target-ppc/translate/spe-ops.c:55:
+GEN_SPE(efsneg,      speundef,    0x03, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2661: FILE: target-ppc/translate/spe-ops.c:56:
+GEN_SPE(efsmul,      efsdiv,      0x04, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2662: FILE: target-ppc/translate/spe-ops.c:57:
+GEN_SPE(efscmpgt,    efscmplt,    0x06, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2663: FILE: target-ppc/translate/spe-ops.c:58:
+GEN_SPE(efscmpeq,    efscfd,      0x07, 0x0B, 0x00600000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2664: FILE: target-ppc/translate/spe-ops.c:59:
+GEN_SPE(efscfui,     efscfsi,     0x08, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2665: FILE: target-ppc/translate/spe-ops.c:60:
+GEN_SPE(efscfuf,     efscfsf,     0x09, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2666: FILE: target-ppc/translate/spe-ops.c:61:
+GEN_SPE(efsctui,     efsctsi,     0x0A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2667: FILE: target-ppc/translate/spe-ops.c:62:
+GEN_SPE(efsctuf,     efsctsf,     0x0B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2668: FILE: target-ppc/translate/spe-ops.c:63:
+GEN_SPE(efsctuiz,    speundef,    0x0C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2669: FILE: target-ppc/translate/spe-ops.c:64:
+GEN_SPE(efsctsiz,    speundef,    0x0D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2670: FILE: target-ppc/translate/spe-ops.c:65:
+GEN_SPE(efststgt,    efststlt,    0x0E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2671: FILE: target-ppc/translate/spe-ops.c:66:
+GEN_SPE(efststeq,    speundef,    0x0F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),

WARNING: line over 80 characters
#2673: FILE: target-ppc/translate/spe-ops.c:68:
+GEN_SPE(efdadd,      efdsub,      0x10, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2674: FILE: target-ppc/translate/spe-ops.c:69:
+GEN_SPE(efdcfuid,    efdcfsid,    0x11, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2675: FILE: target-ppc/translate/spe-ops.c:70:
+GEN_SPE(efdabs,      efdnabs,     0x12, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2676: FILE: target-ppc/translate/spe-ops.c:71:
+GEN_SPE(efdneg,      speundef,    0x13, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2677: FILE: target-ppc/translate/spe-ops.c:72:
+GEN_SPE(efdmul,      efddiv,      0x14, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2678: FILE: target-ppc/translate/spe-ops.c:73:
+GEN_SPE(efdctuidz,   efdctsidz,   0x15, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2679: FILE: target-ppc/translate/spe-ops.c:74:
+GEN_SPE(efdcmpgt,    efdcmplt,    0x16, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2680: FILE: target-ppc/translate/spe-ops.c:75:
+GEN_SPE(efdcmpeq,    efdcfs,      0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2681: FILE: target-ppc/translate/spe-ops.c:76:
+GEN_SPE(efdcfui,     efdcfsi,     0x18, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2682: FILE: target-ppc/translate/spe-ops.c:77:
+GEN_SPE(efdcfuf,     efdcfsf,     0x19, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2683: FILE: target-ppc/translate/spe-ops.c:78:
+GEN_SPE(efdctui,     efdctsi,     0x1A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2684: FILE: target-ppc/translate/spe-ops.c:79:
+GEN_SPE(efdctuf,     efdctsf,     0x1B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2685: FILE: target-ppc/translate/spe-ops.c:80:
+GEN_SPE(efdctuiz,    speundef,    0x1C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2686: FILE: target-ppc/translate/spe-ops.c:81:
+GEN_SPE(efdctsiz,    speundef,    0x1D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2687: FILE: target-ppc/translate/spe-ops.c:82:
+GEN_SPE(efdtstgt,    efdtstlt,    0x1E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE),

WARNING: line over 80 characters
#2688: FILE: target-ppc/translate/spe-ops.c:83:
+GEN_SPE(efdtsteq,    speundef,    0x1F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_DOUBLE),

total: 68 errors, 175 warnings, 2680 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 19/66: ppc: Move DFP ops out of translate.c...
ERROR: Macros with complex values should be enclosed in parenthesis
#622: FILE: target-ppc/translate/dfp-ops.c:4:
+#define _GEN_DFP_LONGx2(name, op1, op2, mask) \
+GEN_HANDLER_E(name, 0x3B, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3B, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP)

ERROR: Macros with complex values should be enclosed in parenthesis
#626: FILE: target-ppc/translate/dfp-ops.c:8:
+#define _GEN_DFP_LONGx4(name, op1, op2, mask) \
+GEN_HANDLER_E(name, 0x3B, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3B, op1, 0x08 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3B, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3B, op1, 0x18 | op2, mask, PPC_NONE, PPC2_DFP)

ERROR: Macros with complex values should be enclosed in parenthesis
#635: FILE: target-ppc/translate/dfp-ops.c:17:
+#define _GEN_DFP_QUADx2(name, op1, op2, mask) \
+GEN_HANDLER_E(name, 0x3F, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3F, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP)

ERROR: Macros with complex values should be enclosed in parenthesis
#639: FILE: target-ppc/translate/dfp-ops.c:21:
+#define _GEN_DFP_QUADx4(name, op1, op2, mask)                         \
+GEN_HANDLER_E(name, 0x3F, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3F, op1, 0x08 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3F, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP), \
+GEN_HANDLER_E(name, 0x3F, op1, 0x18 | op2, mask, PPC_NONE, PPC2_DFP)

total: 4 errors, 0 warnings, 740 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 20/66: ppc: Move VMX ops out of translate.c...
WARNING: line over 80 characters
#1135: FILE: target-ppc/translate/vmx-impl.c:18:
+static void glue(gen_, name)(DisasContext *ctx)                                       \

WARNING: line over 80 characters
#1304: FILE: target-ppc/translate/vmx-impl.c:187:
+static void glue(gen_, name)(DisasContext *ctx)                                 \

ERROR: line over 90 characters
#1310: FILE: target-ppc/translate/vmx-impl.c:193:
+    tcg_op(cpu_avrh[rD(ctx->opcode)], cpu_avrh[rA(ctx->opcode)], cpu_avrh[rB(ctx->opcode)]); \

ERROR: line over 90 characters
#1311: FILE: target-ppc/translate/vmx-impl.c:194:
+    tcg_op(cpu_avrl[rD(ctx->opcode)], cpu_avrl[rA(ctx->opcode)], cpu_avrl[rB(ctx->opcode)]); \

WARNING: line over 80 characters
#1324: FILE: target-ppc/translate/vmx-impl.c:207:
+static void glue(gen_, name)(DisasContext *ctx)                                 \

ERROR: space prohibited between function name and open parenthesis '('
#1334: FILE: target-ppc/translate/vmx-impl.c:217:
+    gen_helper_##name (rd, ra, rb);                                     \

ERROR: space prohibited between function name and open parenthesis '('
#1635: FILE: target-ppc/translate/vmx-impl.c:518:
+        gen_helper_##name (rd, simm);                                   \

WARNING: line over 80 characters
#1645: FILE: target-ppc/translate/vmx-impl.c:528:
+static void glue(gen_, name)(DisasContext *ctx)                                 \

ERROR: space prohibited between function name and open parenthesis '('
#1654: FILE: target-ppc/translate/vmx-impl.c:537:
+        gen_helper_##name (rd, rb);                                     \

WARNING: line over 80 characters
#1693: FILE: target-ppc/translate/vmx-impl.c:576:
+static void glue(gen_, name)(DisasContext *ctx)                                 \

ERROR: space prohibited between function name and open parenthesis '('
#1703: FILE: target-ppc/translate/vmx-impl.c:586:
+        gen_helper_##name (rd, simm);                                   \

WARNING: line over 80 characters
#1709: FILE: target-ppc/translate/vmx-impl.c:592:
+static void glue(gen_, name)(DisasContext *ctx)                                 \

ERROR: space prohibited between function name and open parenthesis '('
#1720: FILE: target-ppc/translate/vmx-impl.c:603:
+        gen_helper_##name (rd, rb, uimm);                               \

ERROR: space prohibited between function name and open parenthesis '('
#1765: FILE: target-ppc/translate/vmx-impl.c:648:
+    gen_helper_vsldoi (rd, ra, rb, sh);

ERROR: Macros with complex values should be enclosed in parenthesis
#1996: FILE: target-ppc/translate/vmx-ops.c:44:
+#define GEN_VXRFORM_DUAL(name0, name1, opc2, opc3, tp0, tp1) \
+GEN_HANDLER_E(name0##_##name1, 0x4, opc2, opc3, 0x00000000, tp0, tp1), \
+GEN_HANDLER_E(name0##_##name1, 0x4, opc2, (opc3 | 0x10), 0x00000000, tp0, tp1),

ERROR: Macros with complex values should be enclosed in parenthesis
#2113: FILE: target-ppc/translate/vmx-ops.c:161:
+#define GEN_VXRFORM1(opname, name, str, opc2, opc3)                     \
+    GEN_HANDLER2(name, str, 0x4, opc2, opc3, 0x00000000, PPC_ALTIVEC),

total: 10 errors, 6 warnings, 2166 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 21/66: ppc: Move VSX ops out of translate.c...
ERROR: spaces required around that '-' (ctx:VxV)
#1044: FILE: target-ppc/translate/vsx-impl.c:8:
+        return cpu_avrh[n-32];
                          ^

ERROR: spaces required around that '-' (ctx:VxV)
#1053: FILE: target-ppc/translate/vsx-impl.c:17:
+        return cpu_avrl[n-32];
                          ^

WARNING: line over 80 characters
#1285: FILE: target-ppc/translate/vsx-impl.c:249:
+            tcg_gen_mov_i64(cpu_vsrh(xT(ctx->opcode)), cpu_vsrh(xA(ctx->opcode)));

WARNING: line over 80 characters
#1287: FILE: target-ppc/translate/vsx-impl.c:251:
+            tcg_gen_mov_i64(cpu_vsrh(xT(ctx->opcode)), cpu_vsrl(xA(ctx->opcode)));

WARNING: line over 80 characters
#1290: FILE: target-ppc/translate/vsx-impl.c:254:
+            tcg_gen_mov_i64(cpu_vsrl(xT(ctx->opcode)), cpu_vsrh(xB(ctx->opcode)));

WARNING: line over 80 characters
#1292: FILE: target-ppc/translate/vsx-impl.c:256:
+            tcg_gen_mov_i64(cpu_vsrl(xT(ctx->opcode)), cpu_vsrl(xB(ctx->opcode)));

ERROR: "foo * bar" should be "foo *bar"
#1305: FILE: target-ppc/translate/vsx-impl.c:269:
+static void glue(gen_, name)(DisasContext * ctx)                  \

ERROR: "foo * bar" should be "foo *bar"
#1350: FILE: target-ppc/translate/vsx-impl.c:314:
+static void glue(gen_, name)(DisasContext * ctx)                 \

ERROR: "foo * bar" should be "foo *bar"
#1412: FILE: target-ppc/translate/vsx-impl.c:376:
+static void gen_##name(DisasContext * ctx)                                    \

ERROR: "foo * bar" should be "foo *bar"
#1427: FILE: target-ppc/translate/vsx-impl.c:391:
+static void gen_##name(DisasContext * ctx)                    \

ERROR: "foo * bar" should be "foo *bar"
#1572: FILE: target-ppc/translate/vsx-impl.c:536:
+static void glue(gen_, name)(DisasContext * ctx)                     \

ERROR: "foo * bar" should be "foo *bar"
#1594: FILE: target-ppc/translate/vsx-impl.c:558:
+static void glue(gen_, name)(DisasContext * ctx)            \

ERROR: "foo * bar" should be "foo *bar"
#1631: FILE: target-ppc/translate/vsx-impl.c:595:
+static void gen_xxsel(DisasContext * ctx)

ERROR: Macros with complex values should be enclosed in parenthesis
#1786: FILE: target-ppc/translate/vsx-ops.c:23:
+#define GEN_XX2FORM(name, opc2, opc3, fl2)                           \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)

ERROR: Macros with complex values should be enclosed in parenthesis
#1790: FILE: target-ppc/translate/vsx-ops.c:27:
+#define GEN_XX3FORM(name, opc2, opc3, fl2)                           \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)

ERROR: Macros with complex values should be enclosed in parenthesis
#1796: FILE: target-ppc/translate/vsx-ops.c:33:
+#define GEN_XX2IFORM(name, opc2, opc3, fl2)                           \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 1, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 1, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 1, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 1, PPC_NONE, fl2)

ERROR: Macros with complex values should be enclosed in parenthesis
#1802: FILE: target-ppc/translate/vsx-ops.c:39:
+#define GEN_XX3_RC_FORM(name, opc2, opc3, fl2)                          \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x00, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x00, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x00, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x00, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x10, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x10, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x10, 0, PPC_NONE, fl2), \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x10, 0, PPC_NONE, fl2)

ERROR: Macros with complex values should be enclosed in parenthesis
#1812: FILE: target-ppc/translate/vsx-ops.c:49:
+#define GEN_XX3FORM_DM(name, opc2, opc3) \
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)

ERROR: spaces required around that '|' (ctx:VxV)
#1813: FILE: target-ppc/translate/vsx-ops.c:50:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1813: FILE: target-ppc/translate/vsx-ops.c:50:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1814: FILE: target-ppc/translate/vsx-ops.c:51:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1814: FILE: target-ppc/translate/vsx-ops.c:51:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1815: FILE: target-ppc/translate/vsx-ops.c:52:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1815: FILE: target-ppc/translate/vsx-ops.c:52:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1816: FILE: target-ppc/translate/vsx-ops.c:53:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1816: FILE: target-ppc/translate/vsx-ops.c:53:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1817: FILE: target-ppc/translate/vsx-ops.c:54:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1817: FILE: target-ppc/translate/vsx-ops.c:54:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1818: FILE: target-ppc/translate/vsx-ops.c:55:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1818: FILE: target-ppc/translate/vsx-ops.c:55:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1819: FILE: target-ppc/translate/vsx-ops.c:56:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1819: FILE: target-ppc/translate/vsx-ops.c:56:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1820: FILE: target-ppc/translate/vsx-ops.c:57:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1820: FILE: target-ppc/translate/vsx-ops.c:57:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1821: FILE: target-ppc/translate/vsx-ops.c:58:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1821: FILE: target-ppc/translate/vsx-ops.c:58:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1822: FILE: target-ppc/translate/vsx-ops.c:59:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1822: FILE: target-ppc/translate/vsx-ops.c:59:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1823: FILE: target-ppc/translate/vsx-ops.c:60:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1823: FILE: target-ppc/translate/vsx-ops.c:60:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1824: FILE: target-ppc/translate/vsx-ops.c:61:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1824: FILE: target-ppc/translate/vsx-ops.c:61:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1825: FILE: target-ppc/translate/vsx-ops.c:62:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1825: FILE: target-ppc/translate/vsx-ops.c:62:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1826: FILE: target-ppc/translate/vsx-ops.c:63:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1826: FILE: target-ppc/translate/vsx-ops.c:63:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1827: FILE: target-ppc/translate/vsx-ops.c:64:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1827: FILE: target-ppc/translate/vsx-ops.c:64:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
                                                  ^

ERROR: spaces required around that '|' (ctx:VxV)
#1828: FILE: target-ppc/translate/vsx-ops.c:65:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)
                                       ^

ERROR: spaces required around that '|' (ctx:VxV)
#1828: FILE: target-ppc/translate/vsx-ops.c:65:
+GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)
                                                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#1990: FILE: target-ppc/translate/vsx-ops.c:227:
+#define GEN_XXSEL_ROW(opc3) \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x18, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x19, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1A, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1B, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1C, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1D, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1E, opc3, 0, PPC_NONE, PPC2_VSX), \
+GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1F, opc3, 0, PPC_NONE, PPC2_VSX), \
+

total: 47 errors, 4 warnings, 2003 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 22/66: ppc: Rename fload_invalid_op_excp to float_invalid_op_excp...
Checking PATCH 23/66: ppc: Make float_invalid_op_excp() pass the return address...
Checking PATCH 24/66: ppc: Make float_check_status() pass the return address...
Checking PATCH 25/66: ppc: Don't update the NIP in floating point generated code...
Checking PATCH 26/66: ppc: FP exceptions are always precise...
Checking PATCH 27/66: ppc: Don't update NIP in lswi/lswx/stswi/stswx...
ERROR: spaces required around that '|' (ctx:VxV)
#37: FILE: target-ppc/excp_helper.c:314:
+        if (env->error_code == (POWERPC_EXCP_INVAL|POWERPC_EXCP_INVAL_LSWX)) {
                                                   ^

total: 1 errors, 0 warnings, 142 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 28/66: ppc: Don't update NIP in lmw/stmw/icbi...
Checking PATCH 29/66: ppc: Make tlb_fill() use new exception helper...
Checking PATCH 30/66: ppc: Rework NIP updates vs. exception generation...
Checking PATCH 31/66: ppc: Fix source NIP on SLB related interrupts...
Checking PATCH 32/66: ppc: Don't update NIP in DCR access routines...
Checking PATCH 33/66: ppc: Don't update NIP in facility unavailable interrupts...
Checking PATCH 34/66: ppc: Don't update NIP BookE 2.06 tlbwe...
Checking PATCH 35/66: ppc: Don't update NIP on conditional trap instructions...
Checking PATCH 36/66: ppc: Don't update NIP if not taking alignment exceptions...
Checking PATCH 37/66: ppc: Don't update NIP in dcbz and lscbx...
Checking PATCH 38/66: ppc: Make alignment exceptions suck less...
Checking PATCH 39/66: ppc: Handle unconditional (always/never) traps at translation time...
Checking PATCH 40/66: ppc: Speed up dcbz...
Checking PATCH 41/66: ppc: Fix CFAR updates...
Checking PATCH 42/66: ppc: Don't set access_type on all load/stores on hash64...
Checking PATCH 43/66: ppc: Use a helper to generate "LE unsupported" alignment interrupts...
Checking PATCH 44/66: ppc: load/store multiple and string insns don't do LE...
Checking PATCH 45/66: ppc: Speed up load/store multiple...
ERROR: space required before the open parenthesis '('
#54: FILE: target-ppc/mem_helper.c:88:
+        while(adjlen) {

ERROR: space required before the open parenthesis '('
#90: FILE: target-ppc/mem_helper.c:129:
+        while(adjlen) {

total: 2 errors, 0 warnings, 83 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 46/66: target-ppc: implement branch-less divw[o][.]...
Checking PATCH 47/66: target-ppc: implement branch-less divd[o][.]...
Checking PATCH 48/66: target-ppc: add dtstsfi[q] instructions...
Checking PATCH 49/66: target-ppc: add vabsdu[b, h, w] instructions...
Checking PATCH 50/66: target-ppc: add vcmpnez[b, h, w][.] instructions...
ERROR: Macros with complex values should be enclosed in parenthesis
#112: FILE: target-ppc/translate/vmx-ops.c:163:
+#define GEN_VXRFORM1_300(opname, name, str, opc2, opc3)                 \
+GEN_HANDLER2_E(name, str, 0x4, opc2, opc3, 0x00000000, PPC_NONE, PPC2_ISA300),

total: 1 errors, 0 warnings, 90 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 51/66: target-ppc: add vslv instruction...
Checking PATCH 52/66: target-ppc: add vsrv instruction...
Checking PATCH 53/66: target-ppc: add extswsli[.] instruction...
Checking PATCH 54/66: ppc: Rename #include'd .c files to .inc.c...
Checking PATCH 55/66: hw/ppc: use error_report instead of fprintf...
Use of uninitialized value in concatenation (.) or string at ./scripts/checkpatch.pl line 2159.
Checking PATCH 56/66: hw/ppc: add a ppc_create_page_sizes_prop() helper routine...
Checking PATCH 57/66: ppc: Fix macio ESCC legacy mapping...
Checking PATCH 58/66: ppc: Fix catching some segfaults in user mode...
Checking PATCH 59/66: ppc: Stop dumping state on all exceptions in linux-user...
Checking PATCH 60/66: ppc: Don't generate dead code on unconditional branches...
Checking PATCH 61/66: ppc: Improve flags for helpers loading/writing the time facilities...
Checking PATCH 62/66: ppc: Improve the exception helpers flags...
Checking PATCH 63/66: ppc: Improve a few more helper flags...
Checking PATCH 64/66: spapr: implement H_CHANGE_LOGICAL_LAN_MAC h_call...
Checking PATCH 65/66: tests: Resort check-qtest entries in Makefile.include...
Checking PATCH 66/66: tests: Check serial output of firmware boot of some machines...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
Peter Maydell Sept. 6, 2016, 2:04 p.m. UTC | #2
On 6 September 2016 at 04:39, David Gibson <david@gibson.dropbear.id.au> wrote:
> The following changes since commit e87d397e5ef66276ccc49b829527d605ca07d0ad:
>
>   Open 2.8 development tree (2016-09-05 11:38:54 +0100)
>
> are available in the git repository at:
>
>   git://github.com/dgibson/qemu.git tags/ppc-for-2.8-20160906
>
> for you to fetch changes up to 2ccbe3e29adb7c016bc5525d38d2a6e938c481af:
>
>   tests: Check serial output of firmware boot of some machines (2016-09-06 10:28:17 +1000)
>
> ----------------------------------------------------------------
> ppc patch queue for 2016-Sep-6
>
> This is my first pull request for the newly opened qemu-2.8 tree.  It
> contains a heap of things that were too late for 2.7 and have been
> queued for a while.  In particular:
>     * A number of preliminary patches for the powernv machine type
>         * A substantial cleanup of exception handling which will be
>           necessary to support running a TCG with hypervisor
>           facilities
>     * A start on support for POWER9
>         * Some TCG implementations for new POWER9 instructions
>         * Some TCG and related cleanups in preparation for POWER9
>     * Some assorted TCG optimizations
>     * An implementation of the H_CHANGE_LOGICAL_LAN_MAC hypercall
>       which allows the MAC address to be changed on the PAPR virtual
>       NIC.
>     * Add some extra test cases for several machines (this isn't
>       strictly in the ppc code, but is most value to ppc)
>
> ----------------------------------------------------------------

Hi. This fails 'make check' on ppc64be:

QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64
QTEST_QEMU_IMG=qemu-img MALLOC_PERTURB_=${MALLOC_PERTURB_:-
$((RANDOM % 255 + 1))} gtester -k --verbose -m=quick
tests/spapr-phb-test tests/endianness-test tests/boot-order-test
tests/prom-env-test tests/drive_del-test tests/postcopy-test
tests/boot-serial-test tests/device-introspect-test tests/qom-test
TEST: tests/spapr-phb-test... (pid=14553)
  /ppc64/spapr-phb/device:                                             OK
PASS: tests/spapr-phb-test
TEST: tests/endianness-test... (pid=14558)
  /ppc64/endianness/mac99:                                             OK
  /ppc64/endianness/pseries:                                           OK
  /ppc64/endianness/split/mac99:                                       OK
  /ppc64/endianness/split/pseries:                                     OK
  /ppc64/endianness/combine/mac99:                                     OK
  /ppc64/endianness/combine/pseries:                                   OK
PASS: tests/endianness-test
TEST: tests/boot-order-test... (pid=14577)
  /ppc64/boot-order/prep:                                              OK
  /ppc64/boot-order/pmac_oldworld:                                     OK
  /ppc64/boot-order/pmac_newworld:                                     OK
PASS: tests/boot-order-test
TEST: tests/prom-env-test... (pid=14611)
  /ppc64/prom-env/mac99:                                               **
ERROR:/home/pm215/qemu/tests/prom-env-test.c:41:check_guest_memory:
assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de)
FAIL
GTester: last random seed: R02Se9508b48e788a26453279aa61c24d15d
(pid=14758)
  /ppc64/prom-env/g3beige:                                             **
ERROR:/home/pm215/qemu/tests/prom-env-test.c:41:check_guest_memory:
assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de)
FAIL
GTester: last random seed: R02S5c6b27a953943798cb66f1406f600b2a
(pid=14911)
FAIL: tests/prom-env-test
TEST: tests/drive_del-test... (pid=14912)
  /ppc64/drive_del/without-dev:                                        OK
  /ppc64/drive_del/after_failed_device_add:                            OK
  /ppc64/blockdev/drive_del_device_del:                                OK
PASS: tests/drive_del-test
TEST: tests/postcopy-test... (pid=14923)
PASS: tests/postcopy-test
TEST: tests/boot-serial-test... (pid=14924)
  /ppc64/boot-serial/ppce500:                                          **
ERROR:/home/pm215/qemu/tests/boot-serial-test.c:67:check_guest_output:
assertion failed: (output_ok)
FAIL
GTester: last random seed: R02Se107d4139ff43a8ba8cbd9d0dc287d5c
(pid=15068)
  /ppc64/boot-serial/prep:                                             OK
  /ppc64/boot-serial/pseries:                                          OK
FAIL: tests/boot-serial-test


I also see warnings on non-KVM hosts during 'make check' which seem
to be produced by this new test:

TEST: tests/boot-serial-test... (pid=2836)
  /i386/boot-serial/isapc:
warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit
1]
OK
  /i386/boot-serial/pc:                                                OK
  /i386/boot-serial/q35:                                               OK
PASS: tests/boot-serial-test



thanks
-- PMM
Thomas Huth Sept. 6, 2016, 7:35 p.m. UTC | #3
On 06.09.2016 16:04, Peter Maydell wrote:
> On 6 September 2016 at 04:39, David Gibson <david@gibson.dropbear.id.au> wrote:
>> The following changes since commit e87d397e5ef66276ccc49b829527d605ca07d0ad:
>>
>>   Open 2.8 development tree (2016-09-05 11:38:54 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/dgibson/qemu.git tags/ppc-for-2.8-20160906
>>
>> for you to fetch changes up to 2ccbe3e29adb7c016bc5525d38d2a6e938c481af:
>>
>>   tests: Check serial output of firmware boot of some machines (2016-09-06 10:28:17 +1000)
>>
>> ----------------------------------------------------------------
>> ppc patch queue for 2016-Sep-6
>>
>> This is my first pull request for the newly opened qemu-2.8 tree.  It
>> contains a heap of things that were too late for 2.7 and have been
>> queued for a while.  In particular:
>>     * A number of preliminary patches for the powernv machine type
>>         * A substantial cleanup of exception handling which will be
>>           necessary to support running a TCG with hypervisor
>>           facilities
>>     * A start on support for POWER9
>>         * Some TCG implementations for new POWER9 instructions
>>         * Some TCG and related cleanups in preparation for POWER9
>>     * Some assorted TCG optimizations
>>     * An implementation of the H_CHANGE_LOGICAL_LAN_MAC hypercall
>>       which allows the MAC address to be changed on the PAPR virtual
>>       NIC.
>>     * Add some extra test cases for several machines (this isn't
>>       strictly in the ppc code, but is most value to ppc)
>>
>> ----------------------------------------------------------------
> 
> Hi. This fails 'make check' on ppc64be:
[...]
> TEST: tests/prom-env-test... (pid=14611)
>   /ppc64/prom-env/mac99:                                               **
> ERROR:/home/pm215/qemu/tests/prom-env-test.c:41:check_guest_memory:
> assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de)
> FAIL

D'oh! I'll have a look...

> I also see warnings on non-KVM hosts during 'make check' which seem
> to be produced by this new test:
> 
> TEST: tests/boot-serial-test... (pid=2836)
>   /i386/boot-serial/isapc:
> warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit
> 1]

That happens because the test is running QEMU with the isapc machine. I
also get that warning message if I simply run the following on the
command line:

$ qemu-system-x86_64 -M isapc
warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit 1]

So the warning is likely there since quite a while already, just nobody
is running with -M isapc nowadays anymore, so nobody noticed this ...
Does anybody have got a clue how to fix that warning?

 Thomas
Paolo Bonzini Sept. 6, 2016, 8:23 p.m. UTC | #4
On 06/09/2016 21:35, Thomas Huth wrote:
> D'oh! I'll have a look...
> 
>> > I also see warnings on non-KVM hosts during 'make check' which seem
>> > to be produced by this new test:
>> > 
>> > TEST: tests/boot-serial-test... (pid=2836)
>> >   /i386/boot-serial/isapc:
>> > warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit
>> > 1]
> That happens because the test is running QEMU with the isapc machine. I
> also get that warning message if I simply run the following on the
> command line:
> 
> $ qemu-system-x86_64 -M isapc
> warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit 1]
> 
> So the warning is likely there since quite a while already, just nobody
> is running with -M isapc nowadays anymore, so nobody noticed this ...
> Does anybody have got a clue how to fix that warning?

Implement vme... :)

Paolo
Thomas Huth Sept. 6, 2016, 8:55 p.m. UTC | #5
On 06.09.2016 22:23, Paolo Bonzini wrote:
> 
> 
> On 06/09/2016 21:35, Thomas Huth wrote:
>> D'oh! I'll have a look...
>>
>>>> I also see warnings on non-KVM hosts during 'make check' which seem
>>>> to be produced by this new test:
>>>>
>>>> TEST: tests/boot-serial-test... (pid=2836)
>>>>   /i386/boot-serial/isapc:
>>>> warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit
>>>> 1]
>> That happens because the test is running QEMU with the isapc machine. I
>> also get that warning message if I simply run the following on the
>> command line:
>>
>> $ qemu-system-x86_64 -M isapc
>> warning: TCG doesn't support requested feature: CPUID.01H:EDX.vme [bit 1]
>>
>> So the warning is likely there since quite a while already, just nobody
>> is running with -M isapc nowadays anymore, so nobody noticed this ...
>> Does anybody have got a clue how to fix that warning?
> 
> Implement vme... :)

Hmmm, I was rather looking for an easier solution. I think I also found
one: By using "-cpu qemu32", the warning does not occur anymore...

 Thomas
Thomas Huth Sept. 6, 2016, 9:09 p.m. UTC | #6
On 06.09.2016 16:04, Peter Maydell wrote:
> On 6 September 2016 at 04:39, David Gibson <david@gibson.dropbear.id.au> wrote:
>> The following changes since commit e87d397e5ef66276ccc49b829527d605ca07d0ad:
>>
>>   Open 2.8 development tree (2016-09-05 11:38:54 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/dgibson/qemu.git tags/ppc-for-2.8-20160906
>>
>> for you to fetch changes up to 2ccbe3e29adb7c016bc5525d38d2a6e938c481af:
>>
>>   tests: Check serial output of firmware boot of some machines (2016-09-06 10:28:17 +1000)
>>
>> ----------------------------------------------------------------
>> ppc patch queue for 2016-Sep-6
>>
>> This is my first pull request for the newly opened qemu-2.8 tree.  It
>> contains a heap of things that were too late for 2.7 and have been
>> queued for a while.  In particular:
>>     * A number of preliminary patches for the powernv machine type
>>         * A substantial cleanup of exception handling which will be
>>           necessary to support running a TCG with hypervisor
>>           facilities
>>     * A start on support for POWER9
>>         * Some TCG implementations for new POWER9 instructions
>>         * Some TCG and related cleanups in preparation for POWER9
>>     * Some assorted TCG optimizations
>>     * An implementation of the H_CHANGE_LOGICAL_LAN_MAC hypercall
>>       which allows the MAC address to be changed on the PAPR virtual
>>       NIC.
>>     * Add some extra test cases for several machines (this isn't
>>       strictly in the ppc code, but is most value to ppc)
>>
>> ----------------------------------------------------------------
> 
> Hi. This fails 'make check' on ppc64be:
> 
> QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64
> QTEST_QEMU_IMG=qemu-img MALLOC_PERTURB_=${MALLOC_PERTURB_:-
> $((RANDOM % 255 + 1))} gtester -k --verbose -m=quick
> tests/spapr-phb-test tests/endianness-test tests/boot-order-test
> tests/prom-env-test tests/drive_del-test tests/postcopy-test
> tests/boot-serial-test tests/device-introspect-test tests/qom-test
> TEST: tests/spapr-phb-test... (pid=14553)
>   /ppc64/spapr-phb/device:                                             OK
> PASS: tests/spapr-phb-test
> TEST: tests/endianness-test... (pid=14558)
>   /ppc64/endianness/mac99:                                             OK
>   /ppc64/endianness/pseries:                                           OK
>   /ppc64/endianness/split/mac99:                                       OK
>   /ppc64/endianness/split/pseries:                                     OK
>   /ppc64/endianness/combine/mac99:                                     OK
>   /ppc64/endianness/combine/pseries:                                   OK
> PASS: tests/endianness-test
> TEST: tests/boot-order-test... (pid=14577)
>   /ppc64/boot-order/prep:                                              OK
>   /ppc64/boot-order/pmac_oldworld:                                     OK
>   /ppc64/boot-order/pmac_newworld:                                     OK
> PASS: tests/boot-order-test
> TEST: tests/prom-env-test... (pid=14611)
>   /ppc64/prom-env/mac99:                                               **
> ERROR:/home/pm215/qemu/tests/prom-env-test.c:41:check_guest_memory:
> assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de)
> FAIL
> GTester: last random seed: R02Se9508b48e788a26453279aa61c24d15d
> (pid=14758)
>   /ppc64/prom-env/g3beige:                                             **
> ERROR:/home/pm215/qemu/tests/prom-env-test.c:41:check_guest_memory:
> assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de)
> FAIL

The bad commit is: "ppc: Speed up load/store multiple"

There are two "#if defined(HOST_WORDS_BIGENDIAN)" sections in this patch
which are both bad: The memcpy tries to copy 32-bit values into 64-bit
registers, which of course does not work (unless you compile this code
for a 32-bit host only where the size of a gpr is only 32-bit).
I'd suggest to remove the "#if defined(HOST_WORDS_BIGENDIAN)" part and
use cpu_to_be32() and friends instead of the bswap32() here?

 Thomas
Benjamin Herrenschmidt Sept. 6, 2016, 9:52 p.m. UTC | #7
On Tue, 2016-09-06 at 23:09 +0200, Thomas Huth wrote:
> The bad commit is: "ppc: Speed up load/store multiple"
> 
> There are two "#if defined(HOST_WORDS_BIGENDIAN)" sections in this patch
> which are both bad: The memcpy tries to copy 32-bit values into 64-bit
> registers, which of course does not work (unless you compile this code
> for a 32-bit host only where the size of a gpr is only 32-bit).

The instruction does that. It only copies 32-bits. I think it's
correct. 	

> I'd suggest to remove the "#if defined(HOST_WORDS_BIGENDIAN)" part and
> use cpu_to_be32() and friends instead of the bswap32() here?

I tried that but it prevents the faster memcpy, the whole point was to
speed things up...

Cheers,
Ben.
Benjamin Herrenschmidt Sept. 7, 2016, 2:26 a.m. UTC | #8
On Wed, 2016-09-07 at 07:52 +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2016-09-06 at 23:09 +0200, Thomas Huth wrote:
> > 
> > The bad commit is: "ppc: Speed up load/store multiple"
> > 
> > There are two "#if defined(HOST_WORDS_BIGENDIAN)" sections in this
> > patch
> > which are both bad: The memcpy tries to copy 32-bit values into 64-
> > bit
> > registers, which of course does not work (unless you compile this
> > code
> > for a 32-bit host only where the size of a gpr is only 32-bit).
> 
> The instruction does that. It only copies 32-bits. I think it's
> correct. 	

Except of course when the host is 64-bit and we enable with a 64-bit
target_ulong ... ugh ;-)

Drop the patch for now, I'll redo it later.

Cheers,
Ben.