Commit Graph

22250 Commits

Author SHA1 Message Date
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