The register keyword is used for compatibility with Delphi. In version 1.0.x of the compiler, this directive has no effect on the generated code. As of the 1.9.X versions, this directive is supported. For the Intel i386 platform, the first three arguments are passed in registers EAX, EDX and ECX. For other platforms, this keyword has no effect, the default platform ABI calling convention is used. In general, the use of this directive is not recommended, unless you know what you’re doing.