|
@@ -5774,12 +5774,12 @@ the caller and callee's frame overlap in memory. As we begin to copy
|
|
|
the arguments from their sources in the caller's frame, the target
|
|
|
locations in the callee's frame might overlap with the sources for
|
|
|
later arguments! We solve this problem by not using the stack for
|
|
|
-paramter passing but instead use the heap, as we describe in the next
|
|
|
-section.
|
|
|
+parameter passing but instead use the heap, as we describe in the
|
|
|
+Section~\ref{sec:limit-functions-r4}.
|
|
|
|
|
|
-As briefly mentioned above, for a tail call we pop the caller's frame
|
|
|
-prior to making the tail call. The instructions for popping a frame
|
|
|
-are the instructions that we usually place in the conclusion of a
|
|
|
+As mentioned above, for a tail call we pop the caller's frame prior to
|
|
|
+making the tail call. The instructions for popping a frame are the
|
|
|
+instructions that we usually place in the conclusion of a
|
|
|
function. Thus, we also need to place such code immediately before
|
|
|
each tail call. These instructions include restoring the callee-saved
|
|
|
registers, so it is good that the argument passing registers are all
|