Sign in Join
FPDoc Onlineexperiment

Code issues

This chapter gives detailed information on the generated code by Free Pascal. It can be useful to write external object files which will be linked to Free Pascalcreated code blocks.

  1. Register ConventionsThe compiler has different register conventions, depending on the target processor used; some of the registers have specific uses during code generation. The fo
  2. Name manglingContrary to most C compilers and assemblers, all labels generated to pascal variables and routines have mangled names 5 . This is done so that the compiler can
  3. Calling mechanismBy default, the calling mechanism the compiler uses on I386 is register , that is, the compiler will try to pass as many parameters as possible by storing them
  4. Nested procedure and functionsWhen a routine is declared within the scope of a procedure or function, it is said to be nested. In this case, an additional invisible parameter is passed to th
  5. Constructor and Destructor callsConstructor and destructors have special invisible parameters which are passed to them. These invisible parameters are used internally to instantiate the object
  6. Entry and exit codeEach Pascal procedure and function begins and ends with standard epilog and prolog code. Intel 80x86 standard routine prolog / epilog Standard entry code for pr
  7. Parameter passingWhen a function or procedure is called, then the following is done by the compiler: If there are any parameters to be passed to the procedure, they are stored i
  8. Stack limitationsCertain processors have limitations on the size of the parameters and local variables in routines. This is shown in table 6.6 . Maximum limits for processors Pr

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.