emacs.d/clones/www.sbcl.org/sbcl-internals/Additional-Notes.html

66 lines
2.7 KiB
HTML
Raw Normal View History

2023-01-18 20:30:47 +01:00
<html lang="en">
<head>
<title>Additional Notes - SBCL Internals</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="SBCL Internals">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Calling-Convention.html#Calling-Convention" title="Calling Convention">
<link rel="prev" href="IR2-Conversion.html#IR2-Conversion" title="IR2 Conversion">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is part of the SBCL software system. See the `README'
file for more information.
This manual is in the public domain and is provided with
absolutely no warranty. See the `COPYING' and `CREDITS' files for
more information.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<p>
<a name="Additional-Notes"></a>
Previous:&nbsp;<a rel="previous" accesskey="p" href="IR2-Conversion.html#IR2-Conversion">IR2 Conversion</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Calling-Convention.html#Calling-Convention">Calling Convention</a>
<hr>
</div>
<!-- node-name, next, previous, up -->
<h3 class="section">2.6 Additional Notes</h3>
<p>The low-hanging fruit here is going to be changing every call
and return to use <code>CALL</code> and <code>RETURN</code> instructions
instead of <code>JMP</code> instructions.
<p>A more involved change would be to reduce the number of argument
passing registers from three to two, which may be beneficial in
terms of our quest to free up a GPR for use on Win32 boxes for a
thread structure.
<p>Another possible win could be to store multiple return-values
somewhere other than the stack, such as a dedicated area of the
thread structure. The main concern here in terms of clobbering
would be to make sure that interrupts (and presumably the
internal-error machinery) know to save the area and that the
compiler knows that the area cannot be live across a function
call. Actually implementing this would involve hacking the IR2
conversion, since as it stands now the same argument conventions
are used for both call and return value storage (same TNs).
</body></html>