/[qemu]/qemu/target-mips/op_helper_mem.c
ViewVC logotype

Diff of /qemu/target-mips/op_helper_mem.c

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

revision 1.2 by bellard, Mon Dec 5 19:59:36 2005 UTC revision 1.3 by bellard, Tue Dec 6 21:44:28 2005 UTC
# Line 1  Line 1 
1    #ifdef TARGET_WORDS_BIGENDIAN
2    #define GET_LMASK(v) ((v) & 3)
3    #else
4    #define GET_LMASK(v) (((v) & 3) ^ 3)
5    #endif
6    
7  void glue(do_lwl, MEMSUFFIX) (uint32_t tmp)  void glue(do_lwl, MEMSUFFIX) (uint32_t tmp)
8  {  {
9  #if defined (DEBUG_OP)  #if defined (DEBUG_OP)
# Line 7  void glue(do_lwl, MEMSUFFIX) (uint32_t t Line 13  void glue(do_lwl, MEMSUFFIX) (uint32_t t
13      /* XXX: this is valid only in big-endian mode      /* XXX: this is valid only in big-endian mode
14       *      should be reverted for little-endian...       *      should be reverted for little-endian...
15       */       */
16      switch (T0 & 3) {      switch (GET_LMASK(T0)) {
17      case 0:      case 0:
18          T0 = tmp;          T0 = tmp;
19          break;          break;
# Line 39  void glue(do_lwr, MEMSUFFIX) (uint32_t t Line 45  void glue(do_lwr, MEMSUFFIX) (uint32_t t
45      /* XXX: this is valid only in big-endian mode      /* XXX: this is valid only in big-endian mode
46       *      should be reverted for little-endian...       *      should be reverted for little-endian...
47       */       */
48      switch (T0 & 3) {      switch (GET_LMASK(T0)) {
49      case 0:      case 0:
50          T0 = (tmp >> 24) | (T1 & 0xFFFFFF00);          T0 = (tmp >> 24) | (T1 & 0xFFFFFF00);
51          break;          break;
# Line 74  uint32_t glue(do_swl, MEMSUFFIX) (uint32 Line 80  uint32_t glue(do_swl, MEMSUFFIX) (uint32
80      /* XXX: this is valid only in big-endian mode      /* XXX: this is valid only in big-endian mode
81       *      should be reverted for little-endian...       *      should be reverted for little-endian...
82       */       */
83      switch (T0 & 3) {      switch (GET_LMASK(T0)) {
84      case 0:      case 0:
85          tmp = T1;          tmp = T1;
86          break;          break;
# Line 110  uint32_t glue(do_swr, MEMSUFFIX) (uint32 Line 116  uint32_t glue(do_swr, MEMSUFFIX) (uint32
116      /* XXX: this is valid only in big-endian mode      /* XXX: this is valid only in big-endian mode
117       *      should be reverted for little-endian...       *      should be reverted for little-endian...
118       */       */
119      switch (T0 & 3) {      switch (GET_LMASK(T0)) {
120      case 0:      case 0:
121          tmp = (tmp & 0x00FFFFFF) | (T1 << 24);          tmp = (tmp & 0x00FFFFFF) | (T1 << 24);
122          break;          break;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

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