Show: Object Pascal C++
Display Preferences


From Appmethod Topics
Jump to: navigation, search

Go Up to Object Pascal Toolchains

DCC64 is the Appmethod Object Pascal compiler for 64-bit Windows.

Output Files

File Type File Extension File Format
Executable .exe PE32+
Shared Library .dll PE32+
Static Library .lib OMF
Object .obj OMF


  • Native integer types are 64-bit.
  • Pointers are 64-bit.
  • Dynamic arrays have 64-bit indexes.
  • Floating-point operations can be performed in single or double precision. Extended precision floating-point operations are not supported.
  • SHL/SHR behavior: 32-bit integers are shifted in 32-bit space, 64-bit integers are shifted in 64-bit space.
  • Mixed Pascal/assembly code is not supported.

64-bit Inline Assembler

DCC64 supports 64-bit assembly code, with some limitations. Routines must be written completely in Object Pascal or in assembler (no mixing is allowed).

Pseudo-ops are provided to manage the stack. These are described in the following table.

Pseudo-op Description


Use this pseudo-instruction when calling external functions. This pseudo-instruction maps the function parameters in accordance with the x64 calling convention. When used, a pseudo-variable, @params, is available for passing stack parameters to called functions. Use @params as a byte array where the first stack parameter is @params[32], locations 0-31 represent the 4 register parameters.


Generates code to save and restore the non-volatile general purpose register in prologue and epilogue.


Has the same functionality as .PUSHNV REG, except that .SAVENV XMM# is for non-volatile XMM registers.


Forcibly disables the generation of a stack frame as long as there are no local variables declared and the parameter count is less than 4. Use only for "leaf" functions.

See Also

Personal tools
In other languages