summary refs log tree commit diff stats
path: root/results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-07-08 08:55:39 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-07-08 08:55:39 +0000
commit1a3c4faf4e0a25ed0b86e8739d5319a634cb9112 (patch)
tree90ceb50013ad28bab46e52731ec4ce1e70c32a57 /results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327
parentc50b0c4da17b6e83640e4ed2380fffb5f507c846 (diff)
downloadqemu-analysis-1a3c4faf4e0a25ed0b86e8739d5319a634cb9112.tar.gz
qemu-analysis-1a3c4faf4e0a25ed0b86e8739d5319a634cb9112.zip
add deepseek 70b result
Diffstat (limited to 'results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327')
-rw-r--r--results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/191532737
1 files changed, 37 insertions, 0 deletions
diff --git a/results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327 b/results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327
new file mode 100644
index 000000000..5651f2a1f
--- /dev/null
+++ b/results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327
@@ -0,0 +1,37 @@
+
+
+
+x86_64 cmpxchg behavior in qemu tcg does not match the real CPU
+
+QEMU version:
+1214d55d1c (HEAD, origin/master, origin/HEAD) Merge remote-tracking branch 'remotes/nvme/tags/nvme-next-pull-request' into staging
+
+Consider the following little program:
+
+$ cat 1.c
+#include <stdio.h>
+int main() {
+  int mem = 0x12345678;
+  register long rax asm("rax") = 0x1234567812345678;
+  register int edi asm("edi") = 0x77777777;
+  asm("cmpxchg %[edi],%[mem]"
+      : [ mem ] "+m"(mem), [ rax ] "+r"(rax)
+      : [ edi ] "r"(edi));
+  long rax2 = rax;
+  printf("rax2 = %lx\n", rax2);
+}
+
+According to the Intel Manual, cmpxchg should not touch the accumulator in case the values are equal, which is indeed the case on the real CPU:
+
+$ gcc 1.c
+$ ./a.out 
+rax2 = 1234567812345678
+
+However, QEMU appears to zero extend EAX to RAX:
+
+$ qemu-x86_64 ./a.out 
+rax2 = 12345678
+
+This is also the case for lock cmpxchg.
+
+Found in BPF development context: https://lore<email address hidden>
\ No newline at end of file