Show: Delphi C++
Display Preferences

DCC64.EXE, the Delphi 64-bit Command Line Compiler

From RAD Studio
Jump to: navigation, search

Go Up to Command-Line Utilities Index


DCC64.exe compiles Delphi applications that target the 64-bit Windows platform. DCC64 runs on the 32-bit Windows development platform, so using DCC64 is cross-platform application development, even if you are using a 64-bit Windows development system.

Contents

DCC64 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.

Displaying the Help

To display the help for the command-line compiler, run the compiler with the -h switch:

dcc64 -h

64-bit Inline Assembler

DCC64.EXE 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