diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-15 00:30:28 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-15 00:30:28 +0000 |
commit | 27ee5df007d34f78fef5fbc64fd6e147684a25cc (patch) | |
tree | 2bb8c774d1b2706849f960ecbb1eab2f6987fc9e | |
parent | 9a819377d80f99a4293fd753dd1e90e6cbd618d2 (diff) |
target-ppc: fix mtfsf and mtfsfi instructions
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6035 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | target-ppc/op_helper.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c index a26b1ddb28..2d665e8d22 100644 --- a/target-ppc/op_helper.c +++ b/target-ppc/op_helper.c @@ -986,9 +986,9 @@ void helper_store_fpscr (uint64_t arg, uint32_t mask) prev = env->fpscr; new = (uint32_t)arg; - new &= ~0x90000000; - new |= prev & 0x90000000; - for (i = 0; i < 7; i++) { + new &= ~0x60000000; + new |= prev & 0x60000000; + for (i = 0; i < 8; i++) { if (mask & (1 << i)) { env->fpscr &= ~(0xF << (4 * i)); env->fpscr |= new & (0xF << (4 * i)); |