J. Gareth "Curious Kit" Moreton
1241242ed8
* Added support for pure functions
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
df73ef4f64
* Added pure-related warning messages.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
84eb9490cf
* Added nested statement optimisation (where statement.left is a statement) to clean up pure analysis
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
2734225935
* New blocknode optimisation that removes goto nodes that come right before the label they jump to
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
f817167760
* do_optconstpropagate adapted for pure function analysis
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
b971a5f852
* Block nodes are now more heavily simplified
...
when doing it for pure functions.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
32d448f91c
* Overrode "pure_simplify" for TAddNode so it can combine constants without raising overflow errors.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
6bd80aa0d2
* Added framework for an optional, pure-specific simplify method.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
3370a8eb6b
* doinlinesimplify now returns a Boolean result... true if something changed, false otherwise.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
c9e3e96767
* do_optcse and do_consttovar now return rootnode rather than nil
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
19802bf597
* Type conversion nodes are now stripped if the
...
source and target types are equal, unmanaged
and not generic/undefined.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
8b1e5a0589
* New "is_undefined" def checker function
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
9ca8215248
* XML node dump now includes "totypedef" in
...
TTypeConvNode info if different to resultdef
2025-04-02 21:56:00 +00:00
florian
fb126e32f9
* RtlUnwind destroys register, so save and restore them afterwards
2025-04-02 22:34:21 +02:00
Michaël Van Canneyt
9e9153b2d3
* forgot to commit
2025-04-02 16:27:34 +02:00
Michaël Van Canneyt
736fc12e55
* Allow wasm guest & host to be notified of wasm memory growth
2025-04-02 11:21:03 +02:00
florian
62236ec2bb
* proper naming
2025-04-01 22:53:56 +02:00
florian
425ef662cc
* patch by Pierre to fix spilling and jump handling of pseudo-instructions
2025-03-31 22:53:40 +02:00
Pierre Muller
282f4aa060
Add definitions of ALUSInt and ALUUInt types in java/jsystemh_types.inc
2025-03-31 13:36:13 +00:00
florian
b1151ef4ea
+ missing instruction
2025-03-30 20:07:00 +02:00
Rika Ichinose
6ab6be4793
Faster Val().
2025-03-30 19:36:42 +02:00
J. Gareth "Curious Kit" Moreton
de51e6a32a
* x86_64: Extension to MovMov2Mov optimisations to allow more MOVL to MOVQ zero-extensions
2025-03-30 17:04:56 +02:00
Ondrej Pokorny
ec5b4d458e
decrease restarts_to_go only if restart is enabled (solves runtime error if compiled with range checks)
2025-03-30 08:16:41 +00:00
Ondrej Pokorny
0d988f2c96
JPEG: support custom CMYK conversions and reading custom APPn headers
2025-03-30 08:16:41 +00:00
florian
84a852bc13
* more aggressive cse on thread vars
2025-03-29 22:31:13 +01:00
Rika Ichinose
ce6db34224
Shortcut Compare*(a, a) before entering the aligned loop.
2025-03-29 22:07:03 +01:00
Rika Ichinose
8093b1ba0c
Unbias 32-bit random.
2025-03-29 21:55:08 +01:00
florian
c07da2a654
* typo
2025-03-29 18:52:16 +01:00
florian
548e91f104
* fix rol/ror instruction usage and spilling on RiscV
2025-03-28 22:26:59 +01:00
Pierre Muller
6debe90b07
Disable libjack package for beos OS
2025-03-28 15:40:23 +00:00
Pierre Muller
a093c6e59a
Add dependencies for units of utils/fpcres package
2025-03-28 05:46:00 +00:00
florian
f8f54dcbcf
+ RiscV has internal rol/r support
2025-03-27 22:33:30 +01:00
florian
f65994ddcb
+ RiscV: flags for crypotography extensions
2025-03-26 22:44:26 +01:00
Michaël Van Canneyt
1ef1481488
* Print unit name, flush output in status messages
2025-03-26 11:43:20 +01:00
florian
065ddfd8d4
+ RiscV: ROL/ROR code generation support
2025-03-25 22:40:26 +01:00
Pierre Muller
a74a4aca03
Avoid range check error in TObjData.writebytes overloads using dynamic arrays
2025-03-25 12:09:06 +01:00
Jonas Maebe
754c40cdb0
tai_string: remove useless #0 terminators
...
The string data in the array alrady includes any necessary #0 terminators
and the length of the array contains the length of the data, so there is
no need to add an additional #0 terminator
2025-03-24 23:02:10 +01:00
Jonas Maebe
547fa426c7
Fix emit_ansistr_const: its input is not guaranteed to be #0-terminated
...
Also cleaned up all memory leaks where pchars were allocated, but never freed.
Before the change to dynamic arrays, these pchars were kept in the tai_string,
but now they got copied. Changed the tai_string constructor to support adding
a terminating #0 , so we don't need to create intermediates just for that.
2025-03-24 23:02:10 +01:00
Jonas Maebe
dc5c99be6d
LLVM: fix compilation after rgobj dynarray changes
2025-03-24 23:02:10 +01:00
Jonas Maebe
f0cecf5367
tai_aggregatetypedconst.add_to_string: fix off-by-one errors
2025-03-24 23:02:10 +01:00
Jonas Maebe
91667644f4
fpc_cpuinit: add destroyed register lists to assembler blocks
...
Otherwise the compiler assumes no registers are overwritten. And while the
regular code generator won't use register variables if assembler blocks are
present, LLVM is not restricted like that (and it could still cause issues
even with the default code generator in case PIC-rebased addresses are
accessed).
2025-03-24 23:02:10 +01:00
florian
0785652b55
+ RiscV: handle ror(i)(w) in the assembler optimizer
2025-03-24 23:01:00 +01:00
Pierre Muller
bfc1172844
Remove tstunits/go32v2/Package.fpc file introduced by error in commit a3dd6acae4
2025-03-24 20:21:18 +00:00
Pierre Muller
8bd781aa4a
Avoid long wait on this Windows OS specific test
2025-03-24 17:08:30 +00:00
Michaël Van Canneyt
6314d69c40
* Correct allocation size for IsHandled, index is 1-based
2025-03-24 16:47:02 +01:00
florian
cafaa9f5b8
+ RiscV: handle rol(w) in the assembler optimizer
2025-03-23 23:04:17 +01:00
Rika Ichinose
0d5dddfcb5
Inline polyevl&ldexp in sin&cos.
2025-03-23 09:27:48 +01:00
florian
eb5c61281c
+ take care of asmmode in $push/$pop, resolves #41190
2025-03-22 21:16:03 +01:00
Michaël Van Canneyt
1a57a65c5f
* Fix tw13628b
2025-03-22 12:28:07 +01:00
Michaël Van Canneyt
4b5c6ba3fc
* Fix tgenconst13
2025-03-22 11:22:22 +01:00