diff options
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.toml | 46 |
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 = """""" |