Statistics
| Branch: | Revision:

root / softmmu_exec.h @ 75b9f690

History | View | Annotate | Download (3 kB)

1
/* Common softmmu definitions and inline routines.  */
2

    
3
/* XXX: find something cleaner.
4
 * Furthermore, this is false for 64 bits targets
5
 */
6
#define ldul_user       ldl_user
7
#define ldul_kernel     ldl_kernel
8
#define ldul_hypv       ldl_hypv
9
#define ldul_executive  ldl_executive
10
#define ldul_supervisor ldl_supervisor
11

    
12
#include "softmmu_defs.h"
13

    
14
#define ACCESS_TYPE 0
15
#define MEMSUFFIX MMU_MODE0_SUFFIX
16
#define DATA_SIZE 1
17
#include "softmmu_header.h"
18

    
19
#define DATA_SIZE 2
20
#include "softmmu_header.h"
21

    
22
#define DATA_SIZE 4
23
#include "softmmu_header.h"
24

    
25
#define DATA_SIZE 8
26
#include "softmmu_header.h"
27
#undef ACCESS_TYPE
28
#undef MEMSUFFIX
29

    
30
#define ACCESS_TYPE 1
31
#define MEMSUFFIX MMU_MODE1_SUFFIX
32
#define DATA_SIZE 1
33
#include "softmmu_header.h"
34

    
35
#define DATA_SIZE 2
36
#include "softmmu_header.h"
37

    
38
#define DATA_SIZE 4
39
#include "softmmu_header.h"
40

    
41
#define DATA_SIZE 8
42
#include "softmmu_header.h"
43
#undef ACCESS_TYPE
44
#undef MEMSUFFIX
45

    
46
#if (NB_MMU_MODES >= 3)
47

    
48
#define ACCESS_TYPE 2
49
#define MEMSUFFIX MMU_MODE2_SUFFIX
50
#define DATA_SIZE 1
51
#include "softmmu_header.h"
52

    
53
#define DATA_SIZE 2
54
#include "softmmu_header.h"
55

    
56
#define DATA_SIZE 4
57
#include "softmmu_header.h"
58

    
59
#define DATA_SIZE 8
60
#include "softmmu_header.h"
61
#undef ACCESS_TYPE
62
#undef MEMSUFFIX
63
#endif /* (NB_MMU_MODES >= 3) */
64

    
65
#if (NB_MMU_MODES >= 4)
66

    
67
#define ACCESS_TYPE 3
68
#define MEMSUFFIX MMU_MODE3_SUFFIX
69
#define DATA_SIZE 1
70
#include "softmmu_header.h"
71

    
72
#define DATA_SIZE 2
73
#include "softmmu_header.h"
74

    
75
#define DATA_SIZE 4
76
#include "softmmu_header.h"
77

    
78
#define DATA_SIZE 8
79
#include "softmmu_header.h"
80
#undef ACCESS_TYPE
81
#undef MEMSUFFIX
82
#endif /* (NB_MMU_MODES >= 4) */
83

    
84
#if (NB_MMU_MODES >= 5)
85

    
86
#define ACCESS_TYPE 4
87
#define MEMSUFFIX MMU_MODE4_SUFFIX
88
#define DATA_SIZE 1
89
#include "softmmu_header.h"
90

    
91
#define DATA_SIZE 2
92
#include "softmmu_header.h"
93

    
94
#define DATA_SIZE 4
95
#include "softmmu_header.h"
96

    
97
#define DATA_SIZE 8
98
#include "softmmu_header.h"
99
#undef ACCESS_TYPE
100
#undef MEMSUFFIX
101
#endif /* (NB_MMU_MODES >= 5) */
102

    
103
#if (NB_MMU_MODES >= 6)
104

    
105
#define ACCESS_TYPE 5
106
#define MEMSUFFIX MMU_MODE5_SUFFIX
107
#define DATA_SIZE 1
108
#include "softmmu_header.h"
109

    
110
#define DATA_SIZE 2
111
#include "softmmu_header.h"
112

    
113
#define DATA_SIZE 4
114
#include "softmmu_header.h"
115

    
116
#define DATA_SIZE 8
117
#include "softmmu_header.h"
118
#undef ACCESS_TYPE
119
#undef MEMSUFFIX
120
#endif /* (NB_MMU_MODES >= 6) */
121

    
122
#if (NB_MMU_MODES > 6)
123
#error "NB_MMU_MODES > 6 is not supported for now"
124
#endif /* (NB_MMU_MODES > 6) */
125

    
126
/* these access are slower, they must be as rare as possible */
127
#define ACCESS_TYPE (NB_MMU_MODES)
128
#define MEMSUFFIX _data
129
#define DATA_SIZE 1
130
#include "softmmu_header.h"
131

    
132
#define DATA_SIZE 2
133
#include "softmmu_header.h"
134

    
135
#define DATA_SIZE 4
136
#include "softmmu_header.h"
137

    
138
#define DATA_SIZE 8
139
#include "softmmu_header.h"
140
#undef ACCESS_TYPE
141
#undef MEMSUFFIX
142

    
143
#define ldub(p) ldub_data(p)
144
#define ldsb(p) ldsb_data(p)
145
#define lduw(p) lduw_data(p)
146
#define ldsw(p) ldsw_data(p)
147
#define ldl(p) ldl_data(p)
148
#define ldq(p) ldq_data(p)
149

    
150
#define stb(p, v) stb_data(p, v)
151
#define stw(p, v) stw_data(p, v)
152
#define stl(p, v) stl_data(p, v)
153
#define stq(p, v) stq_data(p, v)