|
|
|
@ -539,8 +539,20 @@ $1 = 84
@@ -539,8 +539,20 @@ $1 = 84
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
|
|
\section{Unwinding data synthesis from assembly} |
|
|
|
|
|
|
|
|
|
\begin{frame}{TODO} |
|
|
|
|
\todo{} |
|
|
|
|
\begin{frame}{What have we got so far?} |
|
|
|
|
We now want to \alert{synthesize unwinding data}. \pause{}That means |
|
|
|
|
\alert{forgetting the blue part of the previous schemes}. |
|
|
|
|
|
|
|
|
|
\begin{itemize}[<+->] |
|
|
|
|
\item Upon entering a function, we know (ABI) |
|
|
|
|
\[ \cfa = \reg{rsp} - 8 |
|
|
|
|
\qquad \ra = \cfa + 8 \] |
|
|
|
|
\item For each instruction, we know \alert{how it changes \cfa}. |
|
|
|
|
\item We assume \alert{\ra{} constant wrt. \cfa}. |
|
|
|
|
\begin{itemize} |
|
|
|
|
\item[$\leadsto$] only \cfa{} tracking matters (for unwinding) |
|
|
|
|
\end{itemize} |
|
|
|
|
\end{itemize} |
|
|
|
|
\end{frame} |
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
|
|