Show: Delphi C++
Display Preferences

DCC64

From RAD Studio
Jump to: navigation, search

Go Up to Delphi Toolchains


DCC64 is the RAD Studio Delphi 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

Features

  • 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 Delphi 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

.PARAMS#

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.

.PUSHNV REG

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

.SAVENV XMM#

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

.NOFRAME

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
Previous Versions
Assistance