@@ -12141,11 +12141,6 @@ \chapter{Tuples and Garbage Collection}
12141
12141
\index{subject}{vector}
12142
12142
\setcounter{footnote}{0}
12143
12143
12144
- %% \margincomment{\scriptsize To do: Flesh out this chapter, e.g., make sure
12145
- %% all the IR grammars are spelled out! \\ --Jeremy}
12146
- %% \margincomment{\scriptsize Be more explicit about how to deal with
12147
- %% the root stack. \\ --Jeremy}
12148
-
12149
12144
In this chapter we study the implementation of tuples\racket{, called
12150
12145
vectors in Racket}. A tuple is a fixed-length sequence of elements
12151
12146
in which each element may have a different type.
@@ -13552,12 +13547,16 @@ \section{Select Instructions and the \LangXGlobal{} Language}
13552
13547
13553
13548
\newcommand{\GrammarXGlobal}{
13554
13549
\begin{array}{lcl}
13550
+ \Instr &::=& \key{andq}~\Arg\key{,}~\Arg
13551
+ \MID \key{sarq}~\Arg\key{,}~\Arg \\
13555
13552
\Arg &::=& \itm{label} \key{(\%rip)}
13556
13553
\end{array}
13557
13554
}
13558
13555
13559
13556
\newcommand{\ASTXGlobalRacket}{
13560
13557
\begin{array}{lcl}
13558
+ \Instr &::=& \BININSTR{\scode{andq}}{\Arg}{\Arg} \MID
13559
+ \BININSTR{\scode{sarq}}{\Arg}{\Arg} \\
13561
13560
\Arg &::=& \GLOBAL{\itm{label}}
13562
13561
\end{array}
13563
13562
}
@@ -13631,8 +13630,9 @@ \section{Select Instructions and the \LangXGlobal{} Language}
13631
13630
13632
13631
The definitions of the concrete and abstract syntax of the
13633
13632
\LangXGlobal{} language are shown in figures~\ref{fig:x86-2-concrete}
13634
- and \ref{fig:x86-2}. It differs from \LangXIf{} only in the addition
13635
- of global variables.
13633
+ and \ref{fig:x86-2}. It differs from \LangXIf{} with the addition
13634
+ of global variables and the instructions needed to compile
13635
+ tuple length: \code{andq} and \code{sarq}.
13636
13636
%
13637
13637
Figure~\ref{fig:select-instr-output-gc} shows the output of the
13638
13638
\code{select\_instructions} pass on the running example.
0 commit comments