1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-02 02:10:19 +02:00

refine ludovic's doc patch

git-archimport-id: bonzini@gnu.org--2004b/lightning--stable--1.2--patch-51
This commit is contained in:
Paolo Bonzini 2006-11-23 09:06:07 +00:00
parent 67d0c9a3f1
commit 36a3ae9058

View file

@ -100,20 +100,24 @@ preserved across function calls (@code{V0}, @code{V1} and
@code{R2}). Six registers are not very much, but this
restriction was forced by the need to target CISC architectures
which, like the x86, are poor of registers; anyway, backends can
specify the actual number of available caller- and callee-save
registers with the macros @code{JIT_R_NUM} and @code{JIT_V_NUM}.
specify the actual number of available registers with the macros
@code{JIT_R_NUM} (for caller-save registers) and @code{JIT_V_NUM}
(for callee-save registers).
In addition, there is a special @code{RET} register which contains the
return value of the current function (@emph{not} the return value of
callees---use the @code{retval} instruction for this). You should
In addition, there is a special @code{RET} register which contains
the return value of the current function (@emph{not} the return value
of callees---use the @code{retval} instruction for this). You should
always remember, however, that writing this register could overwrite
either a general-purpose register or an incoming parameter, depending
on the architecture.
There are at least six floating-point registers, named @code{FPR0} to
@code{FPR5}. These are separate from the integer registers on
all the supported architectures; on Intel architectures, the
register stack is mapped to a flat register file.
@code{FPR5}. These are caller-save and are separate from the integer
registers on all the supported architectures; on Intel architectures,
the register stack is mapped to a flat register file. As for the
integer registers, the macro @code{JIT_FPR_NUM} yields the number of
floating-point registers, and the special @code{FPRET} register contains
the return value of the current function.
The complete instruction set follows; as you can see, most non-memory
operations only take integers, long integers (either signed or