diff options
Diffstat (limited to 'results/classifier/deepseek-2-tmp/output/mistranslation/1757363')
| -rw-r--r-- | results/classifier/deepseek-2-tmp/output/mistranslation/1757363 | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/results/classifier/deepseek-2-tmp/output/mistranslation/1757363 b/results/classifier/deepseek-2-tmp/output/mistranslation/1757363 new file mode 100644 index 000000000..3e8b91215 --- /dev/null +++ b/results/classifier/deepseek-2-tmp/output/mistranslation/1757363 @@ -0,0 +1,34 @@ + +infinite loop due to improper deal with "eret" on mips32 + +1.qemu 2.9.1 release on the official web build with tcg +2.cmd: qemu-system-mips -kernel kernelfile +3. host: ubuntu 16.04.1 with linux kernel 4.6.2 x86_64 + guest: mips bigendian 32bit (tplink firmware) + + +detail: + +static inline void exception_return(CPUMIPSState *env) +{ + debug_pre_eret(env); + if (env->CP0_Status & (1 << CP0St_ERL)) { + set_pc(env, env->CP0_ErrorEPC); + env->CP0_Status &= ~(1 << CP0St_ERL); + } else { + set_pc(env, env->CP0_EPC); + env->CP0_Status &= ~(1 << CP0St_EXL);====================> ISSUE???? + } + compute_hflags(env); + debug_post_eret(env); +} + +void helper_eret(CPUMIPSState *env) +{ + exception_return(env); + env->lladdr = 1; +} + + +In the Issue Line, there is no check CP0_Status whether int is disabled (should not enter int routine), +that result in the cpu can not jump out the int routine. \ No newline at end of file |