/usr/share/doc/sbcl/sbcl-internals/Additional-Notes.html is in sbcl-doc 2:1.4.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- 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. -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Additional Notes (SBCL Internals)</title>
<meta name="description" content="Additional Notes (SBCL Internals)">
<meta name="keywords" content="Additional Notes (SBCL Internals)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Calling-Convention.html#Calling-Convention" rel="up" title="Calling Convention">
<link href="Discriminating-Functions.html#Discriminating-Functions" rel="next" title="Discriminating Functions">
<link href="IR2-Conversion.html#IR2-Conversion" rel="prev" title="IR2 Conversion">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Additional-Notes"></a>
<div class="header">
<p>
Previous: <a href="IR2-Conversion.html#IR2-Conversion" accesskey="p" rel="prev">IR2 Conversion</a>, Up: <a href="Calling-Convention.html#Calling-Convention" accesskey="u" rel="up">Calling Convention</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<a name="Additional-Notes-1"></a>
<h3 class="section">2.6 Additional Notes</h3>
<p>The low-hanging fruit 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 which is partly done on x86oids: a trampoline is
<code>CALL</code>ed and that <code>JMP</code>s to the target which is sufficient
to negate (most of?) the penalty.
</p>
<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>
<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).
</p>
</body>
</html>
|