113 |
|
#endif /* !DIRECT_ADDRESSING && !REAL_ADDRESSING */ |
114 |
|
|
115 |
|
#if REAL_ADDRESSING |
116 |
< |
#define do_get_real_address(a) ((uae_u8 *)(a)) |
117 |
< |
#define do_get_virtual_address(a) ((uae_u32)(a)) |
118 |
< |
#define InitMEMBaseDiff(va, ra) do { } while (0) |
119 |
< |
#endif /* REAL_ADDRESSING */ |
120 |
< |
|
116 |
> |
const uintptr MEMBaseDiff = 0; |
117 |
> |
#endif |
118 |
|
#if DIRECT_ADDRESSING |
119 |
|
extern uintptr MEMBaseDiff; |
120 |
< |
#define do_get_real_address(a) ((uae_u8 *)(a) + MEMBaseDiff) |
124 |
< |
#define do_get_virtual_address(a) ((uae_u32)(a) - MEMBaseDiff) |
125 |
< |
#define InitMEMBaseDiff(va, ra) (MEMBaseDiff = (uintptr)(va) - (uintptr)(ra)) |
126 |
< |
#endif /* DIRECT_ADDRESSING */ |
120 |
> |
#endif |
121 |
|
|
122 |
|
#if REAL_ADDRESSING || DIRECT_ADDRESSING |
123 |
+ |
static __inline__ uae_u8 *do_get_real_address(uaecptr addr) |
124 |
+ |
{ |
125 |
+ |
return (uae_u8 *)MEMBaseDiff + addr; |
126 |
+ |
} |
127 |
+ |
static __inline__ uae_u32 do_get_virtual_address(uae_u8 *addr) |
128 |
+ |
{ |
129 |
+ |
return (uintptr)addr - MEMBaseDiff; |
130 |
+ |
} |
131 |
|
static __inline__ uae_u32 get_long(uaecptr addr) |
132 |
|
{ |
133 |
|
uae_u32 * const m = (uae_u32 *)do_get_real_address(addr); |