60 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
	Direct unchecked memory access
 | 
						|
*/
 | 
						|
 | 
						|
/* $Id$ */
 | 
						|
 | 
						|
/*	The set of macros is neither systematic nor exhaustive; its contents
 | 
						|
	were suggested by expediency rather than by completeness.
 | 
						|
*/
 | 
						|
 | 
						|
/* Loading from memory */
 | 
						|
 | 
						|
#define	p_in_stack(a)	i2p((psize == 2) \
 | 
						|
			? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
 | 
						|
			: (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
 | 
						|
				(btol(stack_loc(a+2))<<16) | \
 | 
						|
				(btol(stack_loc(a+3))<<24)))
 | 
						|
 | 
						|
#define	p_in_data(a)	i2p((psize == 2) \
 | 
						|
			? (btol(data_loc(a)) | (btol(data_loc(a+1))<<8)) \
 | 
						|
			: (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
 | 
						|
				(btol(data_loc(a+2))<<16) | \
 | 
						|
				(btol(data_loc(a+3))<<24)))
 | 
						|
 | 
						|
#define	p_in_text(a)	i2p((psize == 2) \
 | 
						|
			? (btol(text_loc(a)) | (btol(text_loc(a+1))<<8)) \
 | 
						|
			: (btol(text_loc(a)) | (btol(text_loc(a+1))<<8) | \
 | 
						|
				(btol(text_loc(a+2))<<16) | \
 | 
						|
				(btol(text_loc(a+3))<<24)))
 | 
						|
 | 
						|
#define	p_in_FRA(a)	i2p((psize == 2) \
 | 
						|
			? (btol(FRA[a]) | (btol(FRA[a+1])<<8)) \
 | 
						|
			: (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
 | 
						|
				(btol(FRA[a+2])<<16) | \
 | 
						|
				(btol(FRA[a+3])<<24)))
 | 
						|
 | 
						|
#define	w_in_stack(a)	((wsize == 2) \
 | 
						|
			? (btol(stack_loc(a)) | (btos(stack_loc(a+1))<<8)) \
 | 
						|
			: (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
 | 
						|
				(btol(stack_loc(a+2))<<16) | \
 | 
						|
				(btos(stack_loc(a+3))<<24)))
 | 
						|
 | 
						|
#define	w_in_data(a)	((wsize == 2) \
 | 
						|
			? (btol(data_loc(a)) | (btos(data_loc(a+1))<<8)) \
 | 
						|
			: (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
 | 
						|
				(btol(data_loc(a+2))<<16) | \
 | 
						|
				(btos(data_loc(a+3))<<24)))
 | 
						|
 | 
						|
#define	w_in_FRA(a)	((wsize == 2) \
 | 
						|
			? (btol(FRA[a]) | (btos(FRA[a+1])<<8)) \
 | 
						|
			: (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
 | 
						|
				(btol(FRA[a+2])<<16) | \
 | 
						|
				(btos(FRA[a+3])<<24)))
 | 
						|
 | 
						|
#define	LIN_in_stack(a)	((LINSIZE == 2) \
 | 
						|
			? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
 | 
						|
			: (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
 | 
						|
				(btol(stack_loc(a+2))<<16) | \
 | 
						|
				(btol(stack_loc(a+3))<<24)))
 | 
						|
 |