|
13 | 13 | \frameLocal{1}{\frameMainLocalOne}
|
14 | 14 | \end{funFrame}
|
15 | 15 |
|
16 |
| - |
17 | 16 | \ifthenelse{\step<13}{
|
18 | 17 | \trapFrame[name=ExnC,handler=\trapExnCHandler,next=\trapExnCNext,color=WildStrawberry]{\trapExnCBegin}
|
19 | 18 | \coordAtRight{exnCtrap}{\exnHandlerAfterExnCTrap}
|
|
47 | 46 | \frameLocal{1}{\frameDefinitelyLocalOne}
|
48 | 47 | \end{funFrame}
|
49 | 48 |
|
50 |
| -\begin{funFrame}[name=raise,color=SeaGreen]{\frameCamlRaiseExnBegin}{\frameCamlRaiseExnEnd} |
| 49 | +\begin{funFrame}[color=SeaGreen]{\frameCamlRaiseExnBegin}{\frameCamlRaiseExnEnd} |
51 | 50 | \funReturnAddr{\frameCamlRaiseExnRetaddr}
|
52 | 51 | \end{funFrame}
|
53 | 52 | }{}
|
|
66 | 65 | }{}
|
67 | 66 |
|
68 | 67 |
|
69 |
| -\coordinate (bottom) at ($(stackBL) + (0,-0.5)$); |
| 68 | +\coordinate (bottom) at ($(stackBL) + (0,-0.25)$); |
70 | 69 |
|
71 | 70 |
|
72 |
| -\ifthenelse{\step=1}{ |
| 71 | +\ifthenelse{\step=1 \or \step=2}{ |
73 | 72 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{}{0}
|
74 | 73 | \draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnAtrap.east);
|
75 | 74 | }{}
|
|
90 | 89 | \draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnCtrap.east);
|
91 | 90 | }{}
|
92 | 91 |
|
93 |
| -\ifthenelse{\step>1 \and \step<5}{ |
94 |
| -\showRegister{sp}{\stashBacktraceArgSPvA} |
95 |
| -\showRegister{trapsp}{\stashBacktraceArgTrapSPvA} |
96 |
| -}{} |
97 |
| - |
98 | 92 | \ifthenelse{\step=2}{
|
99 |
| -\domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{}{0} |
| 93 | +\showRegister{sp}{\stashBacktraceArgSPvA} |
100 | 94 | }{}
|
101 | 95 |
|
102 | 96 | \ifthenelse{\step=3}{
|
103 | 97 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{\nextFrameDescrPCvA}{1}
|
104 |
| -\showRegister[color=OrangeRed,offset=-0.5]{sp}{\nextFrameDescrSPvA} |
| 98 | +\showRegister{sp}{\nextFrameDescrSPvA} |
105 | 99 | }{}
|
106 | 100 |
|
107 | 101 | \ifthenelse{\step=4}{
|
108 | 102 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{\nextFrameDescrPCvB}{2}
|
109 |
| -\showRegister[color=OrangeRed,offset=-0.8]{sp}{\nextFrameDescrSPvB} |
| 103 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvA} |
| 104 | +\showRegister[offset=-0.8]{sp}{\nextFrameDescrSPvB} |
110 | 105 | }{}
|
111 | 106 |
|
| 107 | +% Drawing order matter for z-index trapsp/sp |
| 108 | +\ifthenelse{\step>1 \and \step<5}{ |
| 109 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvA} |
| 110 | +\showRegister{pc}{\frameCamlRaiseExnEnd} |
| 111 | +}{} |
112 | 112 |
|
113 |
| -\ifthenelse{\step>6 \and \step<10}{ |
114 |
| -\showRegister{sp}{\stashBacktraceArgSPvB} |
115 |
| -\showRegister{trapsp}{\stashBacktraceArgTrapSPvB} |
| 113 | +\ifthenelse{\step>5 \and \step<10}{ |
| 114 | +\draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnBtrap.east); |
116 | 115 | }{}
|
117 | 116 |
|
118 | 117 | \ifthenelse{\step=7}{
|
119 | 118 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvC}{3}
|
120 |
| -\showRegister[color=OrangeRed,offset=-0.5]{sp}{\nextFrameDescrSPvC} |
| 119 | +\showRegister[opacity=0.25]{sp}{\stashBacktraceArgSPvB} |
| 120 | +\showRegister{sp}{\nextFrameDescrSPvC} |
121 | 121 | }{}
|
122 | 122 |
|
123 | 123 | \ifthenelse{\step=8}{
|
124 | 124 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvD}{4}
|
125 |
| -\showRegister[color=OrangeRed]{sp}{\nextFrameDescrSPvD} |
| 125 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvC} |
| 126 | +\showRegister{sp}{\nextFrameDescrSPvD} |
126 | 127 | }{}
|
127 | 128 |
|
128 | 129 | \ifthenelse{\step=9}{
|
129 | 130 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvE}{5}
|
130 |
| -\showRegister[color=OrangeRed,offset=-0.8]{sp}{\nextFrameDescrSPvE} |
| 131 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvD} |
| 132 | +\showRegister[offset=-0.8]{sp}{\nextFrameDescrSPvE} |
| 133 | +}{} |
| 134 | + |
| 135 | +% Drawing order matter for z-index trapsp/sp |
| 136 | +\ifthenelse{\step>6 \and \step<10}{ |
| 137 | +\showRegister{pc}{\frameCamlReraiseExnEndvB} |
| 138 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvB} |
131 | 139 | }{}
|
132 | 140 |
|
133 | 141 |
|
134 | 142 | \ifthenelse{\step>10 \and \step<13}{
|
135 |
| -\showRegister[offset=-0.5]{trapsp}{\stashBacktraceArgTrapSPvC} |
136 |
| -\showRegister{sp}{\stashBacktraceArgSPvC} |
| 143 | +\draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnCtrap.east); |
137 | 144 | }{}
|
138 | 145 |
|
139 | 146 | \ifthenelse{\step=12}{
|
140 | 147 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvB}{\nextFrameDescrPCvF}{\stashBacktraceBacktracePosvC}
|
141 | 148 | }{}
|
142 | 149 |
|
| 150 | +% Drawing order matter for z-index trapsp/sp |
| 151 | +\ifthenelse{\step>10 \and \step<13}{ |
| 152 | +\showRegister{pc}{\frameCamlReraiseExnEndvC} |
| 153 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvC} |
| 154 | +}{} |
| 155 | + |
143 | 156 |
|
144 | 157 | \end{stackDiagram}
|
145 | 158 | \end{tikzpicture}
|
0 commit comments