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/semantic-bugs/instruction/1958 | |
| parent | 4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff) | |
| download | emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip | |
restructure results
Diffstat (limited to 'results/classifier/semantic-bugs/instruction/1958')
| -rw-r--r-- | results/classifier/semantic-bugs/instruction/1958 | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/results/classifier/semantic-bugs/instruction/1958 b/results/classifier/semantic-bugs/instruction/1958 deleted file mode 100644 index 8240e159..00000000 --- a/results/classifier/semantic-bugs/instruction/1958 +++ /dev/null @@ -1,34 +0,0 @@ -instruction: 0.931 -mistranslation: 0.877 -graphic: 0.858 -device: 0.805 -vnc: 0.766 -semantic: 0.679 -socket: 0.488 -other: 0.383 -KVM: 0.381 -network: 0.360 -boot: 0.359 -assembly: 0.268 - -PPC msgsnd for DOORBELL CRITICAL masked by MSR[EE] instead of MSR[CE] -Description of problem: -When executing PPC instruction "msgsnd r3. with r3 = 0x08000001" an DOORBELL CRITICAL exception is raised on core number 1. But this exception is masked by MSR\[EE\] bit, the MSR\[EE\] should be set to 1 in core1 to get this exception. But the NXP E500MCRM.pdf reference manual indicates that MSR\[CE\] is the mask bit for DOORBELL_CRITICAL Exception. -Additional information: -In qemu-8.1.2/target/ppc/excp_helper.c i try to change in ppc_next_unmasked_interrupt_generic function: - -``` -if (FIELD_EX64(env->msr, MSR, CE)) { - /* Critical doorbell */ - if (env->pending_interrupts & PPC_INTERRUPT_CDOORBELL) { <- move this part from (async_deliver != 0) - return PPC_INTERRUPT_CDOORBELL; - } - /* External critical interrupt */ - if (env->pending_interrupts & PPC_INTERRUPT_CEXT) { - return PPC_INTERRUPT_CEXT; - } -} -``` - - -And it seems to work in my case. |