[Qemu-devel] [PATCH 0/1] target/m68k: correctly disassemble move16

Laurent Vivier posted 1 patch 7 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180625203559.21370-1-laurent@vivier.eu
Test checkpatch failed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test s390x passed
disas/m68k.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
[Qemu-devel] [PATCH 0/1] target/m68k: correctly disassemble move16
Posted by Laurent Vivier 7 years, 7 months ago
"move16 %a0@+,%a1@" and "fmovel (cpid=3) %a0@-,%fpcr" share the same opcode...
but QEMU executes move16 (and M68040 too).

You can try:

--------------8<--------------------------------------- move16.S
        .data

src:
        .long 0x01020304, 0x05060708, 0x090a0b0c, 0x0d0e0f00
dst:
        .long 0, 0, 0, 0

        .text
        .globl _start
_start:
        lea src,%a0
        lea dst,%a1

        .fopt id=3
        fmovel -(%a0),%fpcr
        move16 (%a0)+, (%a1)+

        move.l #0,%d1
        move.l #1, %d0
        trap #0
--------------8<--------------------------------------- move16.S

m68k-linux-gnu-gcc -g -m68040 -nostartfiles  -nodefaultlibs \
                   -nostdlib -o move16 move16.S

m68k-linux-gnu-objdump -d move16

move16:     file format elf32-m68k

Disassembly of section .text:

800000b8 <_start>:
800000b8:	41f9 8000 20d4 	lea 800020d4 <src>,%a0
800000be:	43f9 8000 20e4 	lea 800020e4 <dst>,%a1
800000c4:	f620 9000      	move16 %a0@+,%a1@+
800000c8:	f620 9000      	move16 %a0@+,%a1@+
800000cc:	7200           	moveq #0,%d1
800000ce:	7001           	moveq #1,%d0
800000d0:	4e40           	trap #0

qemu-m68k -d in_asm ./move16

----------------
IN:
0x800000b8:  lea 0x800020d4,%a0
0x800000be:  lea 0x800020e4,%a1
0x800000c4:  fmovel (cpid=3) %a0@-,%fpcr
0x800000c8:  fmovel (cpid=3) %a0@-,%fpcr
0x800000cc:  moveq #0,%d1
0x800000ce:  moveq #1,%d0
0x800000d0:  trap #0

This patch backports the fix from binutils to only match FPU instructions
with coprocessor ID 1.

Laurent Vivier (1):
  target/m68k: correctly disassemble move16

 disas/m68k.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

-- 
2.14.4


Re: [Qemu-devel] [PATCH 0/1] target/m68k: correctly disassemble move16
Posted by no-reply@patchew.org 7 years, 7 months ago
Hi,

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

Type: series
Message-id: 20180625203559.21370-1-laurent@vivier.eu
Subject: [Qemu-devel] [PATCH 0/1] target/m68k: correctly disassemble move16

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

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

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

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

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

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
ce9f09fe63 target/m68k: correctly disassemble move16

=== OUTPUT BEGIN ===
Checking PATCH 1/1: target/m68k: correctly disassemble move16...
ERROR: that open brace { should be on the previous line
#30: FILE: disas/m68k.c:2021:
+          if (*d == '\0')
+            {

ERROR: suspect code indent for conditional statements (10, 14)
#30: FILE: disas/m68k.c:2021:
+          if (*d == '\0')
+            {

ERROR: that open brace { should be on the previous line
#32: FILE: disas/m68k.c:2023:
+              for (d = opc->args; *d; d += 2)
+                {

ERROR: suspect code indent for conditional statements (14, 18)
#32: FILE: disas/m68k.c:2023:
+              for (d = opc->args; *d; d += 2)
+                {

ERROR: that open brace { should be on the previous line
#34: FILE: disas/m68k.c:2025:
+                  if (d[0] == 'I')
+                    {

ERROR: suspect code indent for conditional statements (18, 22)
#34: FILE: disas/m68k.c:2025:
+                  if (d[0] == 'I')
+                    {

ERROR: space prohibited between function name and open parenthesis '('
#36: FILE: disas/m68k.c:2027:
+                      val = fetch_arg (buffer, 'd', 3, info);

ERROR: braces {} are necessary for all arms of this statement
#37: FILE: disas/m68k.c:2028:
+                      if (val != 1)
[...]

total: 8 errors, 0 warnings, 20 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.

=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com