Start synthesis §

This commit is contained in:
Théophile Bastian 2018-11-07 08:50:04 +01:00
parent 751ff79d67
commit e74efb43d5
2 changed files with 16 additions and 2 deletions

View file

@ -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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View file

@ -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}}