Commit Graph

182 Commits

Author SHA1 Message Date
Pierre Muller
f410d8a77c Set defualt riscv32 linux abi to abi_riscv_ipl32 2023-06-13 19:41:02 +00:00
Jinyang He
3d2c96ebbf Add loongarch64 linux support to compiler 2023-02-05 19:18:48 +00:00
florian
f8848dd185 * fix for commit a91e5478, mixed localalignmax and constalignmax 2022-10-03 22:03:55 +02:00
florian
a91e547832 * set the maximum alignment values for constants and variables to 64 on aarch64-linux 2022-10-03 14:40:57 +02:00
florian
19ad26afd8 * Riscv32 and Riscv64 on linux: enable safecall support 2022-07-22 22:56:21 +02:00
florian
1ac2334b59 * do not use Dwarf-4 yet as it is too little tested and has no benefits 2022-06-18 21:02:01 +02:00
florian
9f47e21da3 * increase default dwarf version for linux targets where current distributions exist 2022-05-16 22:56:30 +02:00
florian
a73869b879 * arm-linux: set max. alignment for constants and variables to 32 byte boundaries 2022-05-09 22:45:21 +02:00
florian
4add05c625 * x86_64-linux and i386-linux align variables and constants up to 64 byte boundaries 2022-05-08 17:50:00 +02:00
florian
e9e8013316 + some basic stuff for MIPS64 2022-02-05 23:25:31 +01:00
florian
62ea31f255 * riscv64-linux: generate PIC for all units as it is required for shared libraries
git-svn-id: trunk@48948 -
2021-03-13 16:33:31 +00:00
florian
577e584c77 * RiscV: basic CFI stuff fixed
git-svn-id: trunk@48937 -
2021-03-10 20:55:37 +00:00
Károly Balogh
8d0ef71e37 m68k-linux: revert maxCrecordalign to 2, as an experiment to fix some linking-against-C regressions since the alignment changes
git-svn-id: trunk@48809 -
2021-02-26 10:57:05 +00:00
Károly Balogh
0216f77819 m68k: adjusted some max alignment values for m68k-linux based on i386-linux, because the ELF loader on m68k should be able to provide the same alignments for globals
git-svn-id: trunk@48799 -
2021-02-24 09:20:04 +00:00
florian
a3d68e6839 * arm thumb: generate proper cfi
git-svn-id: trunk@48678 -
2021-02-14 21:26:41 +00:00
florian
bb80851d65 * .def must be set on linux else it might be that the created executable is
deleted after compilation

git-svn-id: trunk@47592 -
2020-11-25 22:34:17 +00:00
florian
b47d2bd2c2 * allow var alignment up to 64 bytes
git-svn-id: trunk@47316 -
2020-11-04 21:31:50 +00:00
florian
e8fabb752a + basic xtensa-linux support in the compiler
git-svn-id: trunk@44611 -
2020-04-05 21:12:12 +00:00
florian
0af71da9cc * armhf/armel aligns sections to 16 byte, so allow a maximum c alignment of 16
git-svn-id: trunk@44087 -
2020-02-01 22:31:12 +00:00
florian
6b47d9d9ed * safecall support is meanwhile generic, so enabled for all linux targets
git-svn-id: trunk@44076 -
2020-01-31 21:58:49 +00:00
Jonas Maebe
54d3c26e27 * renamed abi_linux386_sysv to abi_i386_dynalignedstack, and also use it
for Darwin-based i386 platforms

git-svn-id: trunk@43650 -
2019-12-05 19:38:01 +00:00
florian
fb91899457 * adapted 16 byte alignment handling on linux: it is now assumed that the callee tries to clear the stack, so in the caller, the stack is re-adjusted
git-svn-id: trunk@43176 -
2019-10-12 21:51:13 +00:00
florian
35e11cd6d4 * several linux targets switches from stabs to dwarf
git-svn-id: trunk@43135 -
2019-10-05 20:48:32 +00:00
florian
df4ec9e8e3 * arm-linux uses dwarf debug info by default
git-svn-id: trunk@43133 -
2019-10-05 20:48:30 +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
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