Nikolay Nikolov
b463f2a141
+ added support for exception tags and for the 'throw' and 'catch' instructions
...
in the wasm internal assembler and object writer
2021-09-27 21:44:09 +03:00
Nikolay Nikolov
5ad2d47e23
* track wasm global types in the internal object writer
2021-09-27 03:03:57 +03:00
Nikolay Nikolov
99c84da071
+ generate the export section in the wasm internal obj writer
2021-09-26 20:02:48 +03:00
Nikolay Nikolov
83f2f7bf37
+ introduced TObjData.SymbolPairDefine, to allow custom handling of symbol
...
pairs in the internal object writer
2021-09-26 03:56:56 +03:00
Nikolay Nikolov
7e53fecd09
+ handle tai_local in the internal asm writer and store the locals in the
...
wasm obj extra symbol data object
2021-09-25 16:00:09 +03:00
Nikolay Nikolov
050519f16f
+ handle the import_module and import_name directives in the internal
...
assembler and store them as obj symbol extra data
2021-09-25 15:44:35 +03:00
Nikolay Nikolov
628fcb9b1c
+ create the Type wasm section
2021-09-20 03:43:23 +03:00
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
8535c758ef
+ initial support for ARMv2
...
* check for unassigned valuestr when writing ntbs eabi attributes
git-svn-id: trunk@49348 -
2021-05-09 20:42:31 +00:00
pierre
77e3a402da
Set string length before calling move to avoid problems with global data analysis on systems using C library
...
git-svn-id: trunk@49280 -
2021-04-27 14:52:22 +00:00
pierre
f1d30a5bc6
Add .force_thumb pseudo-directive support forarm reader
...
git-svn-id: trunk@49271 -
2021-04-26 21:14:27 +00:00
Jonas Maebe
793ecb3fa6
* fixed assembling via pipe on Darwin
...
git-svn-id: trunk@49067 -
2021-03-27 19:01:04 +00:00
florian
f1883c4e61
* arm: taicpu uses set instead of boolean to store instruction states
...
+ track if an instruction is a thumb instruction in taicpu
git-svn-id: trunk@48673 -
2021-02-14 15:51:48 +00:00
pierre
f68804e9cd
Replace cs_link_on_target by cs_assemble_on_target in assemble unit
...
git-svn-id: trunk@47490 -
2020-11-20 15:15:17 +00:00
florian
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
...
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +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
Jonas Maebe
eb7ba1690e
* mark all external assemblers using an LLVM tool using af_llvm
...
+ added support for constructing target triplets
* pass "-target triplet" when using an LLVM assembler
o removed no longer needed $DARWINVERSION and $ARCH parameters
* consistently use as_clang_gas when clang is used to assembler GAS-style
assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
* support pipe assembling when using clang on *nix in all cases
git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +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
svenbarth
3e29742fd9
* for PE+ specific checks use a constant in systems.pas instead of an explicit list (easier to extend this way)
...
git-svn-id: trunk@44912 -
2020-04-21 06:04:10 +00:00
Jonas Maebe
79974a9671
+ -XlS<x> option to specify a suffix for externally called LLVM utilities,
...
e.g. -XlS-7 to call clang-7 instead of clang)
* IMPORTANT: changed the -CL llvm code generation options to -Cl, for
consistency with the new -Xl option (-XL was already taken)
git-svn-id: trunk@44436 -
2020-03-30 19:58:49 +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
pierre
eb3a470f45
* assemble.pas (TInternalAssembler.TreePass0): Avoid range/overflow check error.
...
(TInternalAssembler.TreePass2): Check that objsymend and objsym are in same section
and avoid range/overflow check error.
git-svn-id: trunk@43028 -
2019-09-17 21:06:18 +00:00
Jonas Maebe
7ef3d39d93
* one more disable location of DoPipe in case not on a Unix platform
...
(mantis #35743 )
git-svn-id: trunk@42302 -
2019-06-27 19:20:45 +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
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
fc60ec2ea4
+ support for LLVM LTO: compile units with -CLflto -> when compiling a main
...
program/library also with -Clflto, all units compiled with that option
will be linked using their bitcode files and LTO
o compiling with -CLflto will compile all units twice: once for normal
(static or smart) linking, and once for LTO. So the result can be
used both with and without LTO.
git-svn-id: branches/debug_eh@41910 -
2019-04-20 18:56:11 +00:00
Jeppe Johansen
2b78a8fd3d
- Add support for .option directive in riscv assembler.
...
- Use addiw when adjusting U32 to S32
git-svn-id: trunk@41870 -
2019-04-14 20:51:29 +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
florian
68eb921d46
* broken compilation after r39347 fixed
...
git-svn-id: trunk@39349 -
2018-06-30 12:30:25 +00:00
nickysn
3d6d020fca
+ implemented the actual writing of LINNUM OMF records
...
git-svn-id: trunk@39008 -
2018-05-16 17:37:28 +00:00
nickysn
61e6d2afec
+ introduce asd_omf_linnum_line directives; they will be used for writing LINNUM
...
entries in the OMF object format
git-svn-id: trunk@39007 -
2018-05-16 17:05:02 +00:00
florian
2be94d3c78
* fix building on win64 with FPC_SOFT_FPUX80 defined, resolves #32502
...
git-svn-id: trunk@37621 -
2017-11-26 15:16:37 +00:00
Károly Balogh
e6aed467b5
renamed script unit to cscript to avoid namespace conflict with univint package on Darwin. this makes it possible to build the textmode IDE on Darwin
...
git-svn-id: trunk@37598 -
2017-11-17 11:27:19 +00:00
pierre
8614a38ad3
Fix cross-compiler with soft 80bit with external assembler
...
git-svn-id: trunk@37306 -
2017-09-23 20:52:57 +00:00
pierre
b14feadfe1
Fix cycle failure after last commit
...
git-svn-id: trunk@37298 -
2017-09-21 15:47:49 +00:00
pierre
735f9363d8
Add code for writing 80-bit data with soft 80-bit extended when FPC_SOFT_FPUX80 is defined
...
git-svn-id: trunk@37297 -
2017-09-21 14:40:23 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
svenbarth
ca11a4baaa
* only generate a big obj COFF file if the high bound of the sections is larger than $7fff (it could be that the final count is smaller again as sections that have the same name are combined)
...
git-svn-id: trunk@35409 -
2017-02-10 14:40:23 +00:00
svenbarth
a9888eba70
* also generate Big Obj COFF files with the GNU utilities (needs 2.25 or newer), at least as long as the new option -a5 isn't given, which disables this
...
Note 1: using an older AS might fail anyway if the amount of sections is too high (like in packages\odata\src\sharepoint.pp)
Note 2: it might be an idea to keep track of the created sections in the asmlists and only enable the option if *really* necessary (like with the internal COFF output generator), though this might lead to false positives due to multiple sections with the same name (since I'd prefer to use the KISS principle only a counter would be used)
git-svn-id: trunk@35381 -
2017-02-03 22:45:32 +00:00
marco
d2fe24ae20
* fix some more occured->occured
...
git-svn-id: trunk@35120 -
2016-12-13 12:55:32 +00:00
Jonas Maebe
646385e966
* support for overriding the line ending character in external assembler
...
writer decorators (for LLVM function-level inline assembly: there
newline has to be replaced by the character sequence '\0A')
git-svn-id: trunk@34854 -
2016-11-09 19:51:27 +00:00
Jonas Maebe
20a152d4e9
* simplified TExternalAssemblerOutputFile.AsmLn
...
git-svn-id: trunk@34853 -
2016-11-09 19:51:24 +00:00
Jonas Maebe
74a49b5f91
* restructured the the TExternalAssembler constructors so that the
...
hack for the Jasmin descendent is no longer needed
git-svn-id: trunk@34852 -
2016-11-09 19:51:20 +00:00
nickysn
5576caada6
* handle the asd_cpu asd_cpu directive and keep track of the currently selected
...
CPU in the internal assembler
git-svn-id: trunk@33123 -
2016-02-27 00:50:01 +00:00
florian
4ccc75e2e8
+ be able to specify endianess in the assembler command line
...
+ pass endianess to the powerpc assembler (GNU only), so an unified be/le GNU assembler can used to build powerpc64le
git-svn-id: trunk@32894 -
2016-01-09 14:28:25 +00:00
Jonas Maebe
110a5642c0
- removed ait_weak/tai_weak, and replaced it with the previously existing
...
asd_weak_reference/asd_weak_definition directives
git-svn-id: trunk@32879 -
2016-01-07 22:05:38 +00:00