Commit Graph

157 Commits

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