Public bug reported: Self-modifying code does not work properly in MIPS in uncached and unmapped kseg1 memory region.
For example, when running this code I get unexpected behavior: 0: e3000010 b 0x390 4: 00000000 nop ... 380: 00701f40 mfc0 ra,c0_epc 384: 0400e0bb swr zero,4(ra) 388: 18000042 eret 38c: 00000000 nop 390: 25500000 move t2,zero 394: 02000b34 li t3,0x2 398: 23504b01 subu t2,t2,t3 39c: e9003c0b j 0xcf003a4 3a0: 0a004a21 addi t2,t2,10 3a4: ffff0010 b 0x3a4 3a8: 00000000 nop 3ac: 00000000 nop I expect that swr instruction in line 384 would change `addi t2,t2,1`0 to `nop` This should work because no cache is used for this memory region. ** Affects: qemu Importance: Undecided Status: New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1248168 Title: MIPS, self-modifying code and uncached memory Status in QEMU: New Bug description: Self-modifying code does not work properly in MIPS in uncached and unmapped kseg1 memory region. For example, when running this code I get unexpected behavior: 0: e3000010 b 0x390 4: 00000000 nop ... 380: 00701f40 mfc0 ra,c0_epc 384: 0400e0bb swr zero,4(ra) 388: 18000042 eret 38c: 00000000 nop 390: 25500000 move t2,zero 394: 02000b34 li t3,0x2 398: 23504b01 subu t2,t2,t3 39c: e9003c0b j 0xcf003a4 3a0: 0a004a21 addi t2,t2,10 3a4: ffff0010 b 0x3a4 3a8: 00000000 nop 3ac: 00000000 nop I expect that swr instruction in line 384 would change `addi t2,t2,1`0 to `nop` This should work because no cache is used for this memory region. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1248168/+subscriptions