Start synthesis §
This commit is contained in:
parent
751ff79d67
commit
e74efb43d5
2 changed files with 16 additions and 2 deletions
16
slides.tex
16
slides.tex
|
@ -539,8 +539,20 @@ $1 = 84
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Unwinding data synthesis from assembly}
|
\section{Unwinding data synthesis from assembly}
|
||||||
|
|
||||||
\begin{frame}{TODO}
|
\begin{frame}{What have we got so far?}
|
||||||
\todo{}
|
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}
|
\end{frame}
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
%% DWARF semantics
|
%% DWARF semantics
|
||||||
\newcommand{\dwcfa}[1]{\texttt{DW\_CFA\_#1}}
|
\newcommand{\dwcfa}[1]{\texttt{DW\_CFA\_#1}}
|
||||||
\newcommand{\reg}[1]{\%#1}
|
\newcommand{\reg}[1]{\%#1}
|
||||||
|
\newcommand{\cfa}{\texttt{CFA}}
|
||||||
|
\newcommand{\ra}{\texttt{RA}}
|
||||||
|
|
||||||
\newcommand{\DWARF}{\operatorname{DWARF}}
|
\newcommand{\DWARF}{\operatorname{DWARF}}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue