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

Comparing BasiliskII/src/uae_cpu/compiler/compemu.h (file contents):
Revision 1.2 by gbeauche, 2002-10-01T16:22:36Z vs.
Revision 1.9 by cebix, 2004-01-12T15:29:30Z

# Line 1 | Line 1
1 + /*
2 + *  compiler/compemu.h - Public interface and definitions
3 + *
4 + *  Original 68040 JIT compiler for UAE, copyright 2000-2002 Bernd Meyer
5 + *
6 + *  Adaptation for Basilisk II and improvements, copyright 2000-2004
7 + *    Gwenole Beauchesne
8 + *
9 + *  Basilisk II (C) 1997-2004 Christian Bauer
10 + *  
11 + *  This program is free software; you can redistribute it and/or modify
12 + *  it under the terms of the GNU General Public License as published by
13 + *  the Free Software Foundation; either version 2 of the License, or
14 + *  (at your option) any later version.
15 + *
16 + *  This program is distributed in the hope that it will be useful,
17 + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
18 + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 + *  GNU General Public License for more details.
20 + *
21 + *  You should have received a copy of the GNU General Public License
22 + *  along with this program; if not, write to the Free Software
23 + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
24 + */
25 +
26   #ifndef COMPEMU_H
27   #define COMPEMU_H
28  
# Line 32 | Line 57 | union cacheline {
57          blockinfo_t * bi;
58   };
59  
60 + /* Use new spill/reload strategy when calling external functions */
61 + #define USE_OPTIMIZED_CALLS 0
62 + #if USE_OPTIMIZED_CALLS
63 + #error implementation in progress
64 + #endif
65 +
66   /* (gb) When on, this option can save save up to 30% compilation time
67   *  when many lazy flushes occur (e.g. apps in MacOS 8.x).
68   */
69   #define USE_SEPARATE_BIA 1
70  
71   /* Use chain of checksum_info_t to compute the block checksum */
72 < #define USE_CHECKSUM_INFO 0
72 > #define USE_CHECKSUM_INFO 1
73 >
74 > /* Use code inlining, aka follow-up of constant jumps */
75 > #define USE_INLINING 1
76 >
77 > /* Inlining requires the chained checksuming information */
78 > #if USE_INLINING
79 > #undef  USE_CHECKSUM_INFO
80 > #define USE_CHECKSUM_INFO 1
81 > #endif
82 >
83 > /* Does flush_icache_range() only check for blocks falling in the requested range? */
84 > #define LAZY_FLUSH_ICACHE_RANGE 0
85  
86   #define USE_F_ALIAS 1
87   #define USE_OFFSET 1
# Line 301 | Line 344 | DECLARE_MIDFUNC(setcc(W1 d, IMM cc));
344   DECLARE_MIDFUNC(setcc_m(IMM d, IMM cc));
345   DECLARE_MIDFUNC(cmov_l_rr(RW4 d, R4 s, IMM cc));
346   DECLARE_MIDFUNC(cmov_l_rm(RW4 d, IMM s, IMM cc));
347 < DECLARE_MIDFUNC(bsf_l_rr(W4 d, R4 s));
347 > /* Set native Z flag only if register is zero */
348 > DECLARE_MIDFUNC(setzflg_l(RW4 r));
349   DECLARE_MIDFUNC(pop_m(IMM d));
350   DECLARE_MIDFUNC(push_m(IMM d));
351   DECLARE_MIDFUNC(pop_l(W4 d));
# Line 491 | Line 535 | typedef struct dep_t {
535   typedef struct checksum_info_t {
536    uae_u8 *start_p;
537    uae_u32 length;
494  uae_u32 c1;
495  uae_u32 c2;
538    struct checksum_info_t *next;
539   } checksum_info;
540  
# Line 510 | Line 552 | typedef struct blockinfo_t {
552  
553      uae_u8* pc_p;
554      
555 +    uae_u32 c1;    
556 +    uae_u32 c2;
557   #if USE_CHECKSUM_INFO
558      checksum_info *csi;
515 #   define CSI_TYPE         checksum_info
516 #   define CSI_START_P(csi) (csi)->start_p
517 #   define CSI_LENGTH(csi)  (csi)->length
559   #else
519    uae_u32 c1;    
520    uae_u32 c2;
560      uae_u32 len;
561      uae_u32 min_pcp;
523 #   define CSI_TYPE         blockinfo
524 #   define CSI_START_P(csi) (csi)->min_pcp
525 #   define CSI_LENGTH(csi)  (csi)->len
562   #endif
563  
564      struct blockinfo_t* next_same_cl;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines