[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 6a0e8b: target/m68k: implement fmove.l #<data
From: |
Peter Maydell |
Subject: |
[Qemu-commits] [qemu/qemu] 6a0e8b: target/m68k: implement fmove.l #<data>, FPCR |
Date: |
Tue, 02 Jun 2020 10:30:30 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 6a0e8bb4956c34328f4624e20bd3a6c2b1d90adc
https://github.com/qemu/qemu/commit/6a0e8bb4956c34328f4624e20bd3a6c2b1d90adc
Author: Laurent Vivier <laurent@vivier.eu>
Date: 2020-06-02 (Tue, 02 Jun 2020)
Changed paths:
M target/m68k/translate.c
Log Message:
-----------
target/m68k: implement fmove.l #<data>,FPCR
The immediate value mode was ignored and instruction execution
ends to an invalid access mode.
This was found running 'R' that set FPSR to 0 at startup with
a 'fmove.l #0,FPSR' in qemu-system-m68k emulation and triggers a
kernel crash:
[ 56.640000] *** ADDRESS ERROR *** FORMAT=2
[ 56.640000] Current process id is 728
[ 56.640000] BAD KERNEL TRAP: 00000000
[ 56.640000] Modules linked in: sg evdev mac_hid ip_tables x_tables
sha1_generic hmac ipv6 nf_defrag_ipv6 autofs4 ext4 crc16 mbcache jbd2
crc32c_generic sd_mod t10_pi crc_t10dif crct10dif_generic crct10dif_common
sr_mod cdrom mac_esp macsonic esp_scsi
[ 56.640000] PC: [<00016a2c>] X_UNSUPP+0x2c/0x3c
[ 56.640000] SR: 2004 SP: 3eb5e68c a2: c02e239a
[ 56.640000] d0: 00000040 d1: 00000002 d2: 8002adec d3: 8002ad50
[ 56.640000] d4: 8002c768 d5: 0000000d a0: ffffffc2 a1: ffffffc1
[ 56.640000] Process R (pid: 728, task=a3dfda5d)
[ 56.640000] Frame format=2 instr addr=00000000
[ 56.650000] Stack from 3a4d9f30:
[ 56.650000] 41000000 00000002 00000002 ffffffc2 ffffffc1 1fff0000
80000000 00000000
[ 56.650000] 3fbf0000 80000000 00000000 00000000 20000000 00000000
7fff0000 ffffffff
[ 56.650000] ffffffff 00000000 00050008 00000000 8000067c c02c2000
efffee20 000002d8
[ 56.650000] 00002a28 3a4d9f98 00000002 00000014 fffffffe 8002c768
00000002 00000041
[ 56.650000] 00000002 c041fc58 c0743758 ffffffff 00000000 0008c075
00002b24 00000012
[ 56.650000] 000007d0 00000024 00000002 c05bef04 c05bef04 0000005e
00000077 c28aca70
[ 56.650000] Call Trace: [<00050008>] copy_overflow+0x10/0x28
[ 56.650000] [<00002a28>] buserr+0x20/0x28
[ 56.650000] [<0008c075>] bpf_check+0x57f/0x1cfa
[ 56.650000] [<00002b24>] syscall+0x8/0xc
[ 56.650000] [<0000c019>] dn_sched_init+0x75/0x88
[ 56.650000] Code: 1017 0200 00f0 0c00 0040 66ff 0000 05ac <f23c> 8800 0000
0000 f23c 9000 0000 0000 222e ff84 082e 0005 ff1c 6600 000a 0281
[ 56.650000] Disabling lock debugging due to kernel taint
...
Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200531110231.620711-1-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Commit: 250b1da35d579f42319af234f36207902ca4baa4
https://github.com/qemu/qemu/commit/250b1da35d579f42319af234f36207902ca4baa4
Author: Laurent Vivier <laurent@vivier.eu>
Date: 2020-06-02 (Tue, 02 Jun 2020)
Changed paths:
M target/m68k/fpu_helper.c
M target/m68k/helper.h
M target/m68k/translate.c
Log Message:
-----------
target/m68k: implement opcode fetoxm1
Example provided in the launchpad bug fails with:
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)
It appears fetoxm1 is not implemented:
IN: expm1f
0x800005cc: fetoxm1x %fp2,%fp0
Disassembler disagrees with translator over instruction decoding
Please report this to qemu-devel@nongnu.org
(gdb) x/2hx 0x800005cc
0x800005cc: 0xf200 0x0808
This patch adds the instruction.
Bug: https://bugs.launchpad.net/qemu/+bug/1881450
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200531131951.631902-1-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Commit: 98d59d5dd8b662ba8ec7c522faa9b88823389711
https://github.com/qemu/qemu/commit/98d59d5dd8b662ba8ec7c522faa9b88823389711
Author: Peter Maydell <peter.maydell@linaro.org>
Date: 2020-06-02 (Tue, 02 Jun 2020)
Changed paths:
M target/m68k/fpu_helper.c
M target/m68k/helper.h
M target/m68k/translate.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-5.1-pull-request'
into staging
Two fixes for the 68040 FPU
# gpg: Signature made Tue 02 Jun 2020 16:21:19 BST
# gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
# gpg: issuer "laurent@vivier.eu"
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full]
# gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full]
# gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>"
[full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C
* remotes/vivier/tags/m68k-for-5.1-pull-request:
target/m68k: implement opcode fetoxm1
target/m68k: implement fmove.l #<data>,FPCR
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Compare: https://github.com/qemu/qemu/compare/cccdd8c79718...98d59d5dd8b6
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 6a0e8b: target/m68k: implement fmove.l #<data>, FPCR,
Peter Maydell <=