summary refs log tree commit diff stats
path: root/gitlab/issues/target_i386/host_missing/accel_missing/837.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_i386/host_missing/accel_missing/837.toml')
-rw-r--r--gitlab/issues/target_i386/host_missing/accel_missing/837.toml40
1 files changed, 40 insertions, 0 deletions
diff --git a/gitlab/issues/target_i386/host_missing/accel_missing/837.toml b/gitlab/issues/target_i386/host_missing/accel_missing/837.toml
new file mode 100644
index 000000000..2af3ee599
--- /dev/null
+++ b/gitlab/issues/target_i386/host_missing/accel_missing/837.toml
@@ -0,0 +1,40 @@
+id = 837
+title = "x86 user: icebp/int1 raises wrong signal"
+state = "closed"
+created_at = "2022-01-24T05:02:44.865Z"
+closed_at = "2022-03-15T04:43:46.057Z"
+labels = ["Closed::WontFix", "linux-user", "target: i386"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/837"
+host-os = "MX Linux 21/Debian 11"
+host-arch = "x86_64"
+qemu-version = "6.2.0"
+guest-os = "linux-user"
+guest-arch = "i386, x86_64"
+description = """This is a relatively minor inaccuracy. When `icebp` (`F1`) is executed, it raises `SIGILL` in QEMU, where the behavior on baremetal Linux (on an old Intel Core i5-430m) is to raise `SIGTRAP`.
+
+Specifically, on the architectural level, `icebp` raises `#DB` without affecting `dr6`.
+
+This also happens on an AArch64 host.
+```
+$ ./icebp
+Trace/breakpoint trap
+$ qemu-x86_64 ./icebp
+qemu: uncaught target signal 4 (Illegal instruction) - core dumped
+Illegal instruction
+```"""
+reproduce = """1. Compile this file using `gcc -nostdlib -static icebp.S -o icebp`, optionally with `-m32` to test i386
+```
+    .globl _start
+_start:
+    .byte  0xF1 // gas doesn't assemble this instruction opcode but it disassembles it
+#ifdef __x86_64__
+    mov    $60, %eax
+    syscall
+#else
+    mov    $1, %eax
+    int    $0x80
+#endif 
+```
+2. Run on baremetal. Notice how it raises `SIGTRAP` according to the shell job control message
+3. Run on qemu-user. Notice how it raises `SIGILL`."""
+additional = "n/a"