154 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
| /* Common softmmu definitions and inline routines.  */
 | |
| 
 | |
| /* 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
 | |
| 
 | |
| #include "softmmu_defs.h"
 | |
| 
 | |
| #define ACCESS_TYPE 0
 | |
| #define MEMSUFFIX MMU_MODE0_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
 | |
| 
 | |
| #define ACCESS_TYPE 1
 | |
| #define MEMSUFFIX MMU_MODE1_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 >= 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
 | |
| #endif /* (NB_MMU_MODES >= 3) */
 | |
| 
 | |
| #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
 | |
| #endif /* (NB_MMU_MODES >= 4) */
 | |
| 
 | |
| #if (NB_MMU_MODES >= 5)
 | |
| 
 | |
| #define ACCESS_TYPE 4
 | |
| #define MEMSUFFIX MMU_MODE4_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
 | |
| #endif /* (NB_MMU_MODES >= 5) */
 | |
| 
 | |
| #if (NB_MMU_MODES >= 6)
 | |
| 
 | |
| #define ACCESS_TYPE 5
 | |
| #define MEMSUFFIX MMU_MODE5_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
 | |
| #endif /* (NB_MMU_MODES >= 6) */
 | |
| 
 | |
| #if (NB_MMU_MODES > 6)
 | |
| #error "NB_MMU_MODES > 6 is not supported for now"
 | |
| #endif /* (NB_MMU_MODES > 6) */
 | |
| 
 | |
| /* 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"
 | |
| 
 | |
| #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
 | |
| 
 | |
| #define ldub(p) ldub_data(p)
 | |
| #define ldsb(p) ldsb_data(p)
 | |
| #define lduw(p) lduw_data(p)
 | |
| #define ldsw(p) ldsw_data(p)
 | |
| #define ldl(p) ldl_data(p)
 | |
| #define ldq(p) ldq_data(p)
 | |
| 
 | |
| #define stb(p, v) stb_data(p, v)
 | |
| #define stw(p, v) stw_data(p, v)
 | |
| #define stl(p, v) stl_data(p, v)
 | |
| #define stq(p, v) stq_data(p, v)
 |