Pristine Ack-5.5
[Ack-5.5.git] / util / int / memdirect.h
1 /*
2         Direct unchecked memory access
3 */
4
5 /* $Id: memdirect.h,v 2.2 1994/06/24 10:48:13 ceriel Exp $ */
6
7 /*      The set of macros is neither systematic nor exhaustive; its contents
8         were suggested by expediency rather than by completeness.
9 */
10
11 /* Loading from memory */
12
13 #define p_in_stack(a)   i2p((psize == 2) \
14                         ? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
15                         : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
16                                 (btol(stack_loc(a+2))<<16) | \
17                                 (btol(stack_loc(a+3))<<24)))
18
19 #define p_in_data(a)    i2p((psize == 2) \
20                         ? (btol(data_loc(a)) | (btol(data_loc(a+1))<<8)) \
21                         : (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
22                                 (btol(data_loc(a+2))<<16) | \
23                                 (btol(data_loc(a+3))<<24)))
24
25 #define p_in_text(a)    i2p((psize == 2) \
26                         ? (btol(text_loc(a)) | (btol(text_loc(a+1))<<8)) \
27                         : (btol(text_loc(a)) | (btol(text_loc(a+1))<<8) | \
28                                 (btol(text_loc(a+2))<<16) | \
29                                 (btol(text_loc(a+3))<<24)))
30
31 #define p_in_FRA(a)     i2p((psize == 2) \
32                         ? (btol(FRA[a]) | (btol(FRA[a+1])<<8)) \
33                         : (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
34                                 (btol(FRA[a+2])<<16) | \
35                                 (btol(FRA[a+3])<<24)))
36
37 #define w_in_stack(a)   ((wsize == 2) \
38                         ? (btol(stack_loc(a)) | (btos(stack_loc(a+1))<<8)) \
39                         : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
40                                 (btol(stack_loc(a+2))<<16) | \
41                                 (btos(stack_loc(a+3))<<24)))
42
43 #define w_in_data(a)    ((wsize == 2) \
44                         ? (btol(data_loc(a)) | (btos(data_loc(a+1))<<8)) \
45                         : (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
46                                 (btol(data_loc(a+2))<<16) | \
47                                 (btos(data_loc(a+3))<<24)))
48
49 #define w_in_FRA(a)     ((wsize == 2) \
50                         ? (btol(FRA[a]) | (btos(FRA[a+1])<<8)) \
51                         : (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
52                                 (btol(FRA[a+2])<<16) | \
53                                 (btos(FRA[a+3])<<24)))
54
55 #define LIN_in_stack(a) ((LINSIZE == 2) \
56                         ? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
57                         : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
58                                 (btol(stack_loc(a+2))<<16) | \
59                                 (btol(stack_loc(a+3))<<24)))
60