Commit Graph

3646 Commits

Author SHA1 Message Date
Pierre Muller
afc9acda37 Change wrong "$macros off" into "$macro off" 2022-10-22 15:54:49 -05:00
ccrause
991460c4ee Rewrite fpc_shortstr_concat_multi for AVR to not use a temporary shortstring to reduce RAM usage. 2022-10-19 20:18:56 +00:00
Jonas Maebe
0758aa1143 FPU exception mask: generlised system unit interface 2022-10-17 19:43:01 +00:00
florian
9f293df425 * export DynArrayAssign, resolves #39897 2022-10-06 22:56:38 +02:00
Pierre Muller
5913434ba9 Add DISABLE_SYSTEMINLINE check to be able to avoid setting SYSTEMINLINE macro 2022-09-20 22:39:28 +01:00
Sven/Sarah Barth
8595c927a8 * fix #39876: correctly Read(Str) enum types which have a size smaller than 4 Byte
+ added tests
2022-08-26 17:16:29 +02:00
florian
799c22d553 Revert " * patch by Rika: SwapEndian([u]int16) has unnecessary “and $FFFF”, resolves #39814"
This reverts commit f92102a5f2.

The and $ffff is needed to avoid range check warnings when the function is inlined with a constant parameter
2022-07-15 18:56:11 +02:00
florian
f92102a5f2 * patch by Rika: SwapEndian([u]int16) has unnecessary “and $FFFF”, resolves #39814 2022-06-27 22:45:01 +02:00
Nikolay Nikolov
bc6ab39ea2 * WebAssembly exceptions fix: fixed raise without parameters in except..end
blocks in WebAssembly native and branchful exceptions mode. Fixes #39752
2022-06-21 05:43:35 +03:00
marcoonthegit
5418ccf31e * fix bootstrapping *BSD with 3.2.2, which isn't flagged as supporting weakexternal on those targets 2022-06-18 14:52:24 +02:00
marcoonthegit
46de243fe6 * fix bootstrap with 3.2.2, whi 2022-06-18 14:50:13 +02:00
Sven/Sarah Barth
ae346a87a1 * ensure that the heaptrc unit can be used on Linux and BSD without linking against the C library 2022-06-15 22:55:13 +02:00
florian
1d8b21bcfc * align memory blocks in cmem at least to stack alignment boundaries, resolves #39730 2022-06-04 22:27:51 +02:00
Jonas Maebe
25e832940c llvmdbg: support for generating debug information for local/para varsyms
Note that not all symbols are covered yet, because absolutevarsyms are not
yet supported and those are e.g. used for function result aliases.
Additionally, not all types are fully supported yet.
2022-06-04 22:26:40 +02:00
Nikolay Nikolov
c9ed14f87b + enable the 64-bit SAR instruction on the WebAssembly target 2022-05-27 22:56:05 +03:00
Nikolay Nikolov
b6aaa06f83 + enable the ROL/ROR instructions for WebAssembly 2022-05-27 22:46:32 +03:00
florian
08228d7fb3 * revert a650d346f1 for now as it apparently does
not work with all language encoding
2022-02-26 21:57:42 +01:00
florian
04145589a9 * improved fpc_frac_real 2022-02-18 22:47:55 +01:00
florian
67fedc6b5b * handle frac(+/-Inf or Nan) correctly in the software implementation, resolves #39584 2022-02-17 22:00:27 +01:00
florian
308bc29465 * setting of MIPS64(EL) in system.inc fixed 2022-02-08 23:08:13 +01:00
Pierre Muller
fbed068048 Set float type information in system interface part for mips64 and mips64el CPUs 2022-02-04 20:00:40 +00:00
Sergey Larin
ee2d313aa0 Added TranslatePlaceholderCP in fpc_Read_Text_AnsiStr procedure.
This is a small optimization.
2022-01-26 20:28:17 +00:00
Sergey Larin
a8b0e0ed65 Added TranslatePlaceholderCP before Wide2AnsiMoveProc call.
In the fpc_setstring_ansistr_pwidechar procedure, before calling Wide2AnsiMoveProc, the translation cp = 0 to the DefaultSystemCodePage has been added.
Note: In all other places such translation is present.
2022-01-26 20:28:17 +00:00
florian
366aedc6d8 * more false positives of unintialized varibles worked around 2022-01-22 17:36:19 +01:00
florian
115f83794b * avoid warning/error on uninitialized variable 2022-01-22 14:13:59 +01:00
florian
a7a689ca16 * fpc_AnsiStr_To_ShortStr: set length before moving, should result in better memory access pattern 2022-01-20 22:14:33 +01:00
florian
02abad58d8 * some fixes for 8 Bit CPUs 2022-01-19 22:03:09 +01:00
florian
07cd469ade Merge branch 'main' into val_range_check
# Conflicts:
#	rtl/inc/sstrings.inc
2022-01-19 21:30:58 +01:00
florian
718709c87d * all val helpers now use the ValValueArray 2022-01-17 22:46:19 +01:00
florian
2f8750924f * patch by Bart B: fixes fpc_val_word_shortstr() and refactors fpc_val_longword_shortstr() so that it uses the same algorithm and naming conventions as the other unsigned val-helpers. 2022-01-16 23:08:37 +01:00
florian
5f089afdfb * unified ValueArray 2022-01-15 22:36:57 +01:00
florian
55f0103248 o patch by Bart B:
* fixes fpc_Val_UInt_Shortstr, part of #15633
    * fpc_val_qword_shortstr uses the ValueArray constant
2022-01-15 22:18:38 +01:00
florian
9a90db79c3 * patch by Bart B to fix fpc_val_smallint_shortstr similiar to #39406, resolves #39528 2022-01-13 22:51:10 +01:00
florian
8e4e229a5f + DestSize parameter for fpc_Val_UInt functions 2022-01-11 22:10:26 +01:00
florian
fc3b635013 * patch by Bart B to fix the value of Code for unsigned types if the input is negative, resolves #39523 2022-01-11 21:29:56 +01:00
florian
f39a6a7755 * fpc_Val_SInt_ShortStr: bug fixes and improvements by Bart B 2022-01-08 14:45:12 +01:00
florian
38c06e64c7 * optimze case
* few formatting changes
2022-01-07 23:43:59 +01:00
florian
05072d0d82 * updated version by Bart B 2022-01-07 23:21:12 +01:00
florian
4c296af05e * reordered condition so they can be evaluated quicker 2022-01-07 19:36:34 +01:00
florian
d29a482cd1 * fixes for fpc_Val_SInt_ShortStr by Bart B
+ new test for fpc_Val_SInt_ShortStr
  + benchmark
2022-01-07 19:19:55 +01:00
florian
2a93e65511 * seperator => separator 2022-01-02 13:12:33 +01:00
Karoly Balogh
c298c0e0da rtl/osheap: fixed a dumb reversed condition in osheap/SysAllocMem() 2021-12-26 15:56:34 +01:00
florian
781b2d0a80 * patch by Rika: second part of #39496, resolves #30496
+ extended test
2021-12-25 20:01:32 +01:00
florian
c0979bbc0c * TObject.InitInstance got very big so inlining has no advantage anymore, resolves #39494 2021-12-25 19:09:22 +01:00
marcoonthegit
4568c77f57 * implemented stringofchar unicodestring, bug #39483 2021-12-14 15:07:43 +01:00
Jonas Maebe
4426d0da7a Fixed variant discriminator types 2021-10-31 21:13:35 +01:00
florian
ee10850a57 * patch by Sergey Larin: Reducing and aligning the size of TAnsiRec, TUnicodeRec for CPU64, resolves #38018:
For CPU64, the size of record TAnsiRec and TUnicodeRec is 16 bytes instead of 24.
    Which is very good also because of the alignment. when allocating memory, the address
    of the first character of the string will be aligned on the 16-byte boundary.
    At the same time, the useless Dummy field, which is needed in CPU64 for exactly alignment, has been removed.
    For CPU32 (and CPU16), the record size has not changed, so procedures such as
    fpc_AnsiStr_Decr_Ref, implemented in assembler (see i386, arm), remained working correctly.
  * tests adapted
2021-10-17 11:13:29 +02:00
Nikolay Nikolov
f20de5d583 * fixed padding in the filerec to match textrec even on platforms where
sizeof(pointer)<>sizeof(codepointer), like in the medium and compact i8086
  memory models
2021-10-13 02:02:50 +03:00
florian
91cf1774dd * replace MT random generator by Xoshiro128**, resolves #38237 2021-10-05 22:20:22 +02:00
Nikolay Nikolov
7afb665c92 + insert exception flag check and branch after each function call, when
compiling in WebAssembly branchful exceptions mode
2021-10-05 02:26:13 +03:00