|
@@ -25,7 +25,7 @@
|
|
|
|
|
|
\def\racketEd{0}
|
|
|
\def\pythonEd{1}
|
|
|
-\def\edition{1}
|
|
|
+\def\edition{0}
|
|
|
|
|
|
% material that is specific to the Racket edition of the book
|
|
|
\newcommand{\racket}[1]{{\if\edition\racketEd{#1}\fi}}
|
|
@@ -2303,8 +2303,10 @@ integer constant (called an \emph{immediate value}\index{subject}{immediate
|
|
|
\Instr &::=& \key{addq} \; \Arg\key{,} \Arg \MID
|
|
|
\key{subq} \; \Arg\key{,} \Arg \MID
|
|
|
\key{negq} \; \Arg \MID \key{movq} \; \Arg\key{,} \Arg \MID \\
|
|
|
- && \key{callq} \; \mathit{label} \MID
|
|
|
- \key{pushq}\;\Arg \MID \key{popq}\;\Arg \MID \key{retq} \MID \key{jmp}\,\itm{label} \\
|
|
|
+ && \key{pushq}\;\Arg \MID \key{popq}\;\Arg \MID
|
|
|
+ \key{callq} \; \mathit{label} \MID
|
|
|
+ \key{retq} \MID
|
|
|
+ \key{jmp}\,\itm{label} \MID \\
|
|
|
&& \itm{label}\key{:}\; \Instr \\
|
|
|
\LangXIntM{} &::= & \key{.globl main}\\
|
|
|
& & \key{main:} \; \Instr\ldots
|
|
@@ -2570,10 +2572,12 @@ register allocation (Chapter~\ref{ch:register-allocation-Lvar}).
|
|
|
\MID \DEREF{\Reg}{\Int} \\
|
|
|
\Instr &::=& \BININSTR{\code{addq}}{\Arg}{\Arg}
|
|
|
\MID \BININSTR{\code{subq}}{\Arg}{\Arg} \\
|
|
|
- &\MID& \BININSTR{\code{movq}}{\Arg}{\Arg}
|
|
|
+ &\MID& \BININSTR{\code{movq}}{\Arg}{\Arg}
|
|
|
\MID \UNIINSTR{\code{negq}}{\Arg}\\
|
|
|
- &\MID& \CALLQ{\itm{label}}{\itm{int}} \MID \RETQ{}
|
|
|
- \MID \PUSHQ{\Arg} \MID \POPQ{\Arg} \MID \JMP{\itm{label}} \\
|
|
|
+ &\MID& \PUSHQ{\Arg} \MID \POPQ{\Arg} \\
|
|
|
+ &\MID& \CALLQ{\itm{label}}{\itm{int}}
|
|
|
+ \MID \RETQ{}
|
|
|
+ \MID \JMP{\itm{label}} \\
|
|
|
\Block &::= & \BLOCK{\itm{info}}{\LP\Instr\ldots\RP} \\
|
|
|
\LangXIntM{} &::= & \XPROGRAM{\itm{info}}{\LP\LP\itm{label} \,\key{.}\, \Block \RP\ldots\RP}
|
|
|
\end{array}
|