Jonas Maebe
a051b8d225
- remmoved doregister parameter from t*sym constructors, as the registration
...
is handled automatically nowadays
git-svn-id: trunk@42998 -
2019-09-14 17:30:45 +00:00
Jonas Maebe
d14fd51d0b
* fix potential crash with copied goto nodes on nestedparentfp platforms
...
o as described in the comment for the tgotonode.labsym field, it will
be null for copied gotonodes
git-svn-id: trunk@42997 -
2019-09-14 17:22:23 +00:00
svenbarth
61642ffaa4
* Aarch64 asm reader: explicitely set the refaddr for local labels
...
git-svn-id: trunk@42989 -
2019-09-13 20:38:25 +00:00
svenbarth
ef154fb454
* Aarch64 asm reader: LDR instruction allows labels as well
...
git-svn-id: trunk@42988 -
2019-09-13 20:38:22 +00:00
Jonas Maebe
ef6dde6de3
* fixed loading the address of a copied labelnode in a loadnode
...
(mantis #35877 )
git-svn-id: trunk@42987 -
2019-09-13 19:06:40 +00:00
Jonas Maebe
e3e23df7e2
* document how tgotonode/tlabelnode copying works
...
git-svn-id: trunk@42986 -
2019-09-13 19:06:34 +00:00
florian
4e93a9a6c7
* AVR: patch by Christo Crause: fixes tcgavr.g_concatcopy for data with size>255, resolves #36066
...
git-svn-id: trunk@42977 -
2019-09-12 20:29:12 +00:00
florian
fa2e751f9f
+ AArch64: implementation of taarch64casenode.genlinearlist
...
git-svn-id: trunk@42973 -
2019-09-10 18:46:56 +00:00
florian
58eef0a5aa
+ AAarch64: TCpuAsmOptimizer.OptPass1Shift makes use of RemoveSuperfluousMove
...
git-svn-id: trunk@42971 -
2019-09-09 20:59:55 +00:00
Jonas Maebe
cdafe680c2
* different definitions for the same Objective-C class (can happen with
...
external class declarations) need a type conversion in LLVM (because
they're represented by different LLVM types)
git-svn-id: trunk@42970 -
2019-09-09 18:33:37 +00:00
Jonas Maebe
dcf4e4cb2c
* support taking the address of labels defined in assembler blocks in the
...
LLVM code genrator (for the rtti unit's thunk hacking)
git-svn-id: trunk@42969 -
2019-09-09 18:33:33 +00:00
Károly Balogh
aea0f3e667
m68k: build fix (premature commits are the root of all evil too)
...
git-svn-id: trunk@42966 -
2019-09-09 07:47:34 +00:00
Károly Balogh
d25820b830
m68k: added CPUM68K_HAS_BYTEWORDMATH and CPUM68K_HAS_INDEXWORD capabilities
...
git-svn-id: trunk@42964 -
2019-09-08 22:43:34 +00:00
florian
ce9e1a3419
+ AArch64: FoldShiftProcess fixed
...
git-svn-id: trunk@42963 -
2019-09-08 20:53:43 +00:00
florian
c3c3e99c64
+ AArch64: implemented TCpuAsmOptimizer.OptPass1Data
...
git-svn-id: trunk@42962 -
2019-09-08 20:53:43 +00:00
florian
bc473508ff
* AArch64: several issues with taicpu.spilling_get_operation_type fixed
...
git-svn-id: trunk@42961 -
2019-09-08 20:53:42 +00:00
florian
cc49d256ea
+ AArch64: CMPB.E/NE2CBNZ/CBZ optimization
...
git-svn-id: trunk@42960 -
2019-09-08 20:53:41 +00:00
Károly Balogh
353fc13257
m68k: cleanup of the ancient mess from cgsize2subreg
...
git-svn-id: trunk@42949 -
2019-09-08 13:55:19 +00:00
Károly Balogh
fa1203029f
m68k: use cpu_capabilities when deciding to inject scaling into a ref. also allow scaling in more cases.
...
git-svn-id: trunk@42947 -
2019-09-08 13:37:22 +00:00
Károly Balogh
50fe8f70f5
m68k: make sure we're not trying to allocate a subregister for float paras when R_SUBWHOLE <> R_SUBNONE
...
git-svn-id: trunk@42946 -
2019-09-08 13:34:39 +00:00
Károly Balogh
16fc8c8d9a
m68k: added some handling for the explicit precision FPU instructions in the spilling and optimizer. fixed a_fsabs and a_fdabs names
...
git-svn-id: trunk@42943 -
2019-09-08 09:21:17 +00:00
pierre
5d9771d141
Suppress range check/invalid typecast errors when compiling with -CriotR option
...
git-svn-id: trunk@42942 -
2019-09-07 21:14:12 +00:00
florian
9e5cbce6be
* fix tcgavr.g_flags2reg for sizes > 1 byte
...
git-svn-id: trunk@42938 -
2019-09-07 20:19:12 +00:00
Károly Balogh
fd1d227175
m68k: more refactoring for fpu_capabilities instead of hardwired fpu types. 68040 and 68060 fpu types should now work
...
git-svn-id: trunk@42929 -
2019-09-06 07:56:06 +00:00
Károly Balogh
db2875ceba
m68k: added the remaining instructions with explicit rounding precision. fixed fsflmul to be fsglmul (this is also typo in the original 68k PRM)
...
git-svn-id: trunk@42928 -
2019-09-06 07:25:45 +00:00
Károly Balogh
2a87b885b1
m68k: added the most important FPU instructions with explicit rounding precision (eg. FSADD/FDADD)
...
git-svn-id: trunk@42927 -
2019-09-05 21:51:36 +00:00
Károly Balogh
5eee29e5d1
m68k: refactor some code to not fail when the tasmop set will be bigger than 256 elements
...
git-svn-id: trunk@42926 -
2019-09-05 21:49:27 +00:00
Károly Balogh
de095c4631
m68k: refactoring to use fpu_capabilities at more places instead of hardwiring certain fpu types
...
git-svn-id: trunk@42925 -
2019-09-05 21:43:51 +00:00
florian
0c6f7321bf
+ AArch64: FoldShiftProcess optimization
...
git-svn-id: trunk@42924 -
2019-09-05 20:15:56 +00:00
Károly Balogh
36286441b2
m68k: try to optimize realconst operands into B/W/L sized integer operands. these are shorter to encode - which almost always means faster on m68k
...
git-svn-id: trunk@42923 -
2019-09-05 19:32:57 +00:00
florian
a019536cd5
* avoid that -0.0 is handled by the eor optimization
...
git-svn-id: trunk@42921 -
2019-09-04 20:45:24 +00:00
florian
8ffb72ddd0
* another missing part of r42916 ...
...
git-svn-id: trunk@42919 -
2019-09-04 16:36:54 +00:00
florian
69786ffe73
somehow committing went wrong, second part of last commit:
...
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
git-svn-id: trunk@42917 -
2019-09-03 21:07:33 +00:00
florian
a5a87fa84c
+ AArch64: support for vX.8b/vX.16b register names
...
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
+ small command line tool for quick creating of vfp register list in a64reg.dat
git-svn-id: trunk@42916 -
2019-09-03 20:59:13 +00:00
pierre
0e02b4f58c
Fix problems with big endian systems without 80-bit floating point support
...
git-svn-id: trunk@42906 -
2019-09-02 16:00:15 +00:00
florian
078595be4c
+ support for software floating point exception handling on AArch64 (-CE)
...
git-svn-id: trunk@42891 -
2019-09-01 17:26:11 +00:00
florian
9c00a8b616
+ FMA support for aaarch64
...
git-svn-id: trunk@42885 -
2019-08-31 19:37:17 +00:00
pierre
0fa280f4c2
Fix code generated in tarmnotnode.second_boolean
...
git-svn-id: trunk@42860 -
2019-08-28 07:38:35 +00:00
pierre
d29a6de437
Avoid possible warning about uninitialized srsym variable
...
git-svn-id: trunk@42857 -
2019-08-27 12:15:03 +00:00
florian
fd20dc1086
* support unique copies of currencies which are handles by torddef, resolves #36013
...
git-svn-id: trunk@42837 -
2019-08-26 19:31:48 +00:00
Jonas Maebe
a6a6c2cb07
* fixed size of base stack frame for ELFv2
...
git-svn-id: trunk@42835 -
2019-08-26 19:26:14 +00:00
Károly Balogh
0ef47f6426
m68k: tabs 2 spaces, no functional changes
...
git-svn-id: trunk@42829 -
2019-08-26 13:08:39 +00:00
Jonas Maebe
956aab3be0
* implement support for the Objective-C "related result type" convention
...
as described on
http://releases.llvm.org/8.0.0/tools/clang/docs/LanguageExtensions.html#objective-c-features
(rest of mantis #35994 )
git-svn-id: trunk@42816 -
2019-08-25 15:23:53 +00:00
Jonas Maebe
bc7b90185f
* when searching for a procsym in an Objective-C category for an objcclass,
...
try to find the procsym in the category of the objcclass that is closest
related to the original objcclass (e.g.
NSMutableDictionary.dictionaryWithContentsOfFile() -> prefer the
dictionaryWithContentsOfFile() from NSMutableDictionaryCreation to the
one from NSDictionaryCreation (part of mantis #35994 )
git-svn-id: trunk@42815 -
2019-08-25 15:23:48 +00:00
Károly Balogh
d29f44e1c7
m68k: rework of the inline nodes to use fpu_capabilities. added fast path for round/trunc (enabled for fastmath only)
...
git-svn-id: trunk@42814 -
2019-08-25 12:12:15 +00:00
svenbarth
b0b2218cca
* fix for Mantis #35981 : ensure that the "specialize" token is only really used in non-Delphi modes
...
git-svn-id: trunk@42776 -
2019-08-23 14:59:20 +00:00
Károly Balogh
3662afe93b
m68k: added more cpu capabilities. changed the CG at a few places to actually use them
...
git-svn-id: trunk@42763 -
2019-08-22 15:38:08 +00:00
pierre
5ed7bd35df
Update all trunk/fpcsrc Makefile's after commit 42749
...
git-svn-id: trunk@42750 -
2019-08-20 15:58:10 +00:00
nickysn
94e22f1262
+ added a getter for the NewExeSegmentFlags property, that returns the
...
nesfHasRelocationData flag according to whether the Relocations list is
non-empty
git-svn-id: trunk@42746 -
2019-08-20 13:49:43 +00:00
nickysn
e7d590724a
+ added and implemented the TNewExeRelocationList class
...
git-svn-id: trunk@42744 -
2019-08-20 11:42:07 +00:00