florian
803a6fea24
* throw an error if instructions which needs an operand size is used with one operand being a reference without size
2023-09-16 23:25:31 +02:00
Pierre Muller
4f7c289029
Change loongarch64 default dynamic linker directory according to gcc
2023-09-16 21:11:46 +00:00
Jonas Maebe
c96641f901
LLVM: fix double init/fini of local managed variables accessed from nested functions
...
resolves #40392
2023-09-14 15:38:21 +02:00
Pierre Muller
fbe64536d1
Cast properly to avoid range error
2023-09-14 10:04:02 +02:00
florian
657f3c52bf
* according to Jonas iOS doesn't zero extend results in the callee either, so check removed
2023-09-12 23:05:48 +02:00
Jonas Maebe
bcf77c70fd
default parameter values: fix crash
...
Fix crash when declaring default parameter values while current_procinfo
is not yet valid
resolves #40413
2023-09-11 21:35:07 +02:00
florian
a517ada539
* on aarch64-darwin, the unused part of function results is not cleared
2023-09-10 19:27:21 +02:00
Pierre Muller
d2edd6fd2f
Change V_Parallel so that V_All doesn't contain V_Parallel, only explicit -vj will add main source file information
2023-09-10 13:54:11 +00:00
Pierre Muller
67f89afe99
Regenerate msg*.inc files after adding -vj option description
2023-09-09 07:49:31 +00:00
Pierre Muller
63642b13c8
Add -vj option in options unit to set V_Parallel
...
Add mainsourcefile to all messages when V_Parallel verbosity option is set
Flatten out -vX options in help message to make changes easier
Add -vj option in help message
2023-09-09 07:49:22 +00:00
Pierre Muller
fd0f72303b
Add main inputfilename for V_Parallel option to allow easier debugging of parallel compilation issues
2023-09-09 06:58:02 +00:00
Pierre Muller
63f91a768c
Avoid double definition of V_XXX constants by moving them to globals unit
...
Add new V_Parallel constant
2023-09-09 06:54:30 +00:00
Pierre Muller
cf4d02ef92
Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit
2023-09-09 06:54:30 +00:00
Sven/Sarah Barth
3b455c1cf2
* fix #40390 : implement support for handling parameter names (including __SELF and __HIGH(<identifier>)) that resolve directly to registers
...
+ added tests
2023-09-08 17:30:32 +02:00
Sven/Sarah Barth
2df57e117b
* fix #40381 : also check for hints when parsing the parameters of a routine (including open array parameters) or the result type of a function
...
+ added tests
2023-09-08 15:54:08 +02:00
florian
dd586da709
* formatting
2023-08-26 22:14:36 +02:00
Interferon
c482bafdaf
There is code in the register allocator to restrict register allocation to the
...
first 16 registers in RISC-V RVE and RVEC modes. However, there was still
code in tcpuparamanager.create_paraloc_info_intern that allowed the allocation
of up to register X17 in RVE and RVEC modes. Modified this function to
take the processor mode into account and restrict it to X0..X15 in RVE and RVEC modes.
Also put conditional code in setjump.inc assembler code to only set the first
16 registers in RVE and RVEC modes.
The entire embedded-riscv32 RTL can now compile successfuly in RVEC mode.
2023-08-26 22:12:00 +02:00
Interferon
8382c6f586
Added generic WCH32Vx RISC-V processor types using memory size suffixes
...
Modified low-level startup code for RISCV32 embedded microcontrollers to
allow user code override of reset handlers for non-power-up reset events
as well as enabling user code override handlers for all 255 possible
interrupt vectors.
Separated out the low-level startup memory init into a callable procedure
to allow users that have caught reset events to init memory again if needed.
Signed-off-by: Interferon <brspm2@pinnaclesimulation.com>
2023-08-26 22:12:00 +02:00
J. Gareth "Curious Kit" Moreton
35e52b90f5
* Added missing register allocations to SSE/AVX optimisations
2023-08-24 19:41:41 +00:00
J. Gareth "Curious Kit" Moreton
49d66b8f20
* x86: Fixed bug where incorrect SSE/AVX peephole optimisations were performed under -O3 in some situations.
2023-08-24 19:41:41 +00:00
Jonas Maebe
a9f3906dd5
default(): fix in generics for non-procvars after 1be7416816
...
Block added in the wrong place :|
Resolves #40409
2023-08-22 21:19:12 +02:00
Jonas Maebe
2476062198
default(): fix webtbf/tw37303 after previous changes
2023-08-21 22:40:24 +02:00
Jonas Maebe
1be7416816
default value: fix issue with inlining
...
Ensure the mangled name is always the same
Resolves #40404
2023-08-20 22:08:47 +02:00
ccrause
9440b17eea
[AVR] Add command line options to selectively remove portions of the RTL startup code.
2023-08-15 21:33:58 +00:00
Jonas Maebe
50040a2cab
default values: store as staticvarsyms in staticsymtable
...
Previously, they were stored as localvarsyms in either the localsymtable
(for procedures/functions) or as localvarsyms in the staticsymtable (for
init/fini code of units/main programs). The latter was a hack (staticsymtables
normally cannot contain localvarsyms) and caused the temp allocator to also
allocate them as a local in fini code even if the default was only in the init
code.
The new approach ensures at most one copy gets allocated per unit, it doesn't
require explicit initialisation (since staticvarsyms are in bss -> zeroed by
default), gets rid of the localvarsyms in staticsymtables, and as a bonus
solves an issue with inconsistent LLVM debug information for the localvarsym
in init/fini code (since the staticsymtable is shared between the init and
fini code, so was the local, and therefore we generated debug info stating
it was defined in the fini code but within the scope of the init code).
Resolves #40395
2023-08-15 21:13:48 +02:00
J. Gareth "Curious Kit" Moreton
dde19c0144
* Improvement to TEST/JNE/TEST/JNE code to be more accurate where register deallocations are concerned
2023-08-12 23:43:05 +00:00
J. Gareth "Curious Kit" Moreton
699db16fe4
* x86: Fixed bug in TEST/JNE/TEST/JNE optimisation that caused bad code to be generated under -O3
2023-08-12 23:43:05 +00:00
florian
4096d9b74f
* factor out subreg2opsize
2023-08-12 23:12:13 +02:00
J. Gareth "Curious Kit" Moreton
6ffa258abb
* x86: Revamped OptPass2Jcc CMOV code to shrink and reuse registers as much as possible
2023-08-12 20:55:12 +00:00
J. Gareth "Curious Kit" Moreton
2a83972db8
* x86: Fixed bug where OptPass2Jcc CMOV optimisation sometimes
...
put the wrong-sized register into an operand (fixes i40307)
2023-08-12 20:55:12 +00:00
Jonas Maebe
13346a42bc
volatile: allow for assignments
2023-08-12 12:04:40 +02:00
Pierre Muller
22a1acd610
Applied fix for binutils 2.41 for loongarch64 suggested by Jinyang He
...
32fa3e9eb1
with modifications reported in comments.
2023-08-11 08:58:40 +00:00
Pierre Muller
ff673eadac
Add unit specifiers for tlsdirectory fields: they need to be PUInt from globtype unit
2023-08-11 08:38:43 +00:00
Pierre Muller
ffdb789a49
Fix syntax errors in make fullcycle
2023-08-11 02:31:43 -05:00
Pierre Muller
b8f8a1dd1f
Cleanup TLinkerLinux.SetDefaultInfo method in t_linux unit
2023-08-10 22:08:26 +00:00
Pierre Muller
ee97c0ca03
Add missing TPECoffExpDir variantr of MaybeSwap procedure
2023-08-10 22:08:26 +00:00
Pierre Muller
2443fd0ad7
Attempt to get ogcoff to work on CPU with opposite endianness
2023-08-10 22:08:26 +00:00
Pierre Muller
071ae41d24
Try to fix linker script for aarch64-win64
2023-08-10 22:08:26 +00:00
Sven Barth
82dd70e72f
* fix parameter alignment on x86_64 when more than 6 parameters are involved (aka the stack is used)
...
+ added test
2023-08-03 22:34:28 +02:00
Jonas Maebe
1a410bae12
LLVM: LLVM 17.0 support
...
No changes in IR (that affect us) since LLVM 16.0
2023-08-01 22:19:55 +02:00
Jonas Maebe
2949d0b548
LLVM: only add sret attribute for first parameter on caller side
...
We already did this when generating the definitions, but not yet
when generating the calls
2023-07-30 22:22:28 +02:00
Jonas Maebe
b49d58a9fa
LLVM: Xcode 14.3 support
2023-07-30 22:22:28 +02:00
Michaël Van Canneyt
681a00a76f
* Fixes based on feedback of team, fixes issue #40368
2023-07-30 11:19:47 +02:00
kamischi
40d0464e88
update German errordx.msg files
2023-07-29 16:01:37 +02:00
kamischi
69e775630a
Update errore.msg
...
Someminor corrections, found when translating to german.
2023-07-29 15:55:07 +02:00
Michaël Van Canneyt
9e228ff355
* Allow System.Variants (Delphi-compatible name) to be found when inserting variants unit
2023-07-27 18:40:34 +02:00
Michaël Van Canneyt
a9cc89ff46
* Allow hidden units to be found when replaying generic
2023-07-27 18:40:34 +02:00
Michael VAN CANNEYT
64feb6a5cd
* $NAMESPACES directive
2023-07-26 09:45:53 +02:00
Michael VAN CANNEYT
ed50a1941b
* Unicode resource strings
2023-07-25 16:06:53 +02:00
Michael VAN CANNEYT
70b0cb99d4
* SetString needs correctly typed argument
2023-07-25 16:06:53 +02:00