diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
| commit | dee4dcba78baf712cab403d47d9db319ab7f95d6 (patch) | |
| tree | 418478faf06786701a56268672f73d6b0b4eb239 /results/classifier/118/none/2802 | |
| parent | 4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff) | |
| download | emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip | |
restructure results
Diffstat (limited to 'results/classifier/118/none/2802')
| -rw-r--r-- | results/classifier/118/none/2802 | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/results/classifier/118/none/2802 b/results/classifier/118/none/2802 deleted file mode 100644 index f29bf787..00000000 --- a/results/classifier/118/none/2802 +++ /dev/null @@ -1,56 +0,0 @@ -device: 0.799 -register: 0.752 -ppc: 0.725 -architecture: 0.712 -assembly: 0.702 -performance: 0.663 -network: 0.623 -vnc: 0.598 -kernel: 0.591 -PID: 0.530 -arm: 0.522 -socket: 0.510 -risc-v: 0.477 -x86: 0.465 -files: 0.464 -TCG: 0.453 -semantic: 0.449 -peripherals: 0.448 -i386: 0.440 -hypervisor: 0.430 -permissions: 0.428 -graphic: 0.427 -boot: 0.402 -debug: 0.387 -VMM: 0.382 -virtual: 0.267 -KVM: 0.247 -mistranslation: 0.236 -user-level: 0.223 - -Sparc: fdtox/fqtox instructions incorrectly select destination register -Description of problem: -This bug report is mostly for informational purposes as I will be posting a fix for the bug. - -The `fdtox` and `fqtox` instructions incorrectly select the destination register when the destination register is higher than `f31`. -Steps to reproduce: -1. Install Sparc cross compiler `gcc-12-sparc64-linux-gnu`(in Debian) -2. Compile the test program using `sparc64-linux-gnu-gcc-12 -m64 -o test_program -static test_program.c` -3. Run the test program using `qemu-sparc64-static ./test_program` -4. Expected output is 60. Prints 0 instead. -Additional information: -Test program to test the issue: - -```c -#include <stdio.h> - -int main(int argc, char** argv) { - long long truncated = 0; - __asm__("fdtox %0,%%f32\n\t" :: "f"(60.0)); - __asm__("fmovd %%f32,%0\n\t" : "=f"(truncated)); - printf("%lld\n", truncated); - return 0; -} -``` - -The issue is caused by the commit 0bba7572d4. Where certain changes were made in the way destination registers are selected(moving the DFPREG/QFPREG to decodetree). |
