* assembler keyword update

This commit is contained in:
carl 1998-08-12 12:11:53 +00:00
parent 76fd06ef6d
commit de9ddbbc7b

View File

@ -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