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

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

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

revision 1.5 by bellard, Mon Jan 3 23:43:32 2005 UTC revision 1.6 by bellard, Fri Jan 28 22:40:22 2005 UTC
# Line 106  void helper_ld_asi(int asi, int size, in Line 106  void helper_ld_asi(int asi, int size, in
106      case 0x20 ... 0x2f: /* MMU passthrough */      case 0x20 ... 0x2f: /* MMU passthrough */
107          cpu_physical_memory_read(T0, (void *) &ret, size);          cpu_physical_memory_read(T0, (void *) &ret, size);
108          if (size == 4)          if (size == 4)
109              bswap32s(&ret);              tswap32s(&ret);
110          else if (size == 2)          else if (size == 2)
111              bswap16s((uint16_t *)&ret);              tswap16s((uint16_t *)&ret);
112          break;          break;
113      default:      default:
114          ret = 0;          ret = 0;
# Line 170  void helper_st_asi(int asi, int size, in Line 170  void helper_st_asi(int asi, int size, in
170              int src = T1, dst = T0;              int src = T1, dst = T0;
171              uint8_t temp[32];              uint8_t temp[32];
172                            
173              bswap32s(&src);              tswap32s(&src);
174    
175              cpu_physical_memory_read(src, (void *) &temp, 32);              cpu_physical_memory_read(src, (void *) &temp, 32);
176              cpu_physical_memory_write(dst, (void *) &temp, 32);              cpu_physical_memory_write(dst, (void *) &temp, 32);
# Line 185  void helper_st_asi(int asi, int size, in Line 185  void helper_st_asi(int asi, int size, in
185              uint64_t val;              uint64_t val;
186                            
187              val = (((uint64_t)T1) << 32) | T2;              val = (((uint64_t)T1) << 32) | T2;
188              bswap64s(&val);              tswap64s(&val);
189    
190              for (i = 0; i < 32; i += 8, dst += 8) {              for (i = 0; i < 32; i += 8, dst += 8) {
191                  cpu_physical_memory_write(dst, (void *) &val, 8);                  cpu_physical_memory_write(dst, (void *) &val, 8);
# Line 196  void helper_st_asi(int asi, int size, in Line 196  void helper_st_asi(int asi, int size, in
196          {          {
197              int temp = T1;              int temp = T1;
198              if (size == 4)              if (size == 4)
199                  bswap32s(&temp);                  tswap32s(&temp);
200              else if (size == 2)              else if (size == 2)
201                  bswap16s((uint16_t *)&temp);                  tswap16s((uint16_t *)&temp);
   
202              cpu_physical_memory_write(T0, (void *) &temp, size);              cpu_physical_memory_write(T0, (void *) &temp, size);
203          }          }
204          return;          return;

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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