Commit dac454af57c6389c2e3df0b8b51a9b35429d8caa
1 parent
c7697e1f
Bugfix in PowerPC dcbi instruction:
we must do a load before the store, or we'll store random data. Update cache instructions comments. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3448 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
2 additions
and
5 deletions
target-ppc/translate.c
... | ... | @@ -3618,13 +3618,10 @@ GEN_HANDLER(mtspr, 0x1F, 0x13, 0x0E, 0x00000001, PPC_MISC) |
3618 | 3618 | } |
3619 | 3619 | |
3620 | 3620 | /*** Cache management ***/ |
3621 | -/* For now, all those will be implemented as nop: | |
3622 | - * this is valid, regarding the PowerPC specs... | |
3623 | - * We just have to flush tb while invalidating instruction cache lines... | |
3624 | - */ | |
3625 | 3621 | /* dcbf */ |
3626 | 3622 | GEN_HANDLER(dcbf, 0x1F, 0x16, 0x02, 0x03C00001, PPC_CACHE) |
3627 | 3623 | { |
3624 | + /* XXX: specification says this is treated as a load by the MMU */ | |
3628 | 3625 | gen_addr_reg_index(ctx); |
3629 | 3626 | op_ldst(lbz); |
3630 | 3627 | } |
... | ... | @@ -3641,7 +3638,7 @@ GEN_HANDLER(dcbi, 0x1F, 0x16, 0x0E, 0x03E00001, PPC_CACHE) |
3641 | 3638 | } |
3642 | 3639 | gen_addr_reg_index(ctx); |
3643 | 3640 | /* XXX: specification says this should be treated as a store by the MMU */ |
3644 | - //op_ldst(lbz); | |
3641 | + op_ldst(lbz); | |
3645 | 3642 | op_ldst(stb); |
3646 | 3643 | #endif |
3647 | 3644 | } | ... | ... |