|
@@ -9779,7 +9779,8 @@ Next consider the cases for equality comparisons. Translating this
|
|
operation to x86 is slightly involved due to the unusual nature of the
|
|
operation to x86 is slightly involved due to the unusual nature of the
|
|
\key{cmpq} instruction that we discussed in section~\ref{sec:x86-if}.
|
|
\key{cmpq} instruction that we discussed in section~\ref{sec:x86-if}.
|
|
We recommend translating an assignment with an equality on the
|
|
We recommend translating an assignment with an equality on the
|
|
-right-hand side into a sequence of three instructions. \\
|
|
|
|
|
|
+right-hand side into a sequence of three instructions. Let $\Arg_1$
|
|
|
|
+be the translation of $\Atm_1$ to x86 and likewise for $\Arg_2$.\\
|
|
\begin{tabular}{lll}
|
|
\begin{tabular}{lll}
|
|
\begin{minipage}{0.4\textwidth}
|
|
\begin{minipage}{0.4\textwidth}
|
|
$\CASSIGN{\Var}{ \LP\CEQ{\Atm_1}{\Atm_2} \RP }$
|
|
$\CASSIGN{\Var}{ \LP\CEQ{\Atm_1}{\Atm_2} \RP }$
|
|
@@ -9809,7 +9810,8 @@ A \key{goto} statement becomes a jump instruction.
|
|
%
|
|
%
|
|
An \key{if} statement becomes a compare instruction followed by a
|
|
An \key{if} statement becomes a compare instruction followed by a
|
|
conditional jump (for the \emph{then} branch), and the fall-through is to
|
|
conditional jump (for the \emph{then} branch), and the fall-through is to
|
|
-a regular jump (for the \emph{else} branch).\\
|
|
|
|
|
|
+a regular jump (for the \emph{else} branch). Again, $\Arg_1$ and $\Arg_2$
|
|
|
|
+are the translations of $\Atm_1$ and $\Atm_2$, respectively.\\
|
|
\begin{tabular}{lll}
|
|
\begin{tabular}{lll}
|
|
\begin{minipage}{0.4\textwidth}
|
|
\begin{minipage}{0.4\textwidth}
|
|
\begin{lstlisting}
|
|
\begin{lstlisting}
|