DEADSOFTWARE

6791939b264bf4f872cbfe527daa7af3c98200d9
[d2df-sdl.git] / src / lib / libjit / libjit_types.pas
1 (*
2 * jit.h - General definitions for JIT back-ends.
3 *
4 * Copyright (C) 2004 Southern Storm Software, Pty Ltd.
5 * Copyright (C) 2016 Ketmar Dark
6 *
7 * The libjit library is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * as published by the Free Software Foundation, either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * The libjit library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with the libjit library. If not, see
19 * <http://www.gnu.org/licenses/>.
20 *)
21 unit libjit_types;
23 {$IFDEF WIN32}
24 {$DEFINE MSWINDOWS}
25 {$ENDIF}
27 {$MODE OBJFPC}
28 {$PACKRECORDS C}
29 {$MACRO ON}
31 {$Z4} // Force four-byte enums
33 interface
35 uses
36 libjit;
38 //LIBJIT_LIBNAME = 'libjit.dll';
39 {$IF not DEFINED(MSWINDOWS)}
40 (*const*) var jit_opcodes: packed array [0..JIT_OP_NUM_OPCODES-1] of jit_opcode_info_t; cvar; external LIBJIT_LIBNAME;
42 (*
43 * Pre-defined type descriptors.
44 *)
45 (*const*) var jit_type_void: jit_type_t; cvar; external LIBJIT_LIBNAME;
46 (*const*) var jit_type_sbyte: jit_type_t; cvar; external LIBJIT_LIBNAME;
47 (*const*) var jit_type_ubyte: jit_type_t; cvar; external LIBJIT_LIBNAME;
48 (*const*) var jit_type_short: jit_type_t; cvar; external LIBJIT_LIBNAME;
49 (*const*) var jit_type_ushort: jit_type_t; cvar; external LIBJIT_LIBNAME;
50 (*const*) var jit_type_int: jit_type_t; cvar; external LIBJIT_LIBNAME;
51 (*const*) var jit_type_uint: jit_type_t; cvar; external LIBJIT_LIBNAME;
52 (*const*) var jit_type_nint: jit_type_t; cvar; external LIBJIT_LIBNAME;
53 (*const*) var jit_type_nuint: jit_type_t; cvar; external LIBJIT_LIBNAME;
54 (*const*) var jit_type_long: jit_type_t; cvar; external LIBJIT_LIBNAME;
55 (*const*) var jit_type_ulong: jit_type_t; cvar; external LIBJIT_LIBNAME;
56 (*const*) var jit_type_float32: jit_type_t; cvar; external LIBJIT_LIBNAME;
57 (*const*) var jit_type_float64: jit_type_t; cvar; external LIBJIT_LIBNAME;
58 (*const*) var jit_type_nfloat: jit_type_t; cvar; external LIBJIT_LIBNAME;
59 (*const*) var jit_type_void_ptr: jit_type_t; cvar; external LIBJIT_LIBNAME;
61 (*
62 * Type descriptors for the system "char", "int", "long", etc types.
63 * These are defined to one of the above values.
64 *)
65 (*const*) var jit_type_sys_bool: jit_type_t; cvar; external LIBJIT_LIBNAME;
66 (*const*) var jit_type_sys_char: jit_type_t; cvar; external LIBJIT_LIBNAME;
67 (*const*) var jit_type_sys_schar: jit_type_t; cvar; external LIBJIT_LIBNAME;
68 (*const*) var jit_type_sys_uchar: jit_type_t; cvar; external LIBJIT_LIBNAME;
69 (*const*) var jit_type_sys_short: jit_type_t; cvar; external LIBJIT_LIBNAME;
70 (*const*) var jit_type_sys_ushort: jit_type_t; cvar; external LIBJIT_LIBNAME;
71 (*const*) var jit_type_sys_int: jit_type_t; cvar; external LIBJIT_LIBNAME;
72 (*const*) var jit_type_sys_uint: jit_type_t; cvar; external LIBJIT_LIBNAME;
73 (*const*) var jit_type_sys_long: jit_type_t; cvar; external LIBJIT_LIBNAME;
74 (*const*) var jit_type_sys_ulong: jit_type_t; cvar; external LIBJIT_LIBNAME;
75 (*const*) var jit_type_sys_longlong: jit_type_t; cvar; external LIBJIT_LIBNAME;
76 (*const*) var jit_type_sys_ulonglong: jit_type_t; cvar; external LIBJIT_LIBNAME;
77 (*const*) var jit_type_sys_float: jit_type_t; cvar; external LIBJIT_LIBNAME;
78 (*const*) var jit_type_sys_double: jit_type_t; cvar; external LIBJIT_LIBNAME;
79 (*const*) var jit_type_sys_long_double: jit_type_t; cvar; external LIBJIT_LIBNAME;
81 {$ELSE}
83 { external LIBNAME name 'var_name' would've been more correct here }
84 { because just external is case insensitive, but fuck it }
86 (*const*) var jit_opcodes: packed array [0..JIT_OP_NUM_OPCODES-1] of jit_opcode_info_t; external LIBJIT_LIBNAME;
88 (*
89 * Pre-defined type descriptors.
90 *)
91 (*const*) var jit_type_void: jit_type_t; external LIBJIT_LIBNAME;
92 (*const*) var jit_type_sbyte: jit_type_t; external LIBJIT_LIBNAME;
93 (*const*) var jit_type_ubyte: jit_type_t; external LIBJIT_LIBNAME;
94 (*const*) var jit_type_short: jit_type_t; external LIBJIT_LIBNAME;
95 (*const*) var jit_type_ushort: jit_type_t; external LIBJIT_LIBNAME;
96 (*const*) var jit_type_int: jit_type_t; external LIBJIT_LIBNAME;
97 (*const*) var jit_type_uint: jit_type_t; external LIBJIT_LIBNAME;
98 (*const*) var jit_type_nint: jit_type_t; external LIBJIT_LIBNAME;
99 (*const*) var jit_type_nuint: jit_type_t; external LIBJIT_LIBNAME;
100 (*const*) var jit_type_long: jit_type_t; external LIBJIT_LIBNAME;
101 (*const*) var jit_type_ulong: jit_type_t; external LIBJIT_LIBNAME;
102 (*const*) var jit_type_float32: jit_type_t; external LIBJIT_LIBNAME;
103 (*const*) var jit_type_float64: jit_type_t; external LIBJIT_LIBNAME;
104 (*const*) var jit_type_nfloat: jit_type_t; external LIBJIT_LIBNAME;
105 (*const*) var jit_type_void_ptr: jit_type_t; external LIBJIT_LIBNAME;
107 (*
108 * Type descriptors for the system "char", "int", "long", etc types.
109 * These are defined to one of the above values.
110 *)
111 (*const*) var jit_type_sys_bool: jit_type_t; external LIBJIT_LIBNAME;
112 (*const*) var jit_type_sys_char: jit_type_t; external LIBJIT_LIBNAME;
113 (*const*) var jit_type_sys_schar: jit_type_t; external LIBJIT_LIBNAME;
114 (*const*) var jit_type_sys_uchar: jit_type_t; external LIBJIT_LIBNAME;
115 (*const*) var jit_type_sys_short: jit_type_t; external LIBJIT_LIBNAME;
116 (*const*) var jit_type_sys_ushort: jit_type_t; external LIBJIT_LIBNAME;
117 (*const*) var jit_type_sys_int: jit_type_t; external LIBJIT_LIBNAME;
118 (*const*) var jit_type_sys_uint: jit_type_t; external LIBJIT_LIBNAME;
119 (*const*) var jit_type_sys_long: jit_type_t; external LIBJIT_LIBNAME;
120 (*const*) var jit_type_sys_ulong: jit_type_t; external LIBJIT_LIBNAME;
121 (*const*) var jit_type_sys_longlong: jit_type_t; external LIBJIT_LIBNAME;
122 (*const*) var jit_type_sys_ulonglong: jit_type_t; external LIBJIT_LIBNAME;
123 (*const*) var jit_type_sys_float: jit_type_t; external LIBJIT_LIBNAME;
124 (*const*) var jit_type_sys_double: jit_type_t; external LIBJIT_LIBNAME;
125 (*const*) var jit_type_sys_long_double: jit_type_t; external LIBJIT_LIBNAME;
127 {$ENDIF}
130 implementation
133 end.