summary refs log tree commit diff stats
path: root/gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml')
-rw-r--r--gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml46
1 files changed, 46 insertions, 0 deletions
diff --git a/gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml b/gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml
new file mode 100644
index 000000000..283cf6c44
--- /dev/null
+++ b/gitlab/issues/target_i386/host_missing/accel_TCG/2175.toml
@@ -0,0 +1,46 @@
+id = 2175
+title = "Intel BLSI CF computation bug"
+state = "closed"
+created_at = "2024-02-19T05:00:51.360Z"
+closed_at = "2024-08-21T05:08:10.856Z"
+labels = ["Closed::Fixed", "accel: TCG", "target: i386"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/2175"
+host-os = "Ubuntu 23.10"
+host-arch = "x86_64"
+qemu-version = "qemu-x86_64 version 8.2.1"
+guest-os = "None"
+guest-arch = "x86_64"
+description = """CF flag computation of BLSI instruction is wrong. It seems #1370 was not completely fixed."""
+reproduce = """1. Compile `example.c` using this command: `gcc -o example.bin example.c`. My gcc version is 12.3.0, but other versions may work.
+```
+int main() {
+  __asm__ (
+    "movq $0x1, %r8\\n"
+    "mov $0xedbf530a, %r9\\n"
+    "push $0x1\\n"
+    "popf\\n"
+    "blsi %r9d, %r8d\\n"
+    "pushf\\n"
+    "pop %rax\\n"
+    "pop %rbp\\n"
+    "ret\\n"
+  );
+
+  return 0;
+}
+```
+2. Run `./example.bin`. Then check the return code using `echo $?`. It should be 3.
+```
+$ ./example.bin
+$ echo $?
+3
+```
+3. Run `./qemu-x86_64 ./example.bin`. Then check the return code using `echo $?`. It should be 2.
+```
+$ ./qemu-x86_64 ./example.bin
+$ echo $?
+2
+```
+
+The return code of `./example.bin` contains the value of the `RFLAGS` register after executing the `BLSI` instruction."""
+additional = """"""