File:  [Qemu by Fabrice Bellard] / qemu / softmmu_exec.h
Revision 1.1.1.5 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:24:17 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1000, qemu0151, qemu0150, qemu0141, qemu0140, qemu0130, HEAD
qemu 0.13.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 >= 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)

unix.superglobalmegacorp.com