File:  [Qemu by Fabrice Bellard] / qemu / softmmu_exec.h
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:50:49 2018 UTC (2 years, 3 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0105, qemu0104, qemu0103, qemu0102, qemu0101, qemu0100, HEAD
qemu 0.10.0

    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: 
   64: #if (NB_MMU_MODES >= 4)
   65: 
   66: #define ACCESS_TYPE 3
   67: #define MEMSUFFIX MMU_MODE3_SUFFIX
   68: #define DATA_SIZE 1
   69: #include "softmmu_header.h"
   70: 
   71: #define DATA_SIZE 2
   72: #include "softmmu_header.h"
   73: 
   74: #define DATA_SIZE 4
   75: #include "softmmu_header.h"
   76: 
   77: #define DATA_SIZE 8
   78: #include "softmmu_header.h"
   79: #undef ACCESS_TYPE
   80: #undef MEMSUFFIX
   81: 
   82: #if (NB_MMU_MODES > 4)
   83: #error "NB_MMU_MODES > 4 is not supported for now"
   84: #endif /* (NB_MMU_MODES > 4) */
   85: #endif /* (NB_MMU_MODES == 4) */
   86: #endif /* (NB_MMU_MODES >= 3) */
   87: 
   88: /* these access are slower, they must be as rare as possible */
   89: #define ACCESS_TYPE (NB_MMU_MODES)
   90: #define MEMSUFFIX _data
   91: #define DATA_SIZE 1
   92: #include "softmmu_header.h"
   93: 
   94: #define DATA_SIZE 2
   95: #include "softmmu_header.h"
   96: 
   97: #define DATA_SIZE 4
   98: #include "softmmu_header.h"
   99: 
  100: #define DATA_SIZE 8
  101: #include "softmmu_header.h"
  102: #undef ACCESS_TYPE
  103: #undef MEMSUFFIX
  104: 
  105: #define ldub(p) ldub_data(p)
  106: #define ldsb(p) ldsb_data(p)
  107: #define lduw(p) lduw_data(p)
  108: #define ldsw(p) ldsw_data(p)
  109: #define ldl(p) ldl_data(p)
  110: #define ldq(p) ldq_data(p)
  111: 
  112: #define stb(p, v) stb_data(p, v)
  113: #define stw(p, v) stw_data(p, v)
  114: #define stl(p, v) stl_data(p, v)
  115: #define stq(p, v) stq_data(p, v)

unix.superglobalmegacorp.com