diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 08:55:39 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 08:55:39 +0000 |
| commit | 1a3c4faf4e0a25ed0b86e8739d5319a634cb9112 (patch) | |
| tree | 90ceb50013ad28bab46e52731ec4ce1e70c32a57 /results/classifier/no-thinking-deepseek-r1:70b/output/manual-review/1915327 | |
| parent | c50b0c4da17b6e83640e4ed2380fffb5f507c846 (diff) | |
| download | qemu-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/1915327 | 37 |
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 |