/[qemu]/qemu/target-ppc/op_helper.c
ViewVC logotype

Diff of /qemu/target-ppc/op_helper.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by bellard, Tue Feb 8 21:24:36 2005 UTC revision 1.11 by bellard, Tue Feb 15 23:06:19 2005 UTC
# Line 188  void do_load_fpscr (void) Line 188  void do_load_fpscr (void)
188      } u;      } u;
189      int i;      int i;
190    
191      u.s.u[0] = 0;  #ifdef WORDS_BIGENDIAN
192      u.s.u[1] = 0;  #define WORD0 0
193    #define WORD1 1
194    #else
195    #define WORD0 1
196    #define WORD1 0
197    #endif
198        u.s.u[WORD0] = 0;
199        u.s.u[WORD1] = 0;
200      for (i = 0; i < 8; i++)      for (i = 0; i < 8; i++)
201          u.s.u[1] |= env->fpscr[i] << (4 * i);          u.s.u[WORD1] |= env->fpscr[i] << (4 * i);
202      FT0 = u.d;      FT0 = u.d;
203  }  }
204    
# Line 210  void do_store_fpscr (uint32_t mask) Line 217  void do_store_fpscr (uint32_t mask)
217    
218      u.d = FT0;      u.d = FT0;
219      if (mask & 0x80)      if (mask & 0x80)
220          env->fpscr[0] = (env->fpscr[0] & 0x9) | ((u.s.u[1] >> 28) & ~0x9);          env->fpscr[0] = (env->fpscr[0] & 0x9) | ((u.s.u[WORD1] >> 28) & ~0x9);
221      for (i = 1; i < 7; i++) {      for (i = 1; i < 7; i++) {
222          if (mask & (1 << (7 - i)))          if (mask & (1 << (7 - i)))
223              env->fpscr[i] = (u.s.u[1] >> (4 * (7 - i))) & 0xF;              env->fpscr[i] = (u.s.u[WORD1] >> (4 * (7 - i))) & 0xF;
224      }      }
225      /* TODO: update FEX & VX */      /* TODO: update FEX & VX */
226      /* Set rounding mode */      /* Set rounding mode */

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26