File:  [Qemu by Fabrice Bellard] / qemu / softmmu_exec.h
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:20:58 2018 UTC (2 years, 2 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0125, qemu0124, qemu0123, qemu0122, qemu0121, qemu0120, qemu0111, qemu0110, HEAD
qemu 0.11.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: #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 > 5)
  104: #error "NB_MMU_MODES > 5 is not supported for now"
  105: #endif /* (NB_MMU_MODES > 5) */
  106: 
  107: /* these access are slower, they must be as rare as possible */
  108: #define ACCESS_TYPE (NB_MMU_MODES)
  109: #define MEMSUFFIX _data
  110: #define DATA_SIZE 1
  111: #include "softmmu_header.h"
  112: 
  113: #define DATA_SIZE 2
  114: #include "softmmu_header.h"
  115: 
  116: #define DATA_SIZE 4
  117: #include "softmmu_header.h"
  118: 
  119: #define DATA_SIZE 8
  120: #include "softmmu_header.h"
  121: #undef ACCESS_TYPE
  122: #undef MEMSUFFIX
  123: 
  124: #define ldub(p) ldub_data(p)
  125: #define ldsb(p) ldsb_data(p)
  126: #define lduw(p) lduw_data(p)
  127: #define ldsw(p) ldsw_data(p)
  128: #define ldl(p) ldl_data(p)
  129: #define ldq(p) ldq_data(p)
  130: 
  131: #define stb(p, v) stb_data(p, v)
  132: #define stw(p, v) stw_data(p, v)
  133: #define stl(p, v) stl_data(p, v)
  134: #define stq(p, v) stq_data(p, v)

unix.superglobalmegacorp.com