ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/uae_cpu/newcpu.cpp
(Generate patch)

Comparing BasiliskII/src/uae_cpu/newcpu.cpp (file contents):
Revision 1.4 by cebix, 1999-10-31T23:18:42Z vs.
Revision 1.7 by gbeauche, 2000-09-22T17:21:25Z

# Line 183 | Line 183 | void init_m68k (void)
183          for (j = 7 ; j >= 0 ; j--) {
184                  if (i & (1 << j)) break;
185          }
186 <        fpp_movem_index1[i] = j;
187 <        fpp_movem_index2[i] = 7-j;
186 >        fpp_movem_index1[i] = 7-j;
187 >        fpp_movem_index2[i] = j;
188          fpp_movem_next[i] = i & (~(1 << j));
189      }
190   #if COUNT_INSTRS
# Line 207 | Line 207 | void init_m68k (void)
207      do_merges ();
208  
209      build_cpufunctbl ();
210 +    
211 +    fpu_init ();
212 +    fpu_set_integral_fpu (CPUType == 4);
213 + }
214 +
215 + void exit_m68k (void)
216 + {
217 +        fpu_exit ();
218   }
219  
220   struct regstruct regs, lastint_regs;
# Line 215 | Line 223 | static int backup_pointer = 0;
223   static long int m68kpc_offset;
224   int lastint_no;
225  
226 + #if REAL_ADDRESSING || DIRECT_ADDRESSING
227 + #define get_ibyte_1(o) get_byte(get_virtual_address(regs.pc_p) + (o) + 1)
228 + #define get_iword_1(o) get_word(get_virtual_address(regs.pc_p) + (o))
229 + #define get_ilong_1(o) get_long(get_virtual_address(regs.pc_p) + (o))
230 + #else
231   #define get_ibyte_1(o) get_byte(regs.pc + (regs.pc_p - regs.pc_oldp) + (o) + 1)
232   #define get_iword_1(o) get_word(regs.pc + (regs.pc_p - regs.pc_oldp) + (o))
233   #define get_ilong_1(o) get_long(regs.pc + (regs.pc_p - regs.pc_oldp) + (o))
234 + #endif
235  
236   uae_s32 ShowEA (int reg, amodes mode, wordsizes size, char *buf)
237   {
# Line 250 | Line 264 | uae_s32 ShowEA (int reg, amodes mode, wo
264          disp16 = get_iword_1 (m68kpc_offset); m68kpc_offset += 2;
265          addr = m68k_areg(regs,reg) + (uae_s16)disp16;
266          sprintf (buffer,"(A%d,$%04x) == $%08lx", reg, disp16 & 0xffff,
267 <                                        (long unsigned int)addr);
267 >                                        (unsigned long)addr);
268          break;
269       case Ad8r:
270          dp = get_iword_1 (m68kpc_offset); m68kpc_offset += 2;
# Line 283 | Line 297 | uae_s32 ShowEA (int reg, amodes mode, wo
297                      dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W',
298                      1 << ((dp >> 9) & 3),
299                      disp,outer,
300 <                    (long unsigned int)addr);
300 >                    (unsigned long)addr);
301          } else {
302            addr = m68k_areg(regs,reg) + (uae_s32)((uae_s8)disp8) + dispreg;
303            sprintf (buffer,"(A%d, %c%d.%c*%d, $%02x) == $%08lx", reg,
304                 dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W',
305                 1 << ((dp >> 9) & 3), disp8,
306 <               (long unsigned int)addr);
306 >               (unsigned long)addr);
307          }
308          break;
309       case PC16:
310          addr = m68k_getpc () + m68kpc_offset;
311          disp16 = get_iword_1 (m68kpc_offset); m68kpc_offset += 2;
312          addr += (uae_s16)disp16;
313 <        sprintf (buffer,"(PC,$%04x) == $%08lx", disp16 & 0xffff,(long unsigned int)addr);
313 >        sprintf (buffer,"(PC,$%04x) == $%08lx", disp16 & 0xffff,(unsigned long)addr);
314          break;
315       case PC8r:
316          addr = m68k_getpc () + m68kpc_offset;
# Line 330 | Line 344 | uae_s32 ShowEA (int reg, amodes mode, wo
344                      dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W',
345                      1 << ((dp >> 9) & 3),
346                      disp,outer,
347 <                    (long unsigned int)addr);
347 >                    (unsigned long)addr);
348          } else {
349            addr += (uae_s32)((uae_s8)disp8) + dispreg;
350            sprintf (buffer,"(PC, %c%d.%c*%d, $%02x) == $%08lx", dp & 0x8000 ? 'A' : 'D',
351                  (int)r, dp & 0x800 ? 'L' : 'W',  1 << ((dp >> 9) & 3),
352 <                disp8, (long unsigned int)addr);
352 >                disp8, (unsigned long)addr);
353          }
354          break;
355       case absw:
356 <        sprintf (buffer,"$%08lx", (long unsigned int)(uae_s32)(uae_s16)get_iword_1 (m68kpc_offset));
356 >        sprintf (buffer,"$%08lx", (unsigned long)(uae_s32)(uae_s16)get_iword_1 (m68kpc_offset));
357          m68kpc_offset += 2;
358          break;
359       case absl:
360 <        sprintf (buffer,"$%08lx", (long unsigned int)get_ilong_1 (m68kpc_offset));
360 >        sprintf (buffer,"$%08lx", (unsigned long)get_ilong_1 (m68kpc_offset));
361          m68kpc_offset += 4;
362          break;
363       case imm:
# Line 357 | Line 371 | uae_s32 ShowEA (int reg, amodes mode, wo
371              m68kpc_offset += 2;
372              break;
373           case sz_long:
374 <            sprintf (buffer,"#$%08lx", (long unsigned int)(get_ilong_1 (m68kpc_offset)));
374 >            sprintf (buffer,"#$%08lx", (unsigned long)(get_ilong_1 (m68kpc_offset)));
375              m68kpc_offset += 4;
376              break;
377           default:
# Line 377 | Line 391 | uae_s32 ShowEA (int reg, amodes mode, wo
391       case imm2:
392          offset = (uae_s32)get_ilong_1 (m68kpc_offset);
393          m68kpc_offset += 4;
394 <        sprintf (buffer,"#$%08lx", (long unsigned int)offset);
394 >        sprintf (buffer,"#$%08lx", (unsigned long)offset);
395          break;
396       case immi:
397          offset = (uae_s32)(uae_s8)(reg & 0xff);
398 <        sprintf (buffer,"#$%08lx", (long unsigned int)offset);
398 >        sprintf (buffer,"#$%08lx", (unsigned long)offset);
399          break;
400       default:
401          break;
# Line 1047 | Line 1061 | void m68k_reset (void)
1061      regs.spcflags = 0;
1062      regs.intmask = 7;
1063      regs.vbr = regs.sfc = regs.dfc = 0;
1064 <    regs.fpcr = regs.fpsr = regs.fpiar = 0;
1064 >    /* gb-- moved into {fpp,fpu_x86}.cpp::fpu_init()
1065 >    regs.fpcr = regs.fpsr = regs.fpiar = 0; */
1066 >    fpu_reset();
1067   }
1068  
1069   void REGPARAM2 op_illg (uae_u32 opcode)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines