Chapter 6
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 Pascal created code blocks.

 6.1 Register Conventions
  6.1.1 accumulator register
  6.1.2 accumulator 64-bit register
  6.1.3 float result register
  6.1.4 self register
  6.1.5 frame pointer register
  6.1.6 stack pointer register
  6.1.7 scratch registers
  6.1.8 Processor mapping of registers
 6.2 Name mangling
  6.2.1 Mangled names for data blocks
  6.2.2 Mangled names for code blocks
  6.2.3 Modifying the mangled names
 6.3 Calling mechanism
 6.4 Nested procedure and functions
 6.5 Constructor and Destructor calls
  6.5.1 objects
  6.5.2 classes
 6.6 Entry and exit code
  6.6.1 Intel 80x86 standard routine prologue / epilogue
  6.6.2 Motorola 680x0 standard routine prologue / epilogue
 6.7 Parameter passing
  6.7.1 Parameter alignment
 6.8 Stack limitations