qemu/softmmu_exec.h
<<
>>
Prefs
   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)
 154