Pristine Ack-5.5
[Ack-5.5.git] / doc / sparc / pics / EM_stack.ours
1 .ps 10
2 .vs 12
3 .PS
4 boxwid = 1.3
5 boxht = 0.25
6 down;
7 box "floating point" "register dump area" ht 0.6
8 box "tmp float store"
9 box "register dump area" ht 0.6
10 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
11 box invis wid 0.3 "%fp" }
12 move .1
13 box dotted "gap"
14 { arrow <- right with .w at last box.e; \
15 box invis wid 0.3 "%LB" }
16 move .1
17 box "locals"
18 box "actual parameter n-1";
19 box "." "." "." ht 0.6;
20 box "actual parameter 0";
21 { arrow <- right with .w at last box.e; \
22 box invis wid 0.3 "%SP" }
23 move 0.1
24 box "large gap" "(>64kb)" ht 1.0
25 box "register dump area" ht 0.6
26 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
27 box invis wid 0.3 "%sp" }
28 move 0.2
29 box invis "\\s+2just before call\\s0"
30 move 1
31 box dotted "gap"
32 box invis "0 or 4 bytes" "for stack alignment" with .w at last box.e
33 box invis height .7 "when gap is 0 bytes," "%fp == %LB" with .n at 2nd last box.s
34 .PF
35 .PS
36 down;
37 move to 2.4,0
38 box "floating point" "register dump area" ht 0.6
39 box "tmp float store"
40 box "register dump area" ht 0.6
41 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
42 box invis wid 0.3 "%fp" }
43 move .1
44 box dotted "gap"
45 { arrow <- right with .w at last box.e; \
46 box invis wid 0.3 "%LB" }
47 move .1
48 box "locals"
49 box "actual parameter n-1";
50 box "." "." "." ht 0.6;
51 box "actual parameter 0";
52 { arrow <- right with .w at last box.e; \
53 box invis wid 0.3 "%SP" }
54 move .1
55 box dotted "gap"
56 move .4
57 box "floating point" "register dump area" ht 0.6
58 box "tmp float store"
59 box "register dump area" ht 0.6
60 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
61 box invis wid 0.3 "%sp" }
62 move 0.2
63 box invis "\\s+2'during' call\\s0"
64 .PF
65 .PS
66 down;
67 move to 4.8,0
68 box "floating point" "register dump area" ht 0.6
69 box "tmp float store"
70 box "register dump area" ht 0.6
71 move .1
72 box dotted "gap"
73 move .1
74 box "locals"
75 box "actual parameter n-1";
76 box "." "." "." ht 0.6;
77 box "actual parameter 0";
78 move .1
79 box dotted "gap"
80 move .4
81 box "floating point" "register dump area" ht 0.6
82 box "tmp float store"
83 box "register dump area" ht 0.6
84 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
85 box invis wid 0.3 "%fp" }
86 move .1
87 box dotted "gap"
88 { arrow <- right with .w at last box.e; \
89 box invis wid 0.3 "%LB" }
90 move .1
91 box "locals"
92 box "actual parameter n-1";
93 box "." "." "." ht 0.6;
94 box "actual parameter 0";
95 { arrow <- right with .w at last box.e; \
96 box invis wid 0.3 "%SP" }
97 move 0.1
98 box "large gap" "(>64kb)" ht 1.0
99 box "register dump area" ht 0.6
100 { arrow <- right with .w at 3/4 <last box.e, last box.se>; \
101 box invis wid 0.3 "%sp" }
102 move 0.2
103 box invis "\\s+2after call\\s0"
104 .PF
105 .ps 12
106 .vs 14