VirtualBox

source: vbox/trunk/src/recompiler/softmmu_exec.h@ 62291

最後變更 在這個檔案從62291是 37689,由 vboxsync 提交於 13 年 前

recompiler: Merged in changes from 0.13.0.

  • 屬性 svn:eol-style 設為 native
檔案大小: 3.0 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)
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette