diff options
Diffstat (limited to 'results/scraper/launchpad-without-comments/1757363')
| -rw-r--r-- | results/scraper/launchpad-without-comments/1757363 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1757363 b/results/scraper/launchpad-without-comments/1757363 new file mode 100644 index 000000000..c3d4c1594 --- /dev/null +++ b/results/scraper/launchpad-without-comments/1757363 @@ -0,0 +1,33 @@ +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 |