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
nickysn
3a4135c07b
ifdef cpu86 replaced with ifdef cpui386
...
git-svn-id: branches/i8086@23709 -
2013-03-07 22:21:27 +00:00
florian
318f0e5cab
* enable section smartlinking for powerpc-linux to reduce compilation
...
times, some testing with qemu-ppc showed no problems
git-svn-id: trunk@23305 -
2013-01-03 23:04:29 +00:00
Károly Balogh
8fe2828e5a
it seems Coldfire needs tf_requires_proper_alignment, fixes taddr1/2 tests, maybe others too (but someone with clue about RTTI should confirm)
...
git-svn-id: trunk@23270 -
2013-01-01 04:51:47 +00:00
pierre
714bb61b51
Set res field to res_elf for linux mips/mipsel systems
...
git-svn-id: trunk@22605 -
2012-10-09 14:10:23 +00:00
pierre
e2f5e11778
Add tf_pic_uses_got for sparc linux and sparc solaris
...
git-svn-id: trunk@22485 -
2012-09-27 15:54:21 +00:00
Jonas Maebe
bd31004fdb
+ describe for each supported target the default guaranteed stack alignment
...
git-svn-id: trunk@22278 -
2012-09-02 14:32:12 +00:00
pierre
f1687fe8a6
Do not include CPUMIPS32 in extradefines for mips/mipsel systems as it is added in options unit
...
Do not include MIPSEL in extradefines for system_mipsel_linux as this forbids cross-compilation
git-svn-id: trunk@22263 -
2012-08-28 13:51:29 +00:00
pierre
0a21c01737
Use 8 for max record alignment for mips/mipsel
...
git-svn-id: trunk@21782 -
2012-07-04 16:34:51 +00:00
pierre
d2dc860b1b
Use 4 for mips(eb/el) recordalignmax field
...
git-svn-id: trunk@21669 -
2012-06-21 11:49:49 +00:00
pierre
ca497405b8
Avoid double call to set_source_info for mipsel
...
git-svn-id: trunk@21614 -
2012-06-14 15:51:49 +00:00
pierre
600dd162af
Merge of rev21557 by Foxsen
...
Make macro MIPS/CPUMIPS/MIPS32 common for big endian and little endian mips processors
use MIPSEL* for little endian systems
use MIPSEB* for big endian systems
git-svn-id: trunk@21599 -
2012-06-13 22:25:38 +00:00
pierre
9fc6f91cd0
Set correct source info for mips/mipsel
...
git-svn-id: trunk@21545 -
2012-06-08 10:07:46 +00:00
pierre
ac38901d2a
* Patch from Fuxin Zhang: set first_pram_offset to 0 for mips and mipsel CPUs
...
git-svn-id: trunk@21534 -
2012-06-07 23:11:16 +00:00
florian
4b7748ad11
* better suitable on x86_64-linux
...
git-svn-id: trunk@20876 -
2012-04-14 20:09:31 +00:00
Jonas Maebe
6ba8dc7146
+ support for the ARM hard float EABI on Linux (patch by Peter Green):
...
o new eabihf (hard float) abi
o vfpv3_d16 variant of VFP (default variant used by EABI assemblers: VFPv3
with only 16 double registers instead of 32) and pass it to GNU as
o make the odd numbered single precision floating point VFP registers
available for explicit allocation for use by the calling convention
* fixed copy/paste error in stdname of S30 register
-> use -dFPC_ARMHF to create an ARM eabi hard float compiler
(mantis #21554 )
git-svn-id: trunk@20660 -
2012-03-29 20:50:09 +00:00
florian
8b339ded7a
* started to fix the mips(el) linux rtl
...
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +00:00