diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 13:28:15 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 13:28:28 +0200 |
| commit | 5aa276efcbd67f4300ca1a7f809c6e00aadb03da (patch) | |
| tree | 9b8f0e074014cda8d42f5a97a95bc25082d8b764 /results/classifier/zero-shot-user-mode/output/instruction/2317 | |
| parent | 1a3c4faf4e0a25ed0b86e8739d5319a634cb9112 (diff) | |
| download | emulator-bug-study-5aa276efcbd67f4300ca1a7f809c6e00aadb03da.tar.gz emulator-bug-study-5aa276efcbd67f4300ca1a7f809c6e00aadb03da.zip | |
restructure results
Diffstat (limited to 'results/classifier/zero-shot-user-mode/output/instruction/2317')
| -rw-r--r-- | results/classifier/zero-shot-user-mode/output/instruction/2317 | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/results/classifier/zero-shot-user-mode/output/instruction/2317 b/results/classifier/zero-shot-user-mode/output/instruction/2317 deleted file mode 100644 index 39134345..00000000 --- a/results/classifier/zero-shot-user-mode/output/instruction/2317 +++ /dev/null @@ -1,44 +0,0 @@ -instruction: 0.666 -runtime: 0.180 -syscall: 0.154 - - - -SH4: ADDV instruction not emulated properly -Description of problem: -ADDV opcode is emulated incorrectly. - -The documentation says: - -`ADDV Rm, Rn Rn + Rm -> Rn, overflow -> T` - -What Qemu actually emulates: - -`ADDV Rm, Rn Rn + Rm -> Rm, overflow -> T` -Steps to reproduce: -```c -#include <stdio.h> - -int main(void) -{ - register unsigned int a asm("r8") = 0x7fffffff; - register unsigned int b asm("r9") = 1; - register unsigned int c asm("r10"); - - asm volatile("clrt\n" - "addv %2,%0\n" - "movt %1\n" - : "+r"(a), "=r"(c) : "r"(b) :); - - printf("Values: a=0x%x b=0x%x c=0x%x\n", a, b, c); - - return 0; -} - -``` -Additional information: -Tested on real hardware (SEGA Dreamcast, GCC 15.0), the program above prints: -`Values: a=0x80000000 b=0x1 c=0x1` - -Running with Qemu (and GCC 13.0), the same program prints: -`Values: a=0x7fffffff b=0x80000000 c=0x1` |
