Commit Graph

354 Commits

Author SHA1 Message Date
Yuriy Sydorov
122ed4b76a * Support for sleb128 and uleb128 constants in the NASM writer.
* Added sleb128tostr() and uleb128tostr() methods to TExternalAssembler.
* Use these methods in assembler writers instead of code duplication.
2021-08-16 00:40:34 +03:00
florian
464730dc44 + patch by J. Gareth Moreton: New label debugging feature, resolves #38980
git-svn-id: trunk@49494 -
2021-06-10 20:26:17 +00:00
florian
e9b3db0d78 * more fixes to support vasm on arm
* do not crash on empty eabi attribute strings

git-svn-id: trunk@49397 -
2021-05-22 20:22:53 +00:00
Károly Balogh
f76bb5fc5e m68k-sinclairql: apply the same hack as for amiga and atari to avoid vlink section attribute warning
git-svn-id: trunk@49295 -
2021-04-29 22:21:36 +00:00
nickysn
64bb0359d2 * synchronized with trunk
git-svn-id: branches/wasm@48412 -
2021-01-24 23:38:35 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
nickysn
807c743e35 * system identifier system_wasm32_wasm renamed system_wasm32_embedded
git-svn-id: branches/wasm@48362 -
2021-01-24 01:01:39 +00:00
nickysn
35489718f3 * fixed call_indirect for the llvm-mc asm writer
git-svn-id: branches/wasm@47965 -
2021-01-02 12:21:30 +00:00
nickysn
763ca253c1 + introduced the TWasmFuncType class - used to hold a Wasm function signature
git-svn-id: branches/wasm@47963 -
2021-01-02 11:54:41 +00:00
nickysn
d3d51d2f7e * synchronized with trunk
git-svn-id: branches/wasm@47338 -
2020-11-07 22:40:43 +00:00
pierre
7966b29b2f i386-go32v2 also does not support progbits, as other COFF targets
git-svn-id: trunk@47255 -
2020-10-30 15:33:27 +00:00
nickysn
b230e295fa + emit .type directives for ait_symbolpair on targets that have tf_needs_symbol_type
git-svn-id: branches/wasm@47002 -
2020-09-29 12:18:34 +00:00
nickysn
ceeb614473 + handle exports in the llvm-mc wasm32 assembler writer
git-svn-id: branches/wasm@46994 -
2020-09-28 23:13:51 +00:00
nickysn
5ee6e9d593 * declare end_function as an instruction, instead of a directive
git-svn-id: branches/wasm@46849 -
2020-09-11 16:25:44 +00:00
nickysn
15cdc6b856 * fix for the wasm section directive writing
git-svn-id: branches/wasm@46841 -
2020-09-11 15:09:06 +00:00
nickysn
fc96ad5afd + write the end_function directive
git-svn-id: branches/wasm@46838 -
2020-09-11 14:47:27 +00:00
nickysn
35e83d5524 * group tai_local directives, so that they are output as a single directive with comma separated types
git-svn-id: branches/wasm@46714 -
2020-08-26 23:36:28 +00:00
nickysn
76f1b8cf60 + generate the .functype directive for the llvm-mc wasm assembler
git-svn-id: branches/wasm@46711 -
2020-08-26 23:00:25 +00:00
nickysn
f95d35340c + first attempt at writing the .local WASM directive
git-svn-id: branches/wasm@46709 -
2020-08-26 21:07:11 +00:00
nickysn
2d39ddf85e + write the global procedures/functions in the llvm-mc assembler writer
git-svn-id: branches/wasm@46698 -
2020-08-26 16:58:17 +00:00
yury
6e777d8967 * ait_comment,ait_regalloc,ait_tempalloc,ait_varloc instructions produce only comments in the external assembler output. Moved handling of these instructions to TExternalAssembler.WriteComments().
This eliminates code duplication and improves maintainability.

git-svn-id: trunk@46550 -
2020-08-22 19:53:39 +00:00
yury
5ec489c018 * ait_varloc instructions are handled and removed by Trgobj.translate_registers() and never left for an assembler.
git-svn-id: trunk@46541 -
2020-08-22 10:58:21 +00:00
Jonas Maebe
e7d1a77f9a * rename the ARM/AArch64-Darwin targets to ARM/AArch64-iOS
* rename the m68k/PowerPC-MacOS targets to m68k/PowerPC-MacOSClassic
  * repurpose the AArch64/Darwin target for AArch64/macOS
   o make AArch64-Darwin default target for a hosted AArch64-Darwin compiler

git-svn-id: trunk@45758 -
2020-07-10 21:52:24 +00:00
pierre
87bf6a4b56 Do not use .hidden for systems_wince, as is done for systems_windows
git-svn-id: trunk@45756 -
2020-07-10 14:15:22 +00:00
pierre
f71415a2de Extend ait_ua_elf_const2str to all aitconst_XXX to fix mips/mipsel RTTI generation
git-svn-id: trunk@45719 -
2020-07-02 16:06:01 +00:00
Károly Balogh
6cc818cbe3 m68k: avoid more vlink warnings regarding changed section attributes, when the target system has no write-protected sections
git-svn-id: trunk@45470 -
2020-05-23 12:13:30 +00:00
nickysn
3d81dd0b00 * ReplaceForbiddenAsmSymbolChars renamed ApplyAsmSymbolRestrictions, because now it also applies the
label length limit

git-svn-id: branches/z80@45085 -
2020-04-26 10:42:07 +00:00
svenbarth
f150fc6b7c * at least clang can savely generate relocatable readonly sections, so use "r" for aarch64-win64
git-svn-id: trunk@44931 -
2020-04-21 06:05:25 +00:00
svenbarth
329710f573 * use COFF sectionattrs for aarch64-win64 as well
git-svn-id: trunk@44930 -
2020-04-21 06:05:21 +00:00
svenbarth
3f62c5f5ef + introduce a virtual method for writing the section flags
git-svn-id: trunk@44928 -
2020-04-21 06:05:14 +00:00
svenbarth
b5a4f8837c * rename the local sectionflags and sectionprogbits variables to the more clear usesectionflags and usesectionprogbits
git-svn-id: trunk@44927 -
2020-04-21 06:05:10 +00:00
svenbarth
3b1d5794e9 * Windows on AArch64 does not support ProgBits either
git-svn-id: trunk@44917 -
2020-04-21 06:04:34 +00:00
florian
8ac8c79a71 + initial support for arm-freertos largely based on patch by Michael Ring
git-svn-id: trunk@44871 -
2020-04-19 20:59:52 +00:00
Károly Balogh
56ad37133e m68k-amiga: hack to avoid a linker (vlink) warning about merging sections with different flags together. Amiga doesn't support true read only sections anyway
git-svn-id: trunk@44757 -
2020-04-17 23:09:16 +00:00
florian
40bbb28fd2 * do not write section flags/progbits for .data, .rodata .data.norel as the compiler will ignore them anyways and warn about it
git-svn-id: trunk@43428 -
2019-11-09 18:28:30 +00:00
svenbarth
f481587bee * fix compilation on PE/COFF based systems with GNU AS as there the progbits are not supported
git-svn-id: trunk@43345 -
2019-11-01 13:27:29 +00:00
Jonas Maebe
e3c6ef21d1 * fixed compilation for Darwin and AIX after addition of section attributes
git-svn-id: trunk@43273 -
2019-10-20 14:14:09 +00:00
florian
245b58c249 + support for arm attributes
* abi notes fixed

git-svn-id: trunk@43157 -
2019-10-09 17:45:40 +00:00
florian
8ecdb2e9ca + dwarf support for tls threadvars
git-svn-id: trunk@43134 -
2019-10-05 20:48:31 +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
03dfc615dc + new relocations for arm tls
git-svn-id: trunk@43123 -
2019-10-05 20:48:21 +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
florian
1ed0000ae8 + Encode(U/S)leb128 take now a third parameter to force that the constant has a certain minimum size
+ tai_const has a new field fixed_size which is used to fix the size of an s/uleb128. This is needed to ensure convergence during assembling when calculating offsets

git-svn-id: branches/debug_eh@42255 -
2019-06-20 17:13:28 +00:00
Jonas Maebe
9e9a982bfe * synchronised with trunk till r42095
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00
Jonas Maebe
47812c8a3d * don't double-define function aliases for Darwin defined via ".set" directive
git-svn-id: trunk@42095 -
2019-05-18 18:41:38 +00:00
Jonas Maebe
1b6425176b * synchronised with trunk till r42049
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
281b3ad276 * fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit

git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
Jonas Maebe
5d28e2156b + support for generating Dwarf CFI using .cfi_* directives
o adjust peephole optimisers so they don't remove cfi_endproc directives
     in case of tail call optimisation

git-svn-id: branches/debug_eh@41578 -
2019-03-03 17:15:03 +00:00
florian
27ab140dd9 + gcc_except_table section
+ support exception related sections in the default LD linker script

git-svn-id: branches/debug_eh@41285 -
2019-02-10 17:57:48 +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