Jonas Maebe
3fee990218
* on Mach-O, PECOFF and ELF platforms, write local symbols as hidden/
...
private_extern (or plain global in case of PECOFF, as the effect is
the same there): visible across object files, but they become local
when linked into a binary/library. This enables cross-unit inlining
of functions accessig implementation-only symbols.
git-svn-id: trunk@42340 -
2019-07-07 21:33:43 +00:00
Jonas Maebe
50c82b6468
* synchronised with trunk till r41537
...
git-svn-id: branches/debug_eh@41538 -
2019-03-01 16:20:22 +00:00
florian
075e3da334
* better alignment values
...
git-svn-id: trunk@41521 -
2019-02-27 22:13:54 +00:00
florian
ded001753d
+ initial native x86-64 support
...
git-svn-id: branches/debug_eh@41499 -
2019-02-26 22:08:20 +00:00
florian
501b384b17
+ define psabieh to enable dwarf based exception handling
...
git-svn-id: branches/debug_eh@41288 -
2019-02-10 18:01:11 +00:00
Jonas Maebe
9d07e4948f
* fix compilation of ARM compiler for LLVM
...
git-svn-id: branches/debug_eh@41210 -
2019-02-03 21:09:54 +00:00
Jonas Maebe
a0d796e98d
* synchronised with trunk till r41159
...
git-svn-id: branches/debug_eh@41160 -
2019-02-01 17:01:54 +00:00
florian
597a23d278
+ tls support for x86_64-linux (not yet enabled by default)
...
git-svn-id: trunk@41081 -
2019-01-27 09:37:25 +00:00
Jonas Maebe
11511e13d5
* synchronised with trunk till r40723
...
git-svn-id: branches/debug_eh@40724 -
2019-01-01 13:22:17 +00:00
Jonas Maebe
dee1056546
* fixed wrong change of jumpalignmax from 10 to 16 in previous commit
...
o renamed jumpalignmax and coalescealignmax to jumpalignskipmax/
coalescealignskipmax to better reflex the meaning of these setting
(and the difference in meaning to e.g. constalignmax)
git-svn-id: trunk@40682 -
2018-12-28 13:22:50 +00:00
Jonas Maebe
9a797b9f49
* changed maxjumpalign:10 to 16
...
* changed (max)jumalign for Darwin/x86_64 from 0 to 16
git-svn-id: trunk@40681 -
2018-12-28 12:06:46 +00:00
florian
ce81e50907
* better code alignment for x86_64-win64 and x86_64-linux
...
git-svn-id: trunk@40679 -
2018-12-27 22:07:30 +00:00
Jonas Maebe
f26ac9026e
* enable LLVM support Linux/AArch64
...
o also put the regular function result before the partfpstruct parameter
git-svn-id: branches/debug_eh@40577 -
2018-12-16 20:46:44 +00:00
Jonas Maebe
60488c3c06
* synchronised with trunk till r40443
...
git-svn-id: branches/debug_eh@40444 -
2018-12-01 23:08:18 +00:00
Jonas Maebe
e8512d19b5
* set constalignmax to the same value as varalignmax for all targets where
...
constalignmax was lower (which does not make sense)
git-svn-id: trunk@40443 -
2018-12-01 23:07:09 +00:00
Jonas Maebe
c0ce94528f
* use Dwarf-EH for Linux/x86-64 when using the LLVM code generator
...
git-svn-id: branches/debug_eh@40436 -
2018-12-01 20:30:40 +00:00
florian
08d6ca7260
* better alignment on 386-linux
...
git-svn-id: trunk@40338 -
2018-11-17 15:08:22 +00:00
florian
4d2d26c318
* define renamed into tls_threadvars
...
git-svn-id: trunk@40274 -
2018-11-07 22:03:04 +00:00
florian
9f16c34329
+ initial work for tls-based threadvar support on arm-linux
...
git-svn-id: trunk@40267 -
2018-11-07 22:02:58 +00:00
florian
a092da723a
+ new fields for more precise control of alignment
...
+ support of new alignment control values for GNU AS writer
+ support of new alignment control values for binary writer
* better alignment settings on i386-win32
* improved inserted align directives for if nodes
git-svn-id: trunk@40159 -
2018-11-01 20:49:17 +00:00
Jeppe Johansen
d33b520690
Clean up peephole optimization code.
...
Add hardfloat ABI option for RiscV. Still needs proper implementation though.
Add CG support for profiling.
git-svn-id: branches/laksen/riscv_new@39798 -
2018-09-24 17:15:22 +00:00
Jeppe Johansen
054bf32f1f
Add RV64GC cpu type.
...
Fix float loading.
Fix a number of small issues with wrong operand sizes.
Fixed concatcopy code generation.
Align jump table for case statements.
git-svn-id: branches/laksen/riscv_new@39481 -
2018-07-21 22:34:42 +00:00
Jeppe Johansen
ceb38833f2
Added RiscV32/64 target, from a cleaned up version of branches/laksen/riscv/trunk.
...
git-svn-id: branches/laksen/riscv_new@39474 -
2018-07-20 08:21:15 +00:00
Károly Balogh
ad89a972e5
m68k: also have tf_safecall_clearstack flag defined for Linux
...
git-svn-id: trunk@36611 -
2017-06-28 23:55:17 +00:00
Károly Balogh
890f4ac2bc
m68k: use 2 byte alignments for C structs on Linux
...
git-svn-id: trunk@36595 -
2017-06-24 23:19:00 +00:00
Károly Balogh
da11451934
m68k: revert the 2 byte C record alignment fix on Linux. sadly it completely breaks RTTI, which takes longer to fix, so meanwhile, at least cause no regressions
...
git-svn-id: trunk@36591 -
2017-06-24 10:50:24 +00:00
Károly Balogh
4258413e8c
m68k: revert recordalignmax to 2 on Linux. the value of 4 caused a bunch of weird RTTI test failures
...
git-svn-id: trunk@36590 -
2017-06-23 21:24:39 +00:00
Károly Balogh
bf3478fb35
m68k: fix C struct alignment on Linux. tested against GCC on current Debian-m68k
...
git-svn-id: trunk@36589 -
2017-06-23 20:47:06 +00:00
Károly Balogh
cf8aebf00f
m68k: enabled safecall exception wrappers with linux
...
git-svn-id: trunk@36575 -
2017-06-22 15:31:32 +00:00
florian
719faf5e54
* more restrictive alignment for variables
...
git-svn-id: trunk@36549 -
2017-06-19 21:18:11 +00:00
florian
2e2e560d5a
* use dwarf on sparc64
...
git-svn-id: trunk@36539 -
2017-06-19 21:17:51 +00:00
florian
3c72115e30
* basic sparc64 calling convention handling and stack frame handling fixed
...
git-svn-id: trunk@36518 -
2017-06-18 15:49:21 +00:00
florian
21e5f99faa
+ some basic compiler support for sparc64-linux
...
git-svn-id: trunk@36418 -
2017-06-04 22:07:24 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
Jeppe Johansen
291434be22
Enabled internal assembler for arm-linux. Will allow people to start running tests.
...
git-svn-id: trunk@32377 -
2015-11-20 14:37:10 +00:00
Jonas Maebe
3f9f498e0d
- removed leftover alpha, ia64 and vis code
...
git-svn-id: trunk@31446 -
2015-08-28 22:31:29 +00:00
Jonas Maebe
8628d50aba
+ Linux/AArch64 compiler support (patch by Edmund Grimley Evans)
...
git-svn-id: trunk@30893 -
2015-05-22 09:25:05 +00:00
nickysn
7ff6c2a675
- rm tf_smartlink_library from targets that define tf_smartlink_sections, since
...
in certain places, the code in the compiler assumes that only one of the two
is defined, resulting in libraries with missing externals when both are
defined and there's no much point in supporting both anyway, since section
based smartlinking achieves the same thing (in a better way) on these
platforms.
git-svn-id: trunk@30668 -
2015-04-19 18:47:44 +00:00
Jonas Maebe
bd203a5b57
* synchronised with trunk till r30240
...
git-svn-id: branches/hlcgllvm@30241 -
2015-03-15 19:44:58 +00:00
Jonas Maebe
3946971c73
* default to ppc64le/elfv2 when compiling on a ppc64le platform
...
* default to elfv2 abi when targeting ppc64le and no abi has been specified
git-svn-id: trunk@30193 -
2015-03-14 18:35:16 +00:00
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
pierre
6ce8aeed27
+ mips/mipsel libraries need PIC
...
git-svn-id: trunk@29752 -
2015-02-18 13:53:20 +00:00
sergei
da8346079f
* mips-linux: Enabled tf_safecall_exceptions (it just works, no reason to keep disabled) and also tf_pic_uses_got (so that checks elsewhere in compiler set pi_needs_got flag; actual functionality is not changed because currently MIPS just forces pi_needs_got unconditionally).
...
git-svn-id: trunk@29360 -
2014-12-29 23:26:40 +00:00
Jonas Maebe
5c75b6dd6b
* synchronised with trunk up till r28402
...
git-svn-id: branches/hlcgllvm@28403 -
2014-08-13 16:04:30 +00:00
sergei
b9763d270a
+ Enabled section smartlinking for m68k-linux.
...
git-svn-id: trunk@28302 -
2014-08-02 23:00:36 +00:00
Jonas Maebe
9573160c1a
+ llvmdatalayout field for tsysteminfo that contains the encoded data layout
...
as used by llvm for most targets (taken from clang, adapted in some cases
where we use a custom stack alignment)
git-svn-id: branches/hlcgllvm@26032 -
2013-11-11 11:14:55 +00:00
florian
6606955b88
+ basic support for pic on arm-linux
...
git-svn-id: trunk@25297 -
2013-08-19 21:35:37 +00:00
sergei
38058505ba
* Changed linking infrastructure to look like assembler one:
...
* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
* RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
- TAbstractLinker is no longer necessary, removed.
This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.
git-svn-id: trunk@25279 -
2013-08-18 12:01:21 +00:00
florian
0e41df598e
* merge i8086 branch by Nikolay Nikolov
...
git-svn-id: trunk@24324 -
2013-04-25 20:23:51 +00:00
florian
b817b6f62a
* enable section smartlinking on all linux targets
...
git-svn-id: trunk@24146 -
2013-04-04 09:43:00 +00:00