Commit Graph

25143 Commits

Author SHA1 Message Date
florian
05cf47f995 * AVR: fixed TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@49126 -
2021-04-06 11:49:48 +00:00
florian
e4cc8af8fc * Makefiles regenerated
git-svn-id: trunk@49124 -
2021-04-05 15:39:07 +00:00
florian
87a67a3222 * typo fixed
git-svn-id: trunk@49118 -
2021-04-03 22:01:47 +00:00
florian
08817f1aed * fixes to deadstore optimization
git-svn-id: trunk@49117 -
2021-04-03 21:28:09 +00:00
florian
f3d8efc8ec * Aarch64: support LSE instructions
git-svn-id: trunk@49112 -
2021-04-03 11:30:23 +00:00
florian
f879d76491 * forgotten " added
git-svn-id: trunk@49109 -
2021-04-02 21:41:31 +00:00
florian
f38f9ff930 * Aarch64: cpu capabilites defines properly named
* Aarch64: enable defining cpu capabilites

git-svn-id: trunk@49108 -
2021-04-02 20:57:12 +00:00
florian
9e7d80a8bd * Aarch64: the M1 is an ARM v8.4-a CPU
git-svn-id: trunk@49107 -
2021-04-02 19:52:00 +00:00
florian
3999d037e3 + write controller unit wiht -ix as well
git-svn-id: trunk@49106 -
2021-04-02 17:13:11 +00:00
florian
bf65bad5c5 + Aarch64: cpu_capabilities support
git-svn-id: trunk@49105 -
2021-04-02 17:08:34 +00:00
florian
f0023a3b04 * Aarch64: patch by J. Gareth Moreton: fix constant writing, resolves #38695
+ test

git-svn-id: trunk@49104 -
2021-04-02 16:44:43 +00:00
svenbarth
e53d18d876 * Windows on ARM64 adheres to the usual Aarch64 ABI, thus references need to be copied on the caller side as well
git-svn-id: trunk@49103 -
2021-04-02 15:25:05 +00:00
svenbarth
2885d3ab56 * fix for Mantis #37426: don't allow an instance function of a type helper to be used on the type instead of a concrete value
+ added test

git-svn-id: trunk@49102 -
2021-04-02 15:25:01 +00:00
florian
682e29c4ff + enable colored output on darwin, resolves #38693
git-svn-id: trunk@49099 -
2021-04-01 16:32:52 +00:00
florian
7811b915a9 * x86-64: we can spill replace 32 bit operations if the operation does not modify a register
git-svn-id: trunk@49097 -
2021-03-31 21:23:22 +00:00
pierre
8ea95e9b95 Use value $00000F00 instead of $F0000000 for IF_FPMASK, and adapt all floating point constants, to avoid IF_VFPv4 having the same value as IF_PASS2
git-svn-id: trunk@49096 -
2021-03-31 21:03:50 +00:00
florian
cc64d9eb4e * do not swap left/right code generation for assignment nodes if
conditional expressions are involved, resolves #38129

git-svn-id: trunk@49095 -
2021-03-31 20:53:18 +00:00
pierre
c8c6e647be Avoid keeping optimized out node in callcleanupblock.statements or callinitblock.statements
git-svn-id: trunk@49094 -
2021-03-31 20:53:08 +00:00
florian
07a8e6c1d6 + some more change information entries added
git-svn-id: trunk@49092 -
2021-03-31 18:53:31 +00:00
florian
bc4a22e24d + Xtensa: tcpuinlinenode.second_prefetch
git-svn-id: trunk@49090 -
2021-03-30 21:43:20 +00:00
florian
aa1a68000b * prefetch instructions read only the operand
git-svn-id: trunk@49089 -
2021-03-30 21:24:00 +00:00
florian
47557e0ad2 * cpubase.cgsize2subreg should handle all valid sizes, resolves #38557
git-svn-id: trunk@49087 -
2021-03-30 16:44:19 +00:00
nickysn
8ec71bc810 * fixed memory leak, introduced accidentally in r48998
git-svn-id: trunk@49084 -
2021-03-30 11:05:00 +00:00
Jonas Maebe
793ecb3fa6 * fixed assembling via pipe on Darwin
git-svn-id: trunk@49067 -
2021-03-27 19:01:04 +00:00
florian
6218254e53 * allow also 8 byte string constants in assembler, resolves #28640
git-svn-id: trunk@49066 -
2021-03-27 17:13:14 +00:00
Jonas Maebe
308aee42a0 * the offset parameter of reference_reset* must be asizeint rather than
longint (mantis #38636)

git-svn-id: trunk@49065 -
2021-03-27 15:31:33 +00:00
svenbarth
ca7c775e36 * fix for Mantis #38642: for enumerations with jumps Delphi behaves as follows:
- GetTypeKind returns tkEnumeration (FPC previously generated a compile error here)
  - GetTypeInfo on a generic parameters returns Nil for such types (FPC previously generated a compile error here)
  - GetTypeInfo otherwise generates a compile error (as before)

git-svn-id: trunk@49064 -
2021-03-27 09:35:07 +00:00
svenbarth
067b9b2922 * copy and compare the typesym inside type nodes as well
git-svn-id: trunk@49062 -
2021-03-27 09:34:59 +00:00
florian
4d82e814a0 * patch by Do-wan Kim: fix loop unrolling for try .. finally blocks in win32,
similiar to r48972 for win64

git-svn-id: trunk@49057 -
2021-03-26 22:21:09 +00:00
florian
c2ff85ac5b * patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves #38194
git-svn-id: trunk@49054 -
2021-03-25 21:51:52 +00:00
Jonas Maebe
7a0c6ab591 - removed unused leftovers from old t_bsd code
* no longer execute the linker via a shell script, but directly

git-svn-id: trunk@49046 -
2021-03-24 14:33:13 +00:00
Jeppe Johansen
1105726dcf * Add SAMD51P19A controller type. Unit generated by Michael Ring and slightly modified.
git-svn-id: trunk@49034 -
2021-03-22 18:40:12 +00:00
florian
bae6ca6883 * Dwarf: write variant fields only if the require features are present, resolves #38651
git-svn-id: trunk@49032 -
2021-03-22 18:11:41 +00:00
florian
a32a870f33 * another loop counter copying fix
git-svn-id: trunk@49028 -
2021-03-21 21:39:57 +00:00
florian
c4ddb94cb4 * remove nf_write from the counter node when converting for loops into while loops if the counter is only read
git-svn-id: trunk@49020 -
2021-03-20 21:28:58 +00:00
nickysn
9fa61a6c9f - removed the discardresult proc directive
git-svn-id: trunk@49017 -
2021-03-20 01:22:43 +00:00
florian
b9affc3406 * RiscV64: type conversion to 8 bit improved
git-svn-id: trunk@49015 -
2021-03-19 17:39:52 +00:00
florian
9e2bcd940a + RiscV: initial OpAddi02Op implementation
git-svn-id: trunk@49002 -
2021-03-18 21:49:25 +00:00
nickysn
ecad5e9a6c + WebAssembly implementation of g_rangecheck that uses if/endif instead of
jumps to labels (which causes internal compiler error, because they're not
  supported in WebAssembly)

git-svn-id: trunk@49000 -
2021-03-18 16:45:40 +00:00
nickysn
d608b4b689 * instead of registering all and then deleting non-propgetter/setter procdefs in
pdecvar.read_property_dec, don't register them by default, and then only
  register them, if they are propgetter/setter. This prevents dangling pointers
  in current_module.deflist and potential use-after-free bugs.

git-svn-id: trunk@48998 -
2021-03-17 19:16:38 +00:00
florian
53effea0f5 + X86: JccMovJmpMov2MovSetcc optimization
git-svn-id: trunk@48993 -
2021-03-16 22:19:21 +00:00
florian
612f063795 + patch by J. Gareth Moreton: AddMov2LeaAdd and AddMov2Lea optimizations, resolves #38579
git-svn-id: trunk@48989 -
2021-03-15 21:12:02 +00:00
nickysn
811cf381ad * when parsing unions, set the uniondef reference to nil in
current_module.deflist after freeing the object to prevent dangling pointers
  and use after free

git-svn-id: trunk@48986 -
2021-03-15 18:13:45 +00:00
nickysn
d090af4abe * skip nil values in current_module.deflist in TLLVMMachineCodePlaygroundAssembler.WriteImports
git-svn-id: trunk@48985 -
2021-03-15 18:12:36 +00:00
nickysn
f7dd8755cc + introduced TFPList.IndexOfItem and TFPObjectList.IndexOfItem, which are like
IndexOf, but can also search backwards. The same method already exists in
  FPC's classes unit.

git-svn-id: trunk@48984 -
2021-03-15 18:06:44 +00:00
pierre
a7de0b365b Avoid invalid typecast error when using -CR option
git-svn-id: trunk@48978 -
2021-03-15 13:25:59 +00:00
pierre
85fa313e59 Use uvalue field to get unsigned and avoid range check or overflow errors
git-svn-id: trunk@48977 -
2021-03-15 13:24:27 +00:00
nickysn
77f3acdf76 * the TFPList.List property made protected in order to discourage using it
directly, as this circumvents range checking

git-svn-id: trunk@48976 -
2021-03-14 23:17:44 +00:00
florian
2b47425f08 + tx64tryfinallynode.dogetcopy properly implemented, resolves #37305
git-svn-id: trunk@48972 -
2021-03-14 21:23:05 +00:00
nickysn
76c61c3aac * call inherited inside twasminnode.checkgenjumps in order to initialize use_small
git-svn-id: trunk@48971 -
2021-03-14 16:56:16 +00:00
florian
03d353c1f5 - cosmetics: superfluous newlines removed
git-svn-id: trunk@48970 -
2021-03-14 16:41:34 +00:00
florian
d1881d0951 * RiscV: integer type conversions fixed
git-svn-id: trunk@48969 -
2021-03-14 16:40:14 +00:00
nickysn
f0aed5d355 * fixed another WebAssembly compilation error with -CR
git-svn-id: trunk@48966 -
2021-03-14 15:06:13 +00:00
nickysn
74854eee58 * fixed WebAssembly compilation error with -CR
git-svn-id: trunk@48964 -
2021-03-14 15:03:58 +00:00
florian
9ccdf2b3bf * RiscV: unified itcpugas.pas
git-svn-id: trunk@48960 -
2021-03-14 10:29:23 +00:00
pierre
9775a13e02 Rough fix for riscv32 failure
git-svn-id: trunk@48959 -
2021-03-14 09:10:29 +00:00
nickysn
4be5609809 + added wasm32 to the list of targets that don't support a native compiler
git-svn-id: branches/wasm@48952 -
2021-03-13 21:56:01 +00:00
nickysn
ea8f068817 * regenerated makefiles after sync with trunk
git-svn-id: branches/wasm@48951 -
2021-03-13 21:52:13 +00:00
nickysn
e42330a7ad * synchronized with trunk
git-svn-id: branches/wasm@48949 -
2021-03-13 21:47:24 +00:00
florian
62ea31f255 * riscv64-linux: generate PIC for all units as it is required for shared libraries
git-svn-id: trunk@48948 -
2021-03-13 16:33:31 +00:00
florian
e047e7db91 + RiscV: initial support of pic generation
git-svn-id: trunk@48947 -
2021-03-13 16:18:00 +00:00
florian
1e5cbfe546 * RiscV: if shared libraries are involved, we have to link always against the crt*S.o variants
git-svn-id: trunk@48946 -
2021-03-12 21:59:18 +00:00
pierre
e8fbe6696b Update Makefile's after commits 48929/48930
git-svn-id: trunk@48940 -
2021-03-12 13:23:41 +00:00
florian
577e584c77 * RiscV: basic CFI stuff fixed
git-svn-id: trunk@48937 -
2021-03-10 20:55:37 +00:00
florian
8fa04a0cee * finished -ix output
git-svn-id: trunk@48936 -
2021-03-10 20:33:49 +00:00
nickysn
f8052134e3 * synchronized with trunk
git-svn-id: branches/wasm@48906 -
2021-03-08 00:52:43 +00:00
florian
4be5f07f27 + support for .dc.a directive
* read multiple section flags

git-svn-id: trunk@48903 -
2021-03-07 22:28:17 +00:00
florian
b0772ae749 + initial (and so far experimental) implementation of -ix to output -i in xml format for further automated processing
git-svn-id: trunk@48897 -
2021-03-07 14:11:09 +00:00
florian
d1fb44044f * unified RiscV32 and RiscV64 GAS readers
git-svn-id: trunk@48894 -
2021-03-07 08:53:03 +00:00
florian
6f3fccddd1 * RiscV32: properly read references with record offsets and base register
+ RiscV32: sanity check in assembler writer

git-svn-id: trunk@48892 -
2021-03-06 22:19:00 +00:00
pierre
81402bb077 * Improve DEBUG_PPU code
* Move flog file closing from closefile method to destroy destructor.
  * Fix write_data output into flog

git-svn-id: trunk@48890 -
2021-03-06 22:00:30 +00:00
florian
83ce289ea4 * last commit fixed, hopefully final fix
git-svn-id: trunk@48886 -
2021-03-06 15:03:33 +00:00
florian
f448603970 * improved last commit, better handling of boolean expressions
git-svn-id: trunk@48885 -
2021-03-06 14:55:50 +00:00
florian
62bd0068b6 * do not apply the (a and b) or (c and not(b)) into c xor ((c xor a) and b) optimziation if short boolean evaluation is used, should resolve #38576
* improved test

git-svn-id: trunk@48884 -
2021-03-06 14:48:15 +00:00
florian
c15bb07bf6 * do not generate mul instructions if the mul extension is not available
git-svn-id: trunk@48883 -
2021-03-06 14:23:54 +00:00
pierre
3dd6272891 Add new make rule named full_targets
git-svn-id: trunk@48882 -
2021-03-06 10:42:50 +00:00
florian
913bd009e9 * patch by J. Gareth Moreton: take care of -Os for SubMov2*, part of #38579
git-svn-id: trunk@48878 -
2021-03-04 21:35:13 +00:00
pierre
01a351f804 Fix for bug report 38549 about wrong code generation
for mips/mipsel and riscv32/riscv64 CPUs for 
  set operators '<=' and '>='.
  New tests for this bug report.
  tw38549.pp, main source, also included 
  by tw38549a.pp, tw38549b.pp, tw38459c.pp and tw38459d.pp
  with explicit {$packset X}, with X=1,2,4, or 8 added.

git-svn-id: trunk@48874 -
2021-03-03 22:15:20 +00:00
florian
01937c4630 * patch by J. Gareth Moreton: SubMov2LeaSub optimisation improvement, resolves #38555
git-svn-id: trunk@48871 -
2021-03-02 21:27:43 +00:00
florian
8ffa01e95f * patch by J. Gareth Moreton: MOV/SHR reference optimisation, resolves #38560
git-svn-id: trunk@48857 -
2021-03-01 20:39:57 +00:00
florian
90710d055b * fix spilling of (v)min/max/s/ps/d operations
git-svn-id: trunk@48856 -
2021-03-01 20:29:58 +00:00
florian
316f2429f0 * do not omit location_force_reg on second operand of sar/ro* if
it is used to adapt the size of the operand

git-svn-id: trunk@48855 -
2021-03-01 20:21:42 +00:00
nickysn
940738a3a1 * synchronized with trunk
git-svn-id: branches/wasm@48846 -
2021-03-01 13:21:24 +00:00
florian
01178532e5 * sar*/ro* do not call location_force_reg if not needed
git-svn-id: trunk@48844 -
2021-02-28 22:11:05 +00:00
florian
e0a1bc6675 + optimize (a and b) or (c and not(b)) into c xor ((c xor a) and b)
+ test

git-svn-id: trunk@48841 -
2021-02-28 18:20:46 +00:00
florian
272a0e3e26 + apply excess precision also to unary minus nodes
* made excess precision really working

git-svn-id: trunk@48840 -
2021-02-28 10:52:11 +00:00
florian
fe57cd3536 * fix LLVM after r48828
* global gotos really use the return type of fpc_setjmp to test where we come from

git-svn-id: trunk@48835 -
2021-02-27 22:07:58 +00:00
Jonas Maebe
9c831677ff * support Objective-C classes and protocols with -gw3 (mantis #36250)
git-svn-id: trunk@48834 -
2021-02-27 21:44:53 +00:00
Jonas Maebe
803779002d * the new constant string arraydefs are also implicit pointers types for JVM
git-svn-id: trunk@48833 -
2021-02-27 19:30:37 +00:00
Jonas Maebe
ab0531f0ce * fixed JVM stack height calculation after calls returning an
implicit pointer tpe

git-svn-id: trunk@48832 -
2021-02-27 19:30:34 +00:00
florian
4c2e0b9ff0 * for setjmp based exception handling, get the type of the exception reason from the setjmp result
git-svn-id: trunk@48828 -
2021-02-27 16:47:36 +00:00
Károly Balogh
8d0ef71e37 m68k-linux: revert maxCrecordalign to 2, as an experiment to fix some linking-against-C regressions since the alignment changes
git-svn-id: trunk@48809 -
2021-02-26 10:57:05 +00:00
florian
c6443809ba + SETcc/Mov -> SETcc optimization
git-svn-id: trunk@48808 -
2021-02-25 22:07:40 +00:00
florian
857cbddf04 * applied patch by Pierre to fix make cycle -Cr
git-svn-id: trunk@48806 -
2021-02-24 21:10:05 +00:00
Jonas Maebe
cfa3f4fa8c + added b.cc/b.cs support to AArch64 assembler reader (mantis #38485)
git-svn-id: trunk@48803 -
2021-02-24 15:40:22 +00:00
pierre
236bef961c Patch by Gareth Moreton
* Fix lea optimizations which lead to more failures with -O3 and -O4 options.

 - LeaLea2Lea now checks to see if the index register is in use.
 - For both the base and index registers, RegUsedBetween is changed to
 RegModifiedBetween, since just reading the register is harmless for the
 optimisation (it finds additional optimisations in the RTL as a result).
 - Because I saw the mis-optimisation with MOVZX that occurred (even
 though it was due to the mis-optimisation of LEA instructions), I wrote
 some extra code in OptPass2Movx as a safety measure to ensure this
 doesn't happen (although no additional instances of it happening have
 been noted so far - best be safe than sorry).

git-svn-id: trunk@48802 -
2021-02-24 12:58:04 +00:00
pierre
e2386ae876 * Remove obsolete -OG2p3 option for extcycle
+ Add extoptcycle to cycle compiler with both -dEXTDEBUG and -dDEBUG_ALL_OPT

git-svn-id: trunk@48801 -
2021-02-24 10:40:15 +00:00
Károly Balogh
0216f77819 m68k: adjusted some max alignment values for m68k-linux based on i386-linux, because the ELF loader on m68k should be able to provide the same alignments for globals
git-svn-id: trunk@48799 -
2021-02-24 09:20:04 +00:00
Károly Balogh
2703b36fe1 m68k: removed some helper function which was added, but in the end it never saw any use
git-svn-id: trunk@48798 -
2021-02-24 09:10:40 +00:00
pierre
2cd6951205 Apply patch proposed by J. Gareth Moreton in bug report #0038527
The patch reworks the LeaLea2Lea optimisation and hopefully fixes the bug (admittedly by adding a brand new optimisation!).

git-svn-id: trunk@48792 -
2021-02-22 23:15:31 +00:00
florian
cefa05c8b1 * correctly allocate edx for mulx, resolves #38533
git-svn-id: trunk@48791 -
2021-02-22 20:39:12 +00:00
Károly Balogh
0ca1e2fb42 * attempt to fix bitpacked records with qwords in them (tw36156) when cross-compiling to big endian targets from x86. essentially the x86 shifting workarounds in the code already weren't covering all corner cases.
git-svn-id: trunk@48773 -
2021-02-21 23:00:41 +00:00
Jonas Maebe
6beb28316e * Darwin targets that don't support link order sym files can't smart link
vectorized sections

git-svn-id: trunk@48765 -
2021-02-21 21:41:09 +00:00
Jonas Maebe
8b82e2a9cb * iphonesim targets support link order sym files
git-svn-id: trunk@48764 -
2021-02-21 21:41:05 +00:00
florian
5a26c58285 * allow in-operator to be used on type parameters, resolves #38497
git-svn-id: trunk@48763 -
2021-02-21 21:29:40 +00:00
Jonas Maebe
0f36b85a3d - Darwin/ppc64 linker does not support symbol order file
git-svn-id: trunk@48762 -
2021-02-21 21:09:38 +00:00
svenbarth
c7f4be71dc * correctly set the defowner of the exception symtable to the surrounding routine as suggested by Blaise.ru
git-svn-id: trunk@48760 -
2021-02-21 19:15:52 +00:00
florian
60c8b71bae * string constants have a size of 0, resolves #38504
git-svn-id: trunk@48759 -
2021-02-21 18:46:00 +00:00
florian
34f7c3e6d4 + array defs. of open arrays are now marked by ado_OpenArray, so (internally!) zero sized array can be declared with 0..-1
git-svn-id: trunk@48758 -
2021-02-21 18:45:58 +00:00
florian
f333fb08ec * patch by Alfred to fix cutils.CompareVersionStrings, resolves #38514
git-svn-id: trunk@48757 -
2021-02-21 18:04:12 +00:00
Károly Balogh
2ffe777b44 m68k: extend the the register to full size, when multiplied by an immediate in memory references. Patch based on the work of Pierre Muller.
git-svn-id: trunk@48732 -
2021-02-20 11:21:14 +00:00
nickysn
286ad1df4d * synchronized with trunk
git-svn-id: branches/wasm@48715 -
2021-02-19 03:11:17 +00:00
florian
ef8d520e82 * more cfi support for aarch64
git-svn-id: trunk@48714 -
2021-02-18 21:44:12 +00:00
florian
599ba8cc2a + generate initial cfi for aarch64
git-svn-id: trunk@48701 -
2021-02-17 20:43:37 +00:00
pierre
acf2567bda Second trial to fix commit 48688
git-svn-id: trunk@48691 -
2021-02-17 09:46:37 +00:00
pierre
34fd36f817 Fix previous commit 48688 to avoid accessing 'invalid' positions in sym.value.valueptr
git-svn-id: trunk@48689 -
2021-02-17 07:09:55 +00:00
pierre
6a408fe97e Avoid writing characters after sym.value.len for conststring constant symbols
git-svn-id: trunk@48688 -
2021-02-16 23:15:08 +00:00
florian
5b29e7a3ec + (safe) heuristics to use DW_CFA_advance_loc1 in CFI
git-svn-id: trunk@48687 -
2021-02-16 21:16:54 +00:00
florian
436a0d3f9e * generate advance_loc records only if there was code/data since the last advance_loc entry
git-svn-id: trunk@48686 -
2021-02-15 22:26:49 +00:00
florian
09d6398942 * arm: better cfi
git-svn-id: trunk@48685 -
2021-02-15 22:25:18 +00:00
florian
e694897bb3 * initial implementation of CFI support for arm (non-thumb)
git-svn-id: trunk@48684 -
2021-02-15 21:34:07 +00:00
nickysn
6b99ba4835 * bring back some commented out code that was committed by accident
git-svn-id: branches/wasm@48681 -
2021-02-14 23:49:49 +00:00
nickysn
d7df2d45c6 * synchronized with trunk
git-svn-id: branches/wasm@48680 -
2021-02-14 23:47:42 +00:00
florian
a3d68e6839 * arm thumb: generate proper cfi
git-svn-id: trunk@48678 -
2021-02-14 21:26:41 +00:00
florian
44856e660c * ARM: NR_RETURN_ADDRESS_REG is R14
git-svn-id: trunk@48677 -
2021-02-14 21:25:36 +00:00
florian
c3fb1e3a65 * initialize current_settings as early as possible so cs_debugswitch is set correctly if needed
git-svn-id: trunk@48676 -
2021-02-14 21:25:01 +00:00
florian
0316a7697f * arm thumb1: several fixes for the internal assembler writer
git-svn-id: trunk@48675 -
2021-02-14 17:52:26 +00:00
florian
33ce19799b * forgotten part of last commit
git-svn-id: trunk@48674 -
2021-02-14 17:15:37 +00:00
florian
f1883c4e61 * arm: taicpu uses set instead of boolean to store instruction states
+ track if an instruction is a thumb instruction in taicpu

git-svn-id: trunk@48673 -
2021-02-14 15:51:48 +00:00
florian
a4b35d16f2 + throw an error if hardware floating point operations are used in thumb(-1) mode, this is not supported
git-svn-id: trunk@48672 -
2021-02-13 22:17:35 +00:00
florian
dda9f83dfe * factored out tbasecgarm.init_mmregister_allocator
git-svn-id: trunk@48671 -
2021-02-13 22:16:59 +00:00
florian
87e1dc159d * do not mess with FPA registers if they are not available
git-svn-id: trunk@48669 -
2021-02-13 17:04:03 +00:00
florian
50bc387688 * handle -Ca (as proposed by Michael Ring) and -Cf in the first option pass as well
git-svn-id: trunk@48668 -
2021-02-13 14:37:07 +00:00
Jonas Maebe
03bfe3234d * correctly handle multiple codesign binaries in the PATH
git-svn-id: trunk@48664 -
2021-02-13 08:19:30 +00:00
nickysn
7ac2f9e242 * synchronized with trunk
git-svn-id: branches/wasm@48660 -
2021-02-13 02:46:23 +00:00
florian
98a748bdd6 + patch by Dimitrios Chr. Ioannidis: include dwar-3 sections in avr-embedded linker script
git-svn-id: trunk@48659 -
2021-02-12 21:39:31 +00:00
yury
afc80a84cf * Fixed r48650.
git-svn-id: trunk@48657 -
2021-02-12 11:26:37 +00:00
nickysn
a74024e7d5 * synchronized with trunk
git-svn-id: branches/wasm@48654 -
2021-02-12 01:54:24 +00:00
florian
7f1aac8bd7 - armv5 never existed (without extension), removed
git-svn-id: trunk@48652 -
2021-02-11 21:27:12 +00:00
florian
1c99c2655e * more helpful message if an unknown field is accessed in the assembler reader, resolves #38475
git-svn-id: trunk@48651 -
2021-02-11 20:51:53 +00:00
yury
4245b20a32 * Fixed expectloc of local variables passed as a formal parameter. This issue is caught by cycling the compiler with -dEXTDEBUG. Yet the compiler can't cycle with EXTDEBUG due to other issues with wrong expectloc.
git-svn-id: trunk@48650 -
2021-02-11 10:39:41 +00:00
florian
3b49e95415 * do not initialize unncessary register allocators
git-svn-id: trunk@48628 -
2021-02-10 19:52:52 +00:00
florian
ecce39a3b2 + throw a warning in ISO mode if a constant string is assigned to a char and the sizes do not match, resolves #38439
git-svn-id: trunk@48563 -
2021-02-09 20:48:27 +00:00
Károly Balogh
ada3d2050c m68k: write inline floating point immediates as hex consts, instead of scientific notation. the scientific notation format parsing depends on the libc the assembler was linked against, which can lead to varying results and compile errors
git-svn-id: trunk@48524 -
2021-02-08 05:01:45 +00:00
Károly Balogh
d0178f7ae0 m68k: fix a_loadfpu_ref_reg to call a_loadfpu_reg_reg instead of a_load_reg_reg. made a_loadfpu_reg_reg internalerror on invalid target sizes when loading to a different reg size
git-svn-id: trunk@48523 -
2021-02-08 04:12:21 +00:00
Károly Balogh
77fee8b4eb m68k: do not use OS_NO for FPU locations, but properly promote location sizes into the CG
git-svn-id: trunk@48522 -
2021-02-08 04:07:04 +00:00
Jonas Maebe
91d877919e * strip codesignature when comparing compiler binaries on Darwin
o fixes non-converging "make cycle" on macOS/AArch64 with DEBUG=1

git-svn-id: trunk@48518 -
2021-02-07 14:40:14 +00:00
florian
539a578cce * create \index entries in the messages.inc for an index of message texts and numbers in the user manual
git-svn-id: trunk@48517 -
2021-02-06 16:59:02 +00:00
nickysn
ae75c87d65 * synchronized with trunk
git-svn-id: branches/wasm@48515 -
2021-02-06 08:27:24 +00:00
florian
d0910b5ac8 * allow sub/add nodes in constant pointer expressions, resolves #34027
git-svn-id: trunk@48514 -
2021-02-05 22:10:27 +00:00
nickysn
cf3b883bce * synchronized with trunk
git-svn-id: branches/wasm@48513 -
2021-02-04 21:34:40 +00:00
nickysn
6f0a02a92d + apped end of symbol in TDebugInfoDwarf.afterappenddef
git-svn-id: branches/wasm@48510 -
2021-02-04 10:41:25 +00:00
nickysn
c073362928 - don't emit DEBUGSTART and DEBUGEND symbols for WebAssembly. See https://bugs.llvm.org/show_bug.cgi?id=48971
git-svn-id: branches/wasm@48509 -
2021-02-04 10:07:17 +00:00
florian
1e960a9aeb * the size of the CIE_pointer in an FDE is always 32 bit
git-svn-id: trunk@48507 -
2021-02-03 20:05:56 +00:00
nickysn
d52e918fc8 * synchronized with trunk
git-svn-id: branches/wasm@48480 -
2021-02-01 01:13:27 +00:00
florian
8b24d60df7 * removed accidently committed printnode
git-svn-id: trunk@48464 -
2021-01-31 13:19:55 +00:00
florian
8496690ed0 * additional fix for r48449
git-svn-id: trunk@48461 -
2021-01-30 22:47:38 +00:00
nickysn
80d3a8d130 * synchronized with trunk
git-svn-id: branches/wasm@48453 -
2021-01-29 23:45:05 +00:00
florian
4bec57702f * handle generic with ord call of sub-range and enumeration data excluding 0 correctly, resolves #38412
git-svn-id: trunk@48452 -
2021-01-29 21:31:59 +00:00
nickysn
e7d568ea38 * synchronized with trunk
git-svn-id: branches/wasm@48451 -
2021-01-29 04:03:57 +00:00
florian
e99827246e * fix type conversion for array indicies if the ordinal ranges of the involved types do not overlap, resolves #38413
git-svn-id: trunk@48449 -
2021-01-28 20:56:15 +00:00
nickysn
af12279bed * fixed local var dwarf debug info output for WebAssembly
git-svn-id: branches/wasm@48448 -
2021-01-28 17:15:14 +00:00
nickysn
fa30ae7d97 + added the DW_OP_WASM_location constant
git-svn-id: branches/wasm@48447 -
2021-01-28 16:25:35 +00:00
nickysn
e2e0756eaf * fixed compilation with -Sew
git-svn-id: branches/wasm@48446 -
2021-01-28 16:25:03 +00:00
nickysn
0ceefa4d22 + enabled DWARF debug info writing on the WebAssembly target. Note that it
doesn't work yet (produces internal errors).

git-svn-id: branches/wasm@48445 -
2021-01-28 16:16:32 +00:00
nickysn
c5cac5f554 * set the default debug info type to dbg_dwarf2 for the WebAssembly targets
git-svn-id: branches/wasm@48444 -
2021-01-28 15:55:31 +00:00
nickysn
4ef1367019 + added wasm32 inline procedure for generating the 'unreachable' instruction
git-svn-id: branches/wasm@48442 -
2021-01-28 12:48:56 +00:00
nickysn
95e0c7ab6e * synchronized with trunk
git-svn-id: branches/wasm@48433 -
2021-01-26 22:52:18 +00:00
florian
e5002dd291 * updated copyright year to 2021
git-svn-id: trunk@48432 -
2021-01-26 22:03:17 +00:00
nickysn
541b8e183d * synchronized with trunk
git-svn-id: branches/wasm@48429 -
2021-01-26 02:48:45 +00:00
nickysn
d8f2581357 * regenerated makefile after sync with trunk
git-svn-id: branches/wasm@48422 -
2021-01-25 20:53:18 +00:00
nickysn
eb7db76a31 * fixed compiler internal error, when compiling a unit that has an external function in its interface section
git-svn-id: branches/wasm@48421 -
2021-01-25 20:53:01 +00:00
Károly Balogh
67fcf0f03e m68k: revert r48224, the fix proposed in that patch was just hiding an underlying issue
git-svn-id: trunk@48415 -
2021-01-25 00:42:01 +00:00
Károly Balogh
10fa12bbae m68k: take rounding requirements into account in a_loadfpu_reg_reg and a_loadfpu_ref_reg
git-svn-id: trunk@48414 -
2021-01-25 00:27:59 +00:00
Károly Balogh
da1746426b m68k: do not optimize away fmove fpureg0, intreg0; fmove intreg0; fpureg0; constructs, they're used for rounding to single on FPUs with no resultprecision encoding
git-svn-id: trunk@48413 -
2021-01-25 00:12:53 +00:00
nickysn
64bb0359d2 * synchronized with trunk
git-svn-id: branches/wasm@48412 -
2021-01-24 23:38:35 +00:00
florian
0ab4515e58 * properly mangle interface wrapper names to avoid duplicate label errors, resolves #38385
git-svn-id: trunk@48411 -
2021-01-24 21:32:27 +00:00
florian
0b76059b37 * use generic VFP type instead of VFP list prone to changes
git-svn-id: trunk@48410 -
2021-01-24 21:13:41 +00:00
florian
5950a5f97b * compiler utils cannot depend on StrUtils
git-svn-id: trunk@48408 -
2021-01-24 18:07:13 +00:00
yury
6975437da8 * rgobj: ungetiftemp can't be used here since it frees only temps of the tt_normal type.
git-svn-id: trunk@48407 -
2021-01-24 17:53:42 +00:00
florian
e5c6e91bd0 + write message number to docs
+ enclose arguments in text angles

git-svn-id: trunk@48406 -
2021-01-24 17:43:15 +00:00
florian
91649eb2e5 * missing programs added to rules, so make clean works better
git-svn-id: trunk@48404 -
2021-01-24 17:40:02 +00:00
Jonas Maebe
9df70f08b1 * fix linker map generation on Darwin
git-svn-id: trunk@48401 -
2021-01-24 17:15:40 +00:00
pierre
268f7bfb5c Add cs_generate_uf2 entry into ppudump
git-svn-id: trunk@48398 -
2021-01-24 14:45:25 +00:00
florian
225eb8ed12 * do not output error numbers for options
git-svn-id: trunk@48397 -
2021-01-24 14:34:02 +00:00
yury
04727844b5 * Fixed value of the LF_PAD13 enum element.
git-svn-id: trunk@48396 -
2021-01-24 14:29:39 +00:00
yury
2567631aad * Removed in_x86mm_last (the duplicate no and unused) from the tinlinenumber enum.
git-svn-id: trunk@48395 -
2021-01-24 14:28:49 +00:00
florian
1f49e633b6 + modified patch by Christo Crause: if the target support, the switch -Xu can be used to generate the executable as an uf2 file
git-svn-id: trunk@48394 -
2021-01-24 14:21:03 +00:00
yury
9b1567f054 * Corrected method's visibility.
git-svn-id: trunk@48393 -
2021-01-24 14:06:35 +00:00
yury
4fa99cff62 * Removed more assigned but unused vars.
git-svn-id: trunk@48392 -
2021-01-24 14:05:21 +00:00
yury
75491ae21c * Removed/ifdefed the assigned and unused variables.
git-svn-id: trunk@48391 -
2021-01-24 13:58:17 +00:00
yury
0ab6b1ab4d * Commented out the unneeded/unfinished code.
git-svn-id: trunk@48390 -
2021-01-24 13:35:32 +00:00
yury
31cd3df783 * Fixed r44145. To test if a constant is declared it is needed to use {$if declared()} instead of {$if defined()}.
git-svn-id: trunk@48389 -
2021-01-24 13:32:11 +00:00
yury
9c265d71f0 * Fixed a wrong code caused by a typo. It has been revealed by a note about an unused var.
git-svn-id: trunk@48387 -
2021-01-24 13:08:54 +00:00
yury
221efd7a80 * Commented out some unused (yet?) local variables.
git-svn-id: trunk@48386 -
2021-01-24 13:04:17 +00:00
yury
0a021be803 * Corrected visibility of overridden methods.
git-svn-id: trunk@48385 -
2021-01-24 12:41:12 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
nickysn
f5d75423b9 * fixed ti8086vecnode.get_address_type not returning result
git-svn-id: branches/wasm@48377 -
2021-01-24 03:12:22 +00:00
nickysn
71f5fd320a + insert hlcg.g_ptrtypecast_reg calls in tcgvecnode.update_reference_reg_mul and update_reference_reg_packed
git-svn-id: branches/wasm@48376 -
2021-01-24 02:46:31 +00:00
nickysn
c3c199cf67 * show the list of wasm32 targets in the compiler help screen
git-svn-id: branches/wasm@48375 -
2021-01-24 02:25:00 +00:00