summary refs log tree commit diff stats
path: root/results/classifier/gemma3:12b/assembly/2175
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/gemma3:12b/assembly/2175')
-rw-r--r--results/classifier/gemma3:12b/assembly/217539
1 files changed, 39 insertions, 0 deletions
diff --git a/results/classifier/gemma3:12b/assembly/2175 b/results/classifier/gemma3:12b/assembly/2175
new file mode 100644
index 00000000..55800e1b
--- /dev/null
+++ b/results/classifier/gemma3:12b/assembly/2175
@@ -0,0 +1,39 @@
+
+Intel BLSI CF computation bug
+Description of problem:
+CF flag computation of BLSI instruction is wrong. It seems #1370 was not completely fixed.
+Steps to 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 information:
+