florian
df4ec9e8e3
* arm-linux uses dwarf debug info by default
...
git-svn-id: trunk@43133 -
2019-10-05 20:48:30 +00:00
florian
a2d3522812
* general-dynamic -> global-dynamic
...
git-svn-id: trunk@43132 -
2019-10-05 20:48:29 +00:00
florian
7ee889d4ec
* it must be decided in allocate_tls_register if a tls register is allocated
...
git-svn-id: trunk@43131 -
2019-10-05 20:48:28 +00:00
florian
16163b74ec
+ support for the gnu2 general-dynamic tls model on arm, use it instead of the gnu one as the gnu2 one can be relaxed (access optimizations by the linker)
...
+ support pic relocations in the internal assembler writer
git-svn-id: trunk@43128 -
2019-10-05 20:48:26 +00:00
florian
abb9401011
+ tls models tlsm_general_dynamic and tlsm_local_exec for arm
...
git-svn-id: trunk@43127 -
2019-10-05 20:48:24 +00:00
florian
c3f4ad39a3
* it must be decided in g_maybe_tls_init if a tls is loaded
...
git-svn-id: trunk@43126 -
2019-10-05 20:48:24 +00:00
florian
988dce14c7
* cosmetics
...
git-svn-id: trunk@43125 -
2019-10-05 20:48:23 +00:00
florian
cffc69ec1d
+ support pi_needs_tls
...
git-svn-id: trunk@43124 -
2019-10-05 20:48:22 +00:00
florian
03dfc615dc
+ new relocations for arm tls
...
git-svn-id: trunk@43123 -
2019-10-05 20:48:21 +00:00
florian
03f7ef4c63
* renamed tls model switches and symbols to match gcc
...
git-svn-id: trunk@43122 -
2019-10-05 20:48:20 +00:00
svenbarth
3ae1b04d09
* disable the use of C-operators inside the compiler's sources
...
git-svn-id: trunk@43120 -
2019-10-05 09:42:52 +00:00
svenbarth
79bdee3278
* finally implement tdynamicarray.equal so that exact match comdat sections work as well
...
git-svn-id: trunk@43119 -
2019-10-05 09:42:49 +00:00
svenbarth
beb606be13
* fix for Mantis #36114 : when converting a static class field to a global variable the varspez of the field needs to be respected
...
+ added test
git-svn-id: trunk@43116 -
2019-10-03 16:39:40 +00:00
svenbarth
562d345060
* fix for Mantis #36121 : define FPC_ISO and FPC_EXTENDEDPASCAL for modes ISO and EXTENDEDPASCAL respectively
...
git-svn-id: trunk@43114 -
2019-10-03 12:34:36 +00:00
Jonas Maebe
49026e1261
* add "readonly" attribute for constant pointer parameters on LLVM
...
git-svn-id: trunk@43089 -
2019-09-29 10:29:57 +00:00
Jonas Maebe
b99323bb19
* fix LLVM compilation after r43076
...
git-svn-id: trunk@43088 -
2019-09-29 10:29:54 +00:00
florian
3949be6989
* be able to set an AT_* for datablocks
...
* set AT_TLS if needed
git-svn-id: trunk@43076 -
2019-09-25 21:19:07 +00:00
florian
11319353fd
* loading a got depends only on the fact if a got is needed and not if pic shall be generated
...
git-svn-id: trunk@43075 -
2019-09-25 21:19:06 +00:00
florian
9e8bc7c935
* the general section threadvar model needs a got but pic is not required
...
git-svn-id: trunk@43074 -
2019-09-25 21:19:06 +00:00
florian
4064c5f39b
* section thread vars need to be access with the symbol type AT_TLS
...
git-svn-id: trunk@43073 -
2019-09-25 21:19:05 +00:00
florian
d8e2db2691
+ command line switch -CV to select the threadvar model for section threadvars
...
git-svn-id: trunk@43071 -
2019-09-25 21:19:04 +00:00
florian
56d91b4ca7
+ support tls threadvars with the internal assembler
...
git-svn-id: trunk@43070 -
2019-09-25 21:19:03 +00:00
florian
f6667a5143
* we have to use __tls_get_addr from the dyn. linker lib else tls on programs with pure pascal dyn. libraries fail
...
git-svn-id: trunk@43069 -
2019-09-25 21:19:01 +00:00
florian
14b7eaa46f
+ x86-64: implemented support for relocation needed by tls threadvars in the binary elf writer
...
git-svn-id: trunk@43067 -
2019-09-25 21:18:59 +00:00
florian
bd1d6f335d
* if we load a got depends only if one is needed, not if PIC is generated as this could be also caused by tls support
...
git-svn-id: trunk@43055 -
2019-09-22 15:27:51 +00:00
florian
02deb7d954
* try to avoid to use pic based calls
...
git-svn-id: trunk@43054 -
2019-09-22 15:27:50 +00:00
Károly Balogh
eb71d11b99
m68k: also handle OS_64 register sizes in cgsize2subreg
...
git-svn-id: trunk@43045 -
2019-09-20 13:48:30 +00:00
Károly Balogh
435b57bdb1
m68k: allow vecnode to use word size index registers
...
git-svn-id: trunk@43044 -
2019-09-20 11:37:18 +00:00
Károly Balogh
19a6964088
m68k: add subregisters. on 68k, these are not as universal as on x86 and work differently, but the compiler needs this infrastructure to do 16bit math (which is a massive improvement on '000) or word-size indexes on CPUs which support it
...
git-svn-id: trunk@43043 -
2019-09-20 11:35:35 +00:00
pierre
eb3a470f45
* assemble.pas (TInternalAssembler.TreePass0): Avoid range/overflow check error.
...
(TInternalAssembler.TreePass2): Check that objsymend and objsym are in same section
and avoid range/overflow check error.
git-svn-id: trunk@43028 -
2019-09-17 21:06:18 +00:00
pierre
0fa70759a2
* cutils.pas (size_2_align): Move to..
...
globals.pas (size_2_align): ...here.
Change parameter type to asizeuint to avoid overflows.
(var_align_size, const_align_size): Also change parameter type to asizeuint.
i386/cpupara.pas, i8086/cpupara.pas, x86_64/cpupara.pas: Add globals
to implementation uses clause because of size_2_align move.
git-svn-id: trunk@43022 -
2019-09-16 14:50:43 +00:00
Jonas Maebe
9678542ba6
+ add "thunk" attribute for stubs/thunks and emit it for LLVM
...
- also removed wrong "noreturn" attribute for interface thunks generated
for high level code generator targets
git-svn-id: trunk@43018 -
2019-09-15 20:43:12 +00:00
Jonas Maebe
ff2d718699
* fixed occasional rounding error with currency constants on the LLVM targets
...
(fixes test/tcustomattr13.pp)
git-svn-id: trunk@43017 -
2019-09-15 20:43:09 +00:00
Jonas Maebe
4deb62ad87
* fix for "ldr label" support in AArch64 assembler reader (r42988)
...
git-svn-id: trunk@43016 -
2019-09-15 17:26:25 +00:00
florian
bfd83911e4
* set stack alignment for i386-linux to 16 byte boundaries, this implies a fixed stack layout inside the subroutine code as well
...
git-svn-id: trunk@43014 -
2019-09-15 17:17:33 +00:00
florian
26d8cc9142
+ define FPC_STACKALIGNMENT
...
git-svn-id: trunk@43008 -
2019-09-15 17:17:28 +00:00
florian
896e031e84
* interrupt procedures fixed for i386 targets with a fixed stack with 16 byte alignment
...
git-svn-id: trunk@43006 -
2019-09-15 17:17:27 +00:00
Jonas Maebe
9e7cf37cd6
* changed resulttype and firstpass processing from recursion into loop, based
...
on patch/idea by J. Gareth Moreton (as part of his patch in #35857 )
git-svn-id: trunk@43004 -
2019-09-15 16:18:14 +00:00
Jonas Maebe
78c901e3c4
* mention LLVM define
...
git-svn-id: trunk@43000 -
2019-09-14 17:31:11 +00:00
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