Commit Graph

15768 Commits

Author SHA1 Message Date
Karoly Balogh
0bb6ab24a2 m68k-atari: regenerated Makefile 2024-01-06 19:36:50 +01:00
Karoly Balogh
2ec9f59b38 m68k-atari: fix installation of sysconts and heaptrc units 2024-01-06 19:36:50 +01:00
Pierre Muller
f510e6f59b Use GetProcAddress to set GetFinalPathNameByHandle function pointer 2024-01-06 17:54:21 +01:00
Pierre Muller
37ffd4051a Add dependency on objpas unit for syscall unit compiled with -dFPC_USE_LIBC 2024-01-06 17:06:51 +01:00
Pierre Muller
7c9cf75418 Fix syscall unit compilation for i386-linux using -dFPC_USE_LIBC 2024-01-06 17:06:51 +01:00
Pierre Muller
2cb7e44a1b Fix compilation of syscall unit for Linux with -dFPC_USE_LIBC option 2024-01-05 17:46:49 +01:00
Sven/Sarah Barth
c11772deca * ensure that the SysCall unit is also usable when FPC_USE_LIBC is defined 2024-01-04 22:26:15 +01:00
Michaël Van Canneyt
a224f8ded7 * Extended RTTI Type info routines and data structures 2024-01-02 07:09:23 +01:00
Michaël Van Canneyt
50d72bb559 * Define RTTI visibilities 2024-01-02 07:09:23 +01:00
Michaël Van Canneyt
c39e51485c * Avoid range error in comparisons 2024-01-02 07:09:20 +01:00
Sven/Sarah Barth
30bf8047aa * ensure that the field and method tables are always accessed with the default alignment 2024-01-02 07:09:20 +01:00
Sven/Sarah Barth
7eea850726 * TVmtFieldEntry.FieldOffset needs to be SizeUInt instead of PtrUInt, so that it works correctly on the various memory models of i8086 as well
+ added test
2024-01-02 07:09:19 +01:00
Sven/Sarah Barth
c74441323a + add descriptive comment regarding the TVmtField* types 2024-01-02 07:09:19 +01:00
Rika Ichinose
9d8b801e4c Improve i386 fpc_shortstr_to_shortstr(), fpc_shortstr_compare(), and add fpc_shortstr_compare_equal(). 2024-01-01 21:12:52 +00:00
Rika Ichinose
fca0ace070 Improve shortstring Pos() and generic fpc_shortstr_compare(). 2024-01-01 21:12:52 +00:00
Rika Ichinose
0d5f7fa66b Increase non-temporal i386 & x64 Fill* thresholds to 4 Mb. 2024-01-01 18:33:33 +00:00
Rika Ichinose
b7d32e4933 ERMSB-aware Fill* for i386. 2024-01-01 18:33:33 +00:00
Rika Ichinose
8310b169b7 Move ERMS branch into a separate function instead of runtime checks of fast_large_repmovstosb. 2023-12-31 09:54:09 +00:00
Rika Ichinose
f14aced9c5 Attempt to ERMS backward i386 ‘Move’s. 2023-12-31 09:54:09 +00:00
marcoonthegit
95dce3c5a8 * 2023-12-28 19:43:34 +01:00
Karoly Balogh
65234c674a human68k: less fail in regenerating a Makefile 2023-12-23 16:05:32 +01:00
Karoly Balogh
7c3e792bc1 human68k: regenerated Makefile after the previous commit 2023-12-23 15:36:51 +01:00
Karoly Balogh
c38280ef3e human68k: added a totally untested DOS unit to the RTL 2023-12-23 15:36:51 +01:00
Michaël Van Canneyt
ed000e6cd7 * Fix wrong TimeStampToMSecs result on 32-bit. Fixes issue #40522 2023-12-22 11:32:57 +01:00
Michaël Van Canneyt
29e2277d98 * Add CreateAnonymousThread with anonymous procedure 2023-12-18 16:53:14 +01:00
marcoonthegit
d91847f39c * typo fix in previous commit relating to #40558 2023-12-14 09:59:04 +01:00
marcoonthegit
59883da0a0 * fix for drive existence in windows app modus, closes #40558 2023-12-14 09:37:42 +01:00
Rika Ichinose
ecc56d7e68 Attempt to save push/pop ebx on small non-GPR moves. 2023-12-10 13:26:39 +00:00
Rika Ichinose
0750777fc8 Supposedly better fastmove.inc. 2023-12-10 13:26:39 +00:00
Karoly Balogh
2648f8151d human68k: implemented some trivial functions in sysutils 2023-12-08 06:52:01 +01:00
Jonas Maebe
49cb7b2564 LLVM: use llvm.dbg.declare instead of llvm.dbg.addr for variable declarations
Even though it's supposedly deprecated, clang also still uses it and without
the declaration ranges of local variables are sometimes cut off
2023-12-06 22:57:16 +01:00
Karoly Balogh
005cb5914c human68k: implemented do_rename 2023-12-06 04:41:28 +01:00
Karoly Balogh
8ceeb8d165 human68k: pre-fetch the version number of the OS during startup. and store it for easy access 2023-12-06 04:41:28 +01:00
Karoly Balogh
34519c67a1 human68k: implemented do_chdir 2023-12-06 04:41:28 +01:00
Karoly Balogh
14cee4c152 human68k: implemented do_getdir (based on the Atari version) 2023-12-05 11:25:03 +01:00
Karoly Balogh
70839bd7f4 human68k: cosmetics, no functional change 2023-12-05 09:53:42 +01:00
Karoly Balogh
93a257ab29 human68k: try not to nuke immediately during argument parsing, if memory allocation fails 2023-12-05 09:52:52 +01:00
Karoly Balogh
e867fce883 human68k: implemented do_open (based on the Atari version) 2023-12-05 09:49:22 +01:00
Karoly Balogh
1e066ba0bd human68k: one more rework after advices/reports from Pierre Muller, hopefully this fixes all remaning edge cases 2023-12-04 15:37:42 +01:00
Karoly Balogh
5c93f3e271 human68k: also fill the entire args buffer with zeros, for proper last argument termination 2023-12-03 23:49:51 +01:00
florian
3cd2cbcda8 * GetEpochTime (not used though it seems) should return time_t 2023-12-03 23:28:23 +01:00
Karoly Balogh
a009cc5c35 human68k: fixed argv[0] generation, after figuring out that length() is something very different to strlen() 2023-12-03 14:22:53 +01:00
Karoly Balogh
d7812f6c05 human68k: fix zero termination of the last argument 2023-12-03 14:22:53 +01:00
Karoly Balogh
1fdd4f8c90 human68k: actually, the comm field coming from the OS is in ph68kdos_comline format, so use it accordingly 2023-12-03 12:14:22 +01:00
Karoly Balogh
a4c94c8b44 human68k: more work on getting tinyheap right. still doesn't seem to work, sadly, so still disabled 2023-12-03 12:14:22 +01:00
Karoly Balogh
60473c7ead human68k: parse the arguments passed to the program, fill out argc/argv, make ParamCount and ParamStr() to work 2023-12-03 09:54:05 +01:00
Karoly Balogh
0b65c173b8 human68k: disable tinyheap, as there's some memory trashing going on with it, and use the regular one for now 2023-12-03 09:54:05 +01:00
Karoly Balogh
d009941744 human68k: setup the stack, then use setblock to limit the memory usage to the amount we're really using. this frees up RAM, and allows the heap allocator to work. 2023-12-03 09:54:05 +01:00
Karoly Balogh
932849c1bf human68k: refactored some type naming used in the startup code 2023-12-03 09:54:05 +01:00
Karoly Balogh
d85d6b4bac human68k: handle the OS malloc returning errors properly 2023-12-03 09:54:05 +01:00
Karoly Balogh
fef24dabd6 human68k: minimal DOS calls error handling/inoutres mapping 2023-12-03 09:54:05 +01:00
Karoly Balogh
7ecb19f906 human68k: fixed a dumb typo on the bss start calculation. fixes FPC binaries under run68. 2023-12-01 21:03:07 +01:00
Karoly Balogh
42abb3395a human68k: implemented some basic file and I/O handling functions 2023-12-01 04:05:39 +01:00
Karoly Balogh
442e9d2573 human68k: RTL works enough now to run a hello, world! 2023-11-30 23:43:27 +00:00
Karoly Balogh
e55f6dbb08 human68k: actually tell the build system where the rtl directory is 2023-11-30 23:43:27 +00:00
Karoly Balogh
679f2f75b3 human68k: regenerated Makefiles 2023-11-30 23:43:27 +00:00
Karoly Balogh
c4c3c2a7aa human68k: add an RTL skeleton, almost nothing is implemented yet 2023-11-30 23:43:27 +00:00
Karoly Balogh
7bcd8dc883 human68k: have a README for the RTL 2023-11-30 23:43:27 +00:00
Karoly Balogh
cde3dd3a87 m68k: first bit of a Human68k RTL - a very dummy startup code 2023-11-30 23:43:27 +00:00
Michaël Van Canneyt
ff8511f2f1 * Define INVALID_HANDLE_VALUE for Delphi compatibility 2023-11-29 15:03:12 +01:00
Michaël Van Canneyt
7e4aca384f * Some delphi compatibility issues solved (PtrToNil and TGUID operator) 2023-11-29 14:34:27 +01:00
Rika Ichinose
6f8fb64d36 Fix a typo in CompareWord_Plain. 2023-11-28 22:17:20 +00:00
Rika Ichinose
1ec0326995 REP STOS branch for x64 Fill* (only for System V ABI for now). 2023-11-26 15:06:59 +00:00
Rika Ichinose
a4c324ee23 Fill* for x64, physically sharing half of the code with FillChar. 2023-11-26 15:06:59 +00:00
Rika Ichinose
b468793c63 Index/Compare refined by hand instead of mostly being GCC output. 2023-11-21 22:32:16 +00:00
Rika Ichinose
05b7ebd34e Add Exchange<T> that works like std::exchange in C++. 2023-11-21 04:34:16 +03:00
florian
d287788b57 * patch by Rika to resolves #40531 2023-11-20 23:04:24 +01:00
florian
b164817e18 * check also for XGETBV support, resolves problem reported by Pierre 2023-11-20 22:55:25 +01:00
Pierre Muller
cbcc7c8d35 Revert wrong commit about PIC code for powerpc-linux 2023-11-20 22:08:19 +01:00
Michaël Van Canneyt
2d3cd5bff2 * Add CreateFmt constructor for EInOutArgumentException 2023-11-20 21:45:53 +01:00
Pierre Muller
2ad20b3787 Add pseudo PIC code for 32-bit powerpc, probably wrong :-( 2023-11-20 01:05:11 +03:00
Michaël Van Canneyt
6eac18e8c1 * Add some missing exception classes 2023-11-19 16:20:08 +01:00
florian
5be05044dd * detect avx support also in the i386 system unit 2023-11-18 22:47:47 +01:00
florian
704ad21b23 + centralized cpu capability detection 2023-11-18 22:28:50 +01:00
Rika Ichinose
c07f36b30b Post-modern CompareByte for x86-64/SSE2. 2023-11-16 21:42:51 +00:00
Rika Ichinose
9f491a40c7 Post-modern CompareByte for i386/SSE2. 2023-11-15 22:13:01 +00:00
Michaël Van Canneyt
45021498cf * Add unicode AnsiLastChar overload 2023-11-14 10:26:49 +01:00
Michaël Van Canneyt
ea63bfb32f * Fix string type in AnsiLastChar declaration 2023-11-14 10:23:34 +01:00
Rika Ichinose
78368d4432 Specialized IndexQWord for i386. 2023-11-12 17:00:07 +00:00
ccrause
652f21b656 RP2040 support based on modification by Michael Ring (https://github.com/michael-ring/freepascal). 2023-11-11 17:45:23 +00:00
Michaël Van Canneyt
9f62b33ef0 * Add ChangeFilePath 2023-11-10 18:14:03 +01:00
Michaël Van Canneyt
f0b714d5ad * Add pthread_mutex_timedlock, sem_timedwait may be needed in future 2023-11-10 14:13:23 +01:00
Rika Ichinose
ce1a82a1e4 Add potentially required barriers to TEnconding. 2023-11-10 02:36:04 +03:00
marcoonthegit
b6999496a7 * add pointer variant fo createconsolescreenbuffer, move old VAR definition to redef for compat. 2023-11-09 14:17:14 +01:00
Michaël Van Canneyt
8fb39925eb * Implement ListIndexError 2023-11-09 11:43:19 +01:00
Michaël Van Canneyt
972b961f2b * Add delphi compatible constant 2023-11-09 11:23:13 +01:00
Michaël Van Canneyt
9b9623b289 * Fix wince/nativent compilation 2023-11-09 11:09:07 +01:00
Rika Ichinose
d04547eb83 Replace TEncoding.FLock with interlocked operations. 2023-11-09 09:11:00 +00:00
Michaël Van Canneyt
7bd8ac25d4 * Regen Makefiles with correct defines for some lineinfo units 2023-11-08 18:15:52 +01:00
Michaël Van Canneyt
ebed69e858 * Fix name of lineinfo 2023-11-08 17:12:37 +01:00
Michaël Van Canneyt
ab3b7f8f69 * Do not use namespace prefix for lnfodwarf 2023-11-08 17:08:03 +01:00
Michaël Van Canneyt
2f9c1e8be4 * line info may not use namespaces, referenced in compiler 2023-11-08 17:06:19 +01:00
Michaël Van Canneyt
2444c5ec79 * Not all OSes have NilHandle 2023-11-08 14:26:17 +01:00
Michaël Van Canneyt
b9ef7416f0 * Fix wrong typecast 2023-11-08 14:17:55 +01:00
Michaël Van Canneyt
0534810703 * Additional Delphi-compatible constant 2023-11-08 12:07:06 +01:00
Michaël Van Canneyt
14e9446c08 * Add ReadDouble 2023-11-08 12:04:53 +01:00
Michaël Van Canneyt
386f31ef4c * Add TReader.ReadPrefix for Delphi compatibility 2023-11-08 11:56:12 +01:00
Michaël Van Canneyt
54d692c7d6 * Add SkipValue to TReader 2023-11-08 11:50:49 +01:00
Michaël Van Canneyt
d2f3426bda * modeswitch needed 2023-11-08 11:29:44 +01:00
Michaël Van Canneyt
972b5181eb * Delta stream support 2023-11-08 11:27:21 +01:00