mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 08:49:25 +02:00
* assembler keyword update
This commit is contained in:
parent
76fd06ef6d
commit
de9ddbbc7b
28
docs/ref.tex
28
docs/ref.tex
@ -1089,25 +1089,23 @@ as of version 0.9.7. This permits the code generator to make a number
|
|||||||
of code generation optimizations.
|
of code generation optimizations.
|
||||||
|
|
||||||
The code generator does not generate any stack frame (entry and exit
|
The code generator does not generate any stack frame (entry and exit
|
||||||
code for the routine) if it contains no local variables. In the case
|
code for the routine) if it contains no local variables and no
|
||||||
of functions, ordinal values must be returned in the accumulator. In
|
parameters. In the case of functions, ordinal values must be returned
|
||||||
the case of floating point values, these depend on the target processor
|
in the accumulator. In the case of floating point values, these depend
|
||||||
and emulation options.
|
on the target processor and emulation options.
|
||||||
|
|
||||||
\emph{ Remark: } Before version 0.99.1, \fpc did not support
|
\emph{ Remark: } Before version 0.99.1, \fpc did not support
|
||||||
reference to variables by their names in the assembler parts of your code.
|
reference to variables by their names in the assembler parts of your code.
|
||||||
|
|
||||||
\emph{ Remark: } Currently, the \var{Assembler} directive has not the
|
\emph{ Remark: } From version 0.99.1 to 0.99.5 (\emph{excluding}
|
||||||
same effect as in Turbo Pascal, so beware! In \fpc, parameters are
|
FPC 0.99.5a), the \var{Assembler} directive did not have the
|
||||||
treated normally, which is not the case in Turbo Pascal. Furthermore,
|
same effect as in Turbo Pascal, so beware! The stack frame would be
|
||||||
the stack frame will be omitted if there are no local variables, in this
|
omitted if there were no local variables, in this case if the assembly
|
||||||
case if the assembly routine has any parameters, they will be referenced
|
routine had any parameters, they would be referenced directly via the stack
|
||||||
directly via the stack pointer. This is \em{ NOT} like Turbo Pascal where
|
pointer. This was \emph{ NOT} like Turbo Pascal where the stack frame is only
|
||||||
the stack frame is only omitted if there are no parameters \em{ and } no
|
omitted if there are no parameters \emph{ and } no local variables. As
|
||||||
local variables. Therefore, if your assembly routines will modify the stack
|
stated earlier, starting from version 0.99.5a, \fpc now has the same
|
||||||
pointer, such as when pushing or popping values on the stack, the
|
behaviour as Turbo Pascal.
|
||||||
\var{Assembler} keyword should not be used. Instead, use a normal procedure
|
|
||||||
with \var{Asm} blocks.
|
|
||||||
|
|
||||||
\section{Modifiers}
|
\section{Modifiers}
|
||||||
\fpc doesn't support all Turbo Pascal modifiers, but
|
\fpc doesn't support all Turbo Pascal modifiers, but
|
||||||
|
Loading…
Reference in New Issue
Block a user