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
pierre
8fd0a27875
Avoid range check error for avr/i8086 CPU by changing local variable dist type to asizeuint
...
git-svn-id: trunk@42741 -
2019-08-19 20:22:22 +00:00
Károly Balogh
4936358bee
m68k: fpu capabilities support
...
git-svn-id: trunk@42739 -
2019-08-19 15:07:22 +00:00
Jonas Maebe
14a7429e19
* factored out inlinenode check whether it may have a side effect
...
o also added register assert as having a side-effect (if asserts are
enabled)
git-svn-id: trunk@42728 -
2019-08-18 15:55:03 +00:00
florian
5d1d9858d1
+ VMovVMov2VMov optimization
...
git-svn-id: trunk@42727 -
2019-08-18 12:09:03 +00:00
florian
3d5ab366e1
* fix RemoveSuperfluousVMov if the VMov destination reg is an integer register, resolved #35978
...
git-svn-id: trunk@42726 -
2019-08-18 11:28:39 +00:00
florian
4f38f12815
-- Zusammenführen von r42706 bis r42724 in ».«:
...
U tests/utils/avx/avxopcodes.pas
U compiler/x86/aasmcpu.pas
U compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r42724 in ».«:
U .
git-svn-id: trunk@42725 -
2019-08-18 11:18:41 +00:00
tg74
9baf452681
Bugfix GATHER/SCATTER memref
...
git-svn-id: branches/tg74/avx512merge@42723 -
2019-08-18 04:39:36 +00:00
florian
9230ae5aab
o overhaul-base.patch by J. Gareth Moreton, base for further patches
...
+ some inline directives added
+ some functions exported from units
git-svn-id: trunk@42722 -
2019-08-17 16:14:22 +00:00
pierre
970ce7f243
Avoid error with -CR option in tobjectdef.vmt_def method
...
git-svn-id: trunk@42711 -
2019-08-16 16:31:08 +00:00
florian
ba203c0564
+ x86 makes use of fpu_capabilities
...
* moved CPUX86_HAS_AVXUNIT to FPUX86_HAS_AVXUNIT
+ mm register allocator can be initialized with 32 mm registers of AVX512
git-svn-id: trunk@42707 -
2019-08-16 11:35:03 +00:00
svenbarth
44bfa98a30
* fix for Mantis #35955 : when the element of an array constructer requires an operator for conversion we don't let the caller of compare_defs_ext know that, instead we simply say that some conversion is required and let the typecheck handler deal with the element wise conversion
...
+ added test
git-svn-id: trunk@42700 -
2019-08-15 14:33:00 +00:00