1 (*******************************************************************
5 * Arithmetic and Vectorial Computations (inline assembly)
6 * This version is used for i386 FreePascal
8 * Copyright 1996 David Turner, Robert Wilhelm and Werner Lemberg
10 * This file is part of the FreeType project, and may only be used
11 * modified and distributed under the terms of the FreeType project
12 * license, LICENSE.TXT. By continuing to use, modify or distribute
13 * this file you indicate that you have read the license and
14 * understand and accept it fully.
16 * NOTES : All vector operations were moved to the interpreter
18 ******************************************************************)
20 (**********************************************************)
22 (* The following routines are inline assembly, they are *)
23 (* thus processor and bitness specific. Replace them *)
24 (* with your own if you want to port the TrueType Engine *)
26 (**********************************************************)
29 procedure Add64( var X, Y, Z : Int64 ); assembler;
51 (**********************************************************)
52 (* 64 Bit Substraction *)
54 procedure Sub64( var X, Y, Z : Int64 ); assembler;
76 (**********************************************************)
77 (* Multiply two Int32 to an Int64 *)
79 procedure MulTo64( X, Y : Int32; var Z : Int64 ); assembler;
96 (**********************************************************)
97 (* Divide an Int64 by an Int32 *)
99 function Div64by32( var X : Int64; Y : Int32 ) : Int32; assembler;
114 procedure DivMod64by32( var X : Int64; Y : Int32; var Q, R : Int32 );