diff options
Diffstat (limited to 'softmmu_exec.h')
-rw-r--r-- | softmmu_exec.h | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/softmmu_exec.h b/softmmu_exec.h index 3b789ee..b6e4849 100644 --- a/softmmu_exec.h +++ b/softmmu_exec.h @@ -1,10 +1,16 @@ /* Common softmmu definitions and inline routines. */ -#define ldul_user ldl_user -#define ldul_kernel ldl_kernel +/* XXX: find something cleaner. + * Furthermore, this is false for 64 bits targets + */ +#define ldul_user ldl_user +#define ldul_kernel ldl_kernel +#define ldul_hypv ldl_hypv +#define ldul_executive ldl_executive +#define ldul_supervisor ldl_supervisor #define ACCESS_TYPE 0 -#define MEMSUFFIX _kernel +#define MEMSUFFIX MMU_MODE0_SUFFIX #define DATA_SIZE 1 #include "softmmu_header.h" @@ -20,7 +26,7 @@ #undef MEMSUFFIX #define ACCESS_TYPE 1 -#define MEMSUFFIX _user +#define MEMSUFFIX MMU_MODE1_SUFFIX #define DATA_SIZE 1 #include "softmmu_header.h" @@ -35,8 +41,50 @@ #undef ACCESS_TYPE #undef MEMSUFFIX -/* these access are slower, they must be as rare as possible */ +#if (NB_MMU_MODES >= 3) + #define ACCESS_TYPE 2 +#define MEMSUFFIX MMU_MODE2_SUFFIX +#define DATA_SIZE 1 +#include "softmmu_header.h" + +#define DATA_SIZE 2 +#include "softmmu_header.h" + +#define DATA_SIZE 4 +#include "softmmu_header.h" + +#define DATA_SIZE 8 +#include "softmmu_header.h" +#undef ACCESS_TYPE +#undef MEMSUFFIX + +#if (NB_MMU_MODES >= 4) + +#define ACCESS_TYPE 3 +#define MEMSUFFIX MMU_MODE3_SUFFIX +#define DATA_SIZE 1 +#include "softmmu_header.h" + +#define DATA_SIZE 2 +#include "softmmu_header.h" + +#define DATA_SIZE 4 +#include "softmmu_header.h" + +#define DATA_SIZE 8 +#include "softmmu_header.h" +#undef ACCESS_TYPE +#undef MEMSUFFIX + +#if (NB_MMU_MODES > 4) +#error "NB_MMU_MODES > 4 is not supported for now" +#endif /* (NB_MMU_MODES > 4) */ +#endif /* (NB_MMU_MODES == 4) */ +#endif /* (NB_MMU_MODES >= 3) */ + +/* these access are slower, they must be as rare as possible */ +#define ACCESS_TYPE (NB_MMU_MODES) #define MEMSUFFIX _data #define DATA_SIZE 1 #include "softmmu_header.h" |