systems.inc 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. {
  2. Copyright (c) 1998-2008 by Florian Klaempfl
  3. This include contains the enumeration
  4. information about the target systems supported
  5. (these are not processor specific)
  6. This program is free software; you can redistribute it and/or modify
  7. iu under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2 of the License, or
  9. (at your option) any later version.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14. You should have received a copy of the GNU General Public License
  15. along with this program; if not, write to the Free Software
  16. Foundation, Inc., 675 Mass Ave, Cambridge- MA 02139, USA.
  17. ****************************************************************************
  18. }
  19. type
  20. tendian = (endian_little,endian_big);
  21. (*
  22. IMPORTANT NOTE:
  23. The value of this enumeration is stored in PPU files.
  24. Therefore adding new CPU targets should not change the
  25. values of the pre-existing targets. (CEC)
  26. FURTHERMORE : Make sure that this branch values, are
  27. consistant with the main branch version always.
  28. *)
  29. tsystemcpu=
  30. (
  31. cpu_no, { 0 }
  32. cpu_i386, { 1 }
  33. cpu_m68k, { 2 }
  34. obsolete_cpu_alpha, { 3 }
  35. cpu_powerpc, { 4 }
  36. cpu_sparc, { 5 }
  37. obsolete_cpu_vm, { 6 }
  38. obsolete_cpu_ia64, { 7 }
  39. cpu_x86_64, { 8 }
  40. cpu_mipseb, { 9 }
  41. cpu_arm, { 10 }
  42. cpu_powerpc64, { 11 }
  43. cpu_avr, { 12 }
  44. cpu_mipsel, { 13 }
  45. cpu_jvm, { 14 }
  46. cpu_i8086, { 15 }
  47. cpu_aarch64, { 16 }
  48. cpu_wasm, { 17 }
  49. cpu_sparc64, { 18 }
  50. cpu_riscv32, { 19 }
  51. cpu_riscv64, { 20 }
  52. cpu_xtensa, { 21 }
  53. cpu_z80 { 22 }
  54. );
  55. tasmmode= (asmmode_none
  56. { standard assembler (cpu dependant) with full parsing }
  57. ,asmmode_standard
  58. ,asmmode_i386_att
  59. ,asmmode_i386_intel
  60. ,asmmode_ppc_gas
  61. ,asmmode_ppc_motorola
  62. ,asmmode_arm_gas
  63. ,asmmode_sparc_gas
  64. ,asmmode_x86_64_gas
  65. ,asmmode_m68k_mot
  66. ,asmmode_x86_64_intel
  67. ,asmmode_x86_64_att
  68. ,asmmode_avr_gas
  69. ,asmmode_i8086_intel
  70. ,asmmode_i8086_att
  71. ,asmmode_arm_gas_unified
  72. ,asmmode_xtensa_gas
  73. );
  74. (* IMPORTANT NOTE:
  75. the integer value of this enum is stored in PPU
  76. files to recognize the target, so if you add new targets
  77. allways add them at end PM
  78. FURTHERMORE : Make sure that this branch values are
  79. consistant with the main branch version always. (CEC)
  80. *)
  81. type
  82. tsystem =
  83. (
  84. system_none, { 0 }
  85. obsolete_system_i386_GO32V1,{ 1 }
  86. system_i386_GO32V2, { 2 }
  87. system_i386_linux, { 3 }
  88. system_i386_OS2, { 4 }
  89. system_i386_Win32, { 5 }
  90. system_i386_freebsd, { 6 }
  91. system_m68k_Amiga, { 7 }
  92. system_m68k_Atari, { 8 }
  93. system_m68k_macos, { 9 }
  94. system_m68k_linux, { 10 }
  95. system_m68k_PalmOS, { 11 }
  96. obsolete_system_alpha_linux,{ 12 }
  97. system_powerpc_linux, { 13 }
  98. system_powerpc_macos, { 14 }
  99. system_i386_solaris, { 15 }
  100. system_i386_beos, { 16 }
  101. system_i386_netbsd, { 17 }
  102. system_m68k_netbsd, { 18 }
  103. system_i386_Netware, { 19 }
  104. obsolete_system_i386_qnx, { 20 }
  105. system_i386_wdosx, { 21 }
  106. system_sparc_solaris, { 22 }
  107. system_sparc_linux, { 23 }
  108. system_i386_openbsd, { 24 }
  109. obsolete_system_m68k_openbsd,{ 25 }
  110. system_x86_64_linux, { 26 }
  111. system_powerpc_darwin, { 27 }
  112. system_i386_EMX, { 28 }
  113. system_powerpc_netbsd, { 29 }
  114. system_powerpc_openbsd, { 30 }
  115. system_arm_linux, { 31 }
  116. system_i386_watcom, { 32 }
  117. system_powerpc_MorphOS, { 33 }
  118. system_x86_64_freebsd, { 34 }
  119. system_i386_netwlibc, { 35 }
  120. system_powerpc_Amiga, { 36 }
  121. system_x86_64_win64, { 37 }
  122. system_arm_wince, { 38 }
  123. obsolete_system_ia64_win64,{ 39 }
  124. system_i386_wince, { 40 }
  125. system_x86_6432_linux, { 41 }
  126. system_arm_gba, { 42 }
  127. system_powerpc64_linux, { 43 }
  128. system_i386_darwin, { 44 }
  129. system_arm_palmos, { 45 }
  130. system_powerpc64_darwin, { 46 }
  131. system_arm_nds, { 47 }
  132. system_i386_embedded, { 48 }
  133. system_m68k_embedded, { 49 }
  134. obsolete_system_alpha_embedded,{ 50 }
  135. system_powerpc_embedded, { 51 }
  136. system_sparc_embedded, { 52 }
  137. obsolete_system_vm_embedded,{ 53 }
  138. obsolete_system_ia64_embedded,{ 54 }
  139. system_x86_64_embedded, { 55 }
  140. system_mips_embedded, { 56 }
  141. system_arm_embedded, { 57 }
  142. system_powerpc64_embedded, { 58 }
  143. system_i386_symbian, { 59 }
  144. system_arm_symbian, { 60 }
  145. system_x86_64_darwin, { 61 }
  146. system_avr_embedded, { 62 }
  147. system_i386_haiku, { 63 }
  148. system_arm_darwin, { 64 }
  149. system_x86_64_solaris, { 65 }
  150. system_mipseb_linux, { 66 }
  151. system_mipsel_linux, { 67 }
  152. system_i386_nativent, { 68 }
  153. system_i386_iphonesim, { 69 }
  154. system_powerpc_wii, { 70 }
  155. system_x86_64_openbsd, { 71 }
  156. system_x86_64_netbsd, { 72 }
  157. system_powerpc_aix, { 73 }
  158. system_powerpc64_aix, { 74 }
  159. system_jvm_java32, { 75 }
  160. system_jvm_android32, { 76 }
  161. system_arm_android, { 77 }
  162. system_i386_android, { 78 }
  163. system_i8086_msdos, { 79 }
  164. system_mipsel_android, { 80 }
  165. system_mipseb_embedded, { 81 }
  166. system_mipsel_embedded, { 82 }
  167. system_i386_aros, { 83 }
  168. system_x86_64_aros, { 84 }
  169. system_x86_64_dragonfly, { 85 }
  170. system_aarch64_darwin, { 86 }
  171. system_x86_64_iphonesim, { 87 }
  172. system_aarch64_linux, { 88 }
  173. system_i8086_win16, { 89 }
  174. system_i8086_embedded, { 90 }
  175. system_arm_aros, { 91 }
  176. system_wasm_wasm32, { 92 }
  177. system_sparc64_linux, { 93 }
  178. system_sparc64_solaris, { 94 }
  179. system_arm_netbsd, { 95 }
  180. system_riscv32_linux, { 96 }
  181. system_riscv64_linux, { 97 }
  182. system_riscv64_embedded, { 98 }
  183. system_riscv32_embedded, { 99 }
  184. system_aarch64_android, { 100 }
  185. system_x86_64_android, { 101 }
  186. system_x86_64_haiku, { 102 }
  187. system_xtensa_embedded, { 103 }
  188. system_xtensa_freertos, { 104 }
  189. system_xtensa_linux, { 105 }
  190. system_arm_freertos, { 106 }
  191. system_aarch64_win64, { 107 }
  192. system_z80_embedded, { 108 }
  193. system_z80_zxspectrum { 109 }
  194. );
  195. type
  196. tasm = (as_none
  197. ,as_gas { standard gnu assembler }
  198. ,as_i386_as_aout
  199. ,as_i386_nasmcoff
  200. ,as_i386_nasmwin32
  201. ,as_i386_nasmwdosx
  202. ,as_i386_nasmelf
  203. ,as_i386_nasmobj
  204. ,as_i386_nasmbeos
  205. ,as_i386_tasm
  206. ,as_i386_masm
  207. ,as_i386_wasm
  208. ,as_i386_coff
  209. ,as_i386_pecoff
  210. ,as_i386_elf32
  211. ,as_i386_pecoffwdosx
  212. ,as_m68k_mit
  213. ,as_powerpc_mpw
  214. ,as_darwin
  215. ,as_i386_macho
  216. ,as_x86_64_masm
  217. ,as_x86_64_pecoff
  218. ,as_i386_pecoffwince
  219. ,as_arm_pecoffwince
  220. ,as_x86_64_elf64
  221. ,as_sparc_elf32
  222. ,as_ggas { gnu assembler called "gas" instead of "as" }
  223. ,as_i386_nasmhaiku
  224. ,as_powerpc_vasm
  225. ,as_i386_nlmcoff
  226. ,as_powerpc_xcoff
  227. ,as_jvm_jasmin
  228. ,as_yasm
  229. ,as_i386_nasm
  230. ,as_i386_nasmdarwin
  231. ,as_x86_64_nasm
  232. ,as_x86_64_nasmwin64
  233. ,as_x86_64_nasmelf
  234. ,as_x86_64_nasmdarwin
  235. ,as_i8086_nasm
  236. ,as_i8086_nasmobj
  237. ,as_gas_powerpc_xcoff
  238. ,as_arm_elf32
  239. ,as_i8086_omf
  240. ,as_llvm_llc
  241. ,as_clang
  242. ,as_solaris_as
  243. ,as_m68k_vasm
  244. ,as_m68k_as_aout
  245. ,as_wasm_binaryen
  246. ,as_powerpc_gas_legacy { for systems with very old GAS versions only, which don't support eg. named sections }
  247. ,as_llvm_clang
  248. ,as_clang_gas
  249. ,as_z80asm
  250. ,as_sdcc_sdasz80
  251. );
  252. tlink = (ld_none,
  253. ld_aix, { external linkers (one per OS, handles all CPUs) }
  254. ld_amiga,
  255. ld_aros,
  256. ld_atari,
  257. ld_android,
  258. ld_beos,
  259. ld_bsd,
  260. ld_darwin,
  261. ld_embedded,
  262. ld_emx,
  263. ld_gba,
  264. ld_go32v2,
  265. ld_haiku,
  266. ld_jvm,
  267. ld_linux,
  268. ld_morphos,
  269. ld_mpw,
  270. ld_msdos,
  271. ld_nds,
  272. ld_netwlibc,
  273. ld_netware,
  274. ld_os2,
  275. ld_palmos,
  276. ld_solaris,
  277. ld_watcom,
  278. ld_wdosx,
  279. ld_wii,
  280. ld_windows,
  281. ld_win16,
  282. ld_int_go32v2, { implemented internal linkers }
  283. ld_int_linux,
  284. ld_int_nativent,
  285. ld_int_netware,
  286. ld_int_windows,
  287. ld_int_msdos,
  288. ld_int_win16,
  289. ld_freertos,
  290. ld_zxspectrum
  291. );
  292. tar = (ar_none
  293. ,ar_gnu_ar
  294. ,ar_mpw_ar
  295. ,ar_gnu_ar_scripted
  296. ,ar_gnu_gar
  297. ,ar_watcom_wlib_omf
  298. ,ar_watcom_wlib_omf_scripted
  299. ,ar_sdcc_sdar
  300. ,ar_sdcc_sdar_scripted
  301. );
  302. tres = (res_none
  303. ,res_gnu_windres,res_watcom_wrc_os2
  304. ,res_m68k_palmos,res_m68k_mpw
  305. ,res_powerpc_mpw,res_elf,res_xcoff
  306. ,res_win64_gorc, res_macho, res_ext
  307. ,res_jvm_raw
  308. );
  309. tresinfoflags = (res_external_file,res_arch_in_file_name
  310. ,res_single_file,res_no_compile);
  311. tdbg = (dbg_none
  312. ,dbg_stabs,dbg_stabx,dbg_dwarf2,dbg_dwarf3,dbg_dwarf4,dbg_jasmin
  313. ,dbg_codeview
  314. );
  315. tscripttype = (script_none
  316. ,script_dos,script_unix,script_amiga,
  317. script_mpw,
  318. script_fpcres
  319. );
  320. tabi = (abi_default
  321. ,abi_powerpc_sysv,abi_powerpc_aix,abi_powerpc_darwin,abi_powerpc_elfv2
  322. ,abi_eabi,abi_armeb,abi_eabihf
  323. ,abi_old_win32_gnu
  324. ,abi_aarch64_darwin
  325. ,abi_riscv_hf
  326. { stack is aligned and all room for parameters is reserved on
  327. entry, but depending on the calling convention, the parameters
  328. may still be removed by the callee (and then the stack needs to
  329. be restored by the caller) }
  330. ,abi_i386_dynalignedstack
  331. ,abi_xtensa_windowed
  332. ,abi_xtensa_call0
  333. );
  334. tcgbackend = (
  335. { default FPC code generator }
  336. cg_fpc
  337. { LLVM code generator }
  338. , cg_llvm
  339. );
  340. const
  341. abi_powerpc_elfv1 = abi_powerpc_sysv;