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

Comparing BasiliskII/src/uae_cpu/newcpu.h (file contents):
Revision 1.8 by gbeauche, 2002-09-01T15:17:13Z vs.
Revision 1.15 by gbeauche, 2005-06-11T06:43:24Z

# Line 9 | Line 9
9   #ifndef NEWCPU_H
10   #define NEWCPU_H
11  
12 + #ifndef FLIGHT_RECORDER
13 + #define FLIGHT_RECORDER 0
14 + #endif
15 +
16   #include "m68k.h"
17   #include "readcpu.h"
18   #include "spcflags.h"
# Line 20 | Line 24 | extern int movem_index1[256];
24   extern int movem_index2[256];
25   extern int movem_next[256];
26  
23 extern int fpp_movem_index1[256];
24 extern int fpp_movem_index2[256];
25 extern int fpp_movem_next[256];
26
27   extern int broken_in;
28  
29 /* Control flow information */
30 #define CFLOW_NORMAL            0
31 #define CFLOW_BRANCH            1
32 #define CFLOW_JUMP                      2
33 #define CFLOW_TRAP                      CFLOW_JUMP
34 #define CFLOW_RETURN            3
35 #define CFLOW_SPCFLAGS          32      /* some spcflags are set */
36 #define CFLOW_EXEC_RETURN       64      /* must exit from the execution loop */
37
38 #define cpuop_rettype           void
39 #define cpuop_return(v)         do { (v); return; } while (0)
40
29   #ifdef X86_ASSEMBLY
30   /* This hack seems to force all register saves (pushl %reg) to be moved to the
31     begining of the function, thus making it possible to cpuopti to remove them
# Line 49 | Line 37 | extern int broken_in;
37   #endif
38  
39   #define cpuop_begin()           do { cpuop_tag("begin"); } while (0)
40 < #define cpuop_end(cflow)        do { cpuop_tag("end"); cpuop_return(cflow); } while (0)
40 > #define cpuop_end()                     do { cpuop_tag("end"); } while (0)
41  
42 < typedef cpuop_rettype REGPARAM2 cpuop_func (uae_u32) REGPARAM;
42 > typedef void REGPARAM2 cpuop_func (uae_u32) REGPARAM;
43  
44   struct cputbl {
45      cpuop_func *handler;
# Line 59 | Line 47 | struct cputbl {
47      uae_u16 opcode;
48   };
49  
50 < extern cpuop_rettype REGPARAM2 op_illg (uae_u32) REGPARAM;
50 > extern cpuop_func *cpufunctbl[65536] ASM_SYM_FOR_FUNC ("cpufunctbl");
51 >
52 > #if USE_JIT
53 > typedef void compop_func (uae_u32) REGPARAM;
54 >
55 > struct comptbl {
56 >    compop_func *handler;
57 >        uae_u32         specific;
58 >        uae_u32         opcode;
59 > };
60 > #endif
61 >
62 > extern void REGPARAM2 op_illg (uae_u32) REGPARAM;
63  
64   typedef char flagtype;
65  
# Line 83 | Line 83 | struct regstruct {
83      flagtype    x;
84      flagtype    stopped;
85  
86    double              fp[8];
87    uae_u32             fpcr,fpsr,fpiar;
88
86   #if USE_PREFETCH_BUFFER
87      /* Fellow sources say this is 4 longwords. That's impossible. It needs
88       * to be at least a longword. The HRM has some cryptic comment about two
# Line 264 | Line 261 | extern int m68k_do_specialties(void);
261  
262   extern void mmu_op (uae_u32, uae_u16);
263  
267 extern void fpp_opp (uae_u32, uae_u16);
268 extern void fdbcc_opp (uae_u32, uae_u16);
269 extern void fscc_opp (uae_u32, uae_u16);
270 extern void ftrapcc_opp (uae_u32,uaecptr);
271 extern void fbcc_opp (uae_u32, uaecptr, uae_u32);
272 extern void fsave_opp (uae_u32);
273 extern void frestore_opp (uae_u32);
274
275 extern void fpu_set_integral_fpu (bool is_integral);
276 extern void fpu_init (void);
277 extern void fpu_exit (void);
278 extern void fpu_reset (void);
279
264   /* Opcode of faulting instruction */
265   extern uae_u16 last_op_for_exception_3;
266   /* PC at fault time */
# Line 297 | Line 281 | extern struct cputbl op_smalltbl_3_ff[];
281   /* 68000 slow but compatible.  */
282   extern struct cputbl op_smalltbl_4_ff[];
283  
284 + #if FLIGHT_RECORDER
285 + extern void m68k_record_step(uaecptr) REGPARAM;
286 + #endif
287   extern void m68k_do_execute(void);
288   extern void m68k_execute(void);
289 + #if USE_JIT
290 + #if defined(X86_ASSEMBLY) || defined(X86_64_ASSEMBLY)
291 + /* This is generated code */
292 + extern void (*m68k_compile_execute)(void);
293 + #else
294 + extern void m68k_do_compile_execute(void);
295 + extern void m68k_compile_execute(void);
296 + #endif
297 + #endif
298 + #ifdef USE_CPU_EMUL_SERVICES
299 + extern int32 emulated_ticks;
300 + extern void cpu_do_check_ticks(void);
301 +
302 + static inline void cpu_check_ticks(void)
303 + {
304 +        if (--emulated_ticks <= 0)
305 +                cpu_do_check_ticks();
306 + }
307 + #else
308 + #define cpu_check_ticks()
309 + #define cpu_do_check_ticks()
310 + #endif
311  
312   #endif /* NEWCPU_H */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines