61 lines
1.8 KiB
C
61 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)))
|
|
|