qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] d2a40a: target/mips: Make the results of DIV_


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] d2a40a: target/mips: Make the results of DIV_<U|S>.<B|H|W|...
Date: Tue, 28 May 2019 05:38:04 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: d2a40a5f6938f30f44b536e997e1e89bb62b971c
      
https://github.com/qemu/qemu/commit/d2a40a5f6938f30f44b536e997e1e89bb62b971c
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/msa_helper.c

  Log Message:
  -----------
  target/mips: Make the results of DIV_<U|S>.<B|H|W|D> the same as on hardware

MSA instructions DIV_<U|S>.<B|H|W|D> when dividing by zero,
didn't return the same value when executed on a referent hardware
(FPGA MIPS 64 r6, little endian) and when executed on QEMU, which
is not a real bug, because the result when dividing by zero is
UNPREDICTABLE [1] (page 141, 142).

[1] MIPS Architecture for Programmers
    Volume IV-j: The MIPS64 SIMD
    Architecture Module, Revision 1.12

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: cf122bf8d2732d5d8647901ebaea596668aaaa3a
      
https://github.com/qemu/qemu/commit/cf122bf8d2732d5d8647901ebaea596668aaaa3a
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/msa_helper.c

  Log Message:
  -----------
  target/mips: Make the results of MOD_<U|S>.<B|H|W|D> the same as on hardware

MSA instructions MOD_<U|S>.<B|H|W|D> when dividing by zero,
didn't return the same value when executed on a referent hardware
(FPGA MIPS 64 r6, little endian) and when executed on QEMU, which
is not a real bug, because the result when dividing by zero is
UNPREDICTABLE [1] (page 255, 256).

[1] MIPS Architecture for Programmers
    Volume IV-j: The MIPS64 SIMD
    Architecture Module, Revision 1.12

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 83be6b54123a8f3c529554139f1d1e43356edf8d
      
https://github.com/qemu/qemu/commit/83be6b54123a8f3c529554139f1d1e43356edf8d
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/op_helper.c

  Log Message:
  -----------
  target/mips: Fix MSA instructions LD.<B|H|W|D> on big endian host

Fix the case when the host is a big endian machine, and change
the approach toward LD.<B|H|W|D> instruction helpers.

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 6decc572dcedbf298ae30f8213b39c8b842a595a
      
https://github.com/qemu/qemu/commit/6decc572dcedbf298ae30f8213b39c8b842a595a
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/op_helper.c

  Log Message:
  -----------
  target/mips: Fix MSA instructions ST.<B|H|W|D> on big endian host

Fix the case when the host is a big endian machine, and change
the approach toward ST.<B|H|W|D> instruction helpers.

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 631c467461496dcf6d6a3e4c3d27a1433e96868e
      
https://github.com/qemu/qemu/commit/631c467461496dcf6d6a3e4c3d27a1433e96868e
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/helper.h
    M target/mips/msa_helper.c
    M target/mips/translate.c

  Log Message:
  -----------
  target/mips: Refactor and fix COPY_S.<B|H|W|D> instructions

The old version of the helper for the COPY_S.<B|H|W|D> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 41d288582782cf8d63241ecb6efa1e4160fe78f7
      
https://github.com/qemu/qemu/commit/41d288582782cf8d63241ecb6efa1e4160fe78f7
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/helper.h
    M target/mips/msa_helper.c
    M target/mips/translate.c

  Log Message:
  -----------
  target/mips: Refactor and fix COPY_U.<B|H|W> instructions

The old version of the helper for the COPY_U.<B|H|W> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: c1c9a10fb1f7a6782711817c167a2c20b000fc12
      
https://github.com/qemu/qemu/commit/c1c9a10fb1f7a6782711817c167a2c20b000fc12
  Author: Mateja Marjanovic <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/helper.h
    M target/mips/msa_helper.c
    M target/mips/translate.c

  Log Message:
  -----------
  target/mips: Refactor and fix INSERT.<B|H|W|D> instructions

The old version of the helper for the INSERT.<B|H|W|D> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.

Signed-off-by: Mateja Marjanovic <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 7353113fa482e697a77575086a41f429a01f8dc0
      
https://github.com/qemu/qemu/commit/7353113fa482e697a77575086a41f429a01f8dc0
  Author: Jakub Jermář <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/helper.c

  Log Message:
  -----------
  mips: Decide to map PAGE_EXEC in map_address

This commit addresses QEMU Bug #1825311:

  mips_cpu_handle_mmu_fault renders all accessed pages executable

It allows finer-grained control over whether the accessed page should
be executable by moving the decision to the underlying map_address
function, which has more information for this.

As a result, pages that have the XI bit set in the TLB and are accessed
for read/write, don't suddenly end up being executable.

Fixes: https://bugs.launchpad.net/qemu/+bug/1825311
Fixes: 2fb58b73746e ('target-mips: add RI and XI fields to TLB entry')

Signed-off-by: Jakub Jermář <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: 86e636951ddce2bb3a82fcaad5abc3779ba4f7ab
      
https://github.com/qemu/qemu/commit/86e636951ddce2bb3a82fcaad5abc3779ba4f7ab
  Author: Laurent Vivier <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix __NR_semtimedop undeclared error

In current code, __NR_msgrcv and__NR_semtimedop are supposed to be
defined if __NR_msgsnd is defined.

But linux headers 5.2-rc1 for MIPS define __NR_msgsnd without defining
__NR_semtimedop and it breaks the QEMU build.

__NR_semtimedop is defined in asm-mips/unistd_n64.h and asm-mips/unistd_n32.h
but not in asm-mips/unistd_o32.h.

Commit d9cb4336159a ("linux headers: update against Linux 5.2-rc1") has
updated asm-mips/unistd_o32.h and added __NR_msgsnd but not __NR_semtimedop.
It introduces __NR_semtimedop_time64 instead.

This patch fixes the problem by checking for each __NR_XXX symbol
before defining the corresponding syscall.

Fixes: d9cb4336159a ("linux headers: update against Linux 5.2-rc1")
Reported-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Tested-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>


  Commit: 8ebf2e1a68408068c0bcd0d02a783fd12f6a9cb5
      
https://github.com/qemu/qemu/commit/8ebf2e1a68408068c0bcd0d02a783fd12f6a9cb5
  Author: Jules Irenge <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/cpu.h

  Log Message:
  -----------
  target/mips: add or remove space to fix checkpatch errors

Add or remove space to fix errors issued by checkpatch.pl tool
"ERROR: spaces required around that..."
"ERROR: space required after that..."
"ERROR: space required before the open parenthesis"
"ERROR: space required after that..."
"ERROR: space prohibited between function name and open parenthesis"
"ERROR: code indent should never use tabs"
"ERROR: line over 90 characters"
within "target/mips/cpu.h" file.

Signed-off-by: Jules Irenge <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: 9e72f33d854b0a817c0d2fe4bca693b76f0fe776
      
https://github.com/qemu/qemu/commit/9e72f33d854b0a817c0d2fe4bca693b76f0fe776
  Author: Jules Irenge <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M target/mips/cpu.h

  Log Message:
  -----------
  target/mips: realign comments to fix checkpatch warnings

Realign comments to fix warnings issued by checkpatc.pl tool
 "WARNING: Block comments use a leading /* on a separate line"
within "target/mips/cpu.h" file.

Signed-off-by: Jules Irenge <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Message-Id: <address@hidden>


  Commit: c47c336e870585307f1e2371ea85a6256a05022e
      
https://github.com/qemu/qemu/commit/c47c336e870585307f1e2371ea85a6256a05022e
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-05-26 (Sun, 26 May 2019)

  Changed paths:
    M MAINTAINERS
    A tests/acceptance/linux_ssh_mips_malta.py
    M tests/requirements.txt

  Log Message:
  -----------
  BootLinuxSshTest: Test some userspace commands on Malta

This tests boot a full VM and check the serial console until
the SSH daemon is running, then start a SSH session and run
some commands.

This test can be run using:

  $ avocado --show=ssh run -t arch:mips tests/acceptance/linux_ssh_mips_malta.py
  ssh: Entering interactive session.
  ssh: # uname -a
  ssh: Linux debian-mips 3.2.0-4-4kc-malta #1 Debian 3.2.51-1 mips GNU/Linux
  ssh: # lspci -d 11ab:4620
  ssh: 00:00.0 Host bridge: Marvell Technology Group Ltd. 
GT-64120/64120A/64121A System Controller (rev 10)
  ssh: # cat /sys/bus/i2c/devices/i2c-0/name
  ssh: SMBus PIIX4 adapter at 1100
  ssh: # cat /proc/mtd
  ssh: dev:    size   erasesize  name
  ssh: mtd0: 00100000 00010000 "YAMON"
  ssh: mtd1: 002e0000 00010000 "User FS"
  ssh: mtd2: 00020000 00010000 "Board Config"
  ssh: # md5sum /dev/mtd2ro
  ssh: 0dfbe8aa4c20b52e1b8bf3cb6cbdf193  /dev/mtd2ro
  ssh: # poweroff

Acked-by: Aleksandar Markovic <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Message-Id: <address@hidden>


  Commit: 4a1d38c44089f4e7bbbc924a830f30ca0119a7dd
      
https://github.com/qemu/qemu/commit/4a1d38c44089f4e7bbbc924a830f30ca0119a7dd
  Author: Peter Maydell <address@hidden>
  Date:   2019-05-28 (Tue, 28 May 2019)

  Changed paths:
    M MAINTAINERS
    M linux-user/syscall.c
    M target/mips/cpu.h
    M target/mips/helper.c
    M target/mips/helper.h
    M target/mips/msa_helper.c
    M target/mips/op_helper.c
    M target/mips/translate.c
    A tests/acceptance/linux_ssh_mips_malta.py
    M tests/requirements.txt

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/amarkovic/tags/mips-queue-may-19-2019-v3' into staging

MIPS queue for May 19th, 2019 - v3

# gpg: Signature made Sun 26 May 2019 17:07:07 BST
# gpg:                using RSA key D4972A8967F75A65
# gpg: Good signature from "Aleksandar Markovic <address@hidden>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 8526 FBF1 5DA3 811F 4A01  DD75 D497 2A89 67F7 5A65

* remotes/amarkovic/tags/mips-queue-may-19-2019-v3:
  BootLinuxSshTest: Test some userspace commands on Malta
  target/mips: realign comments to fix checkpatch warnings
  target/mips: add or remove space to fix checkpatch errors
  linux-user: fix __NR_semtimedop undeclared error
  mips: Decide to map PAGE_EXEC in map_address
  target/mips: Refactor and fix INSERT.<B|H|W|D> instructions
  target/mips: Refactor and fix COPY_U.<B|H|W> instructions
  target/mips: Refactor and fix COPY_S.<B|H|W|D> instructions
  target/mips: Fix MSA instructions ST.<B|H|W|D> on big endian host
  target/mips: Fix MSA instructions LD.<B|H|W|D> on big endian host
  target/mips: Make the results of MOD_<U|S>.<B|H|W|D> the same as on hardware
  target/mips: Make the results of DIV_<U|S>.<B|H|W|D> the same as on hardware

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4bade28288b1...4a1d38c44089



reply via email to

[Prev in Thread] Current Thread [Next in Thread]