Commit Graph

369 Commits

Author SHA1 Message Date
J. Gareth "Curious Kit" Moreton
90e0b426ef * SkipInstr now includes ait_align 2023-11-25 20:47:44 +00:00
Nikolay Nikolov
cf21365a21 * fixed and enabled the is_pascal_goto_target check 2023-10-22 04:01:37 +03:00
Nikolay Nikolov
c48a8ad31f + added ait_wasm_structured_instruction to the SkipLineInfo set 2023-10-16 23:05:10 +03:00
Nikolay Nikolov
df2488ea6e * shorten the string for ait_wasm_structured_instruction in taitypestr to fit in string[24] 2023-10-05 18:50:01 +03:00
Nikolay Nikolov
dec6255a19 + introduced classes for WebAssembly structured form of instructions 2023-10-03 18:47:37 +03:00
Nikolay Nikolov
da2649fade + added wasm32-specific flag tai_label.is_pascal_goto_target 2023-06-04 05:44:32 +03:00
ccrause
a135940cf5 Mark .noinit section with nobits flag. 2022-08-14 19:31:21 +00:00
J. Gareth "Curious Kit" Moreton
94c87243ca * Reference counts are now properly incremented on duplicated taicpu objects 2022-07-15 17:03:10 +00:00
Jonas Maebe
8817e896db Add missing reference increases for ait_jvar labels 2022-05-20 21:18:44 +02:00
Jonas Maebe
ac89cfc6c7 aasmtai: added tai_string.Create(ansistring)
Also prevent range check errors for empty strings
2022-05-13 22:49:02 +02:00
florian
0ae45bd2cf + AVR: track flag usage
+ AVR: take care of allocated flags when spilling
  * AVR: trgcpu.do_spill_read might also use ADIW
2022-05-01 22:42:57 +02:00
ccrause
738a0a35de Add section directive for subroutines for embedded and freertos systems. 2022-02-22 20:51:32 +00:00
florian
7e73e0dd23 + support reading of .p2align with op code and/or max. bytes in the gas assembler reader
+ test
2021-10-18 22:12:27 +02:00
Nikolay Nikolov
cdf1ceca76 * emit a weak symbol for the exception tag, since that's what the LLVM linker
wants to treat them as shared between .o files
2021-09-28 02:52:40 +03:00
Nikolay Nikolov
8226233aa3 * introduced the tai_globaltype asm directive, use that to declare the stack
pointer global symbol
2021-09-27 02:39:43 +03:00
Nikolay Nikolov
346b57e238 * tai_impexp renamed tai_export_name
* ait_importexport renamed ait_export_name
2021-09-26 18:35:10 +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
a6e75d52f7 + introduced tai_import_module and tai_import_name that represent the
.import_module and .import_name assembler directives
2021-09-24 22:14:32 +03:00
florian
bee87583de * avoid warnings 2021-09-17 22:27:44 +02:00
Nikolay Nikolov
3022f59ff4 + introduced ait_tagtype and tai_tagtype 2021-09-17 02:05:24 +03:00
pierre
f1d30a5bc6 Add .force_thumb pseudo-directive support forarm reader
git-svn-id: trunk@49271 -
2021-04-26 21:14:27 +00:00
nickysn
07c1783e24 * refactored call_indirect to use a 'functype' operand type. This type will be reused for block instructions as well.
git-svn-id: branches/wasm@48027 -
2021-01-04 10:50:06 +00:00
nickysn
8c79c1fe15 * synchronized with trunk
git-svn-id: branches/wasm@47671 -
2020-12-03 02:23:53 +00:00
florian
482698e566 + add endsym to ConcatConstSymbol
git-svn-id: trunk@47668 -
2020-12-02 21:44:12 +00:00
nickysn
578750a646 * synchronized with trunk
git-svn-id: branches/wasm@47135 -
2020-10-19 05:06:33 +00:00
Jonas Maebe
9376f5a43a * AArch64: added SIMD instructions (only plain ARMv8-A for now)
o added AArch64 regset parsing support in assembler reader, means that "{"
     no longer starts comments there (like in the ARM assembler reader)
   o added AArch64 indexed SIMD register support and removed old cg hacks
     that worked around its absence

git-svn-id: trunk@47116 -
2020-10-15 20:29:36 +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
fc96ad5afd + write the end_function directive
git-svn-id: branches/wasm@46838 -
2020-09-11 14:47:27 +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
62cb7c2d12 * synchronized with trunk
git-svn-id: branches/wasm@46214 -
2020-08-03 21:15:39 +00:00
nickysn
62e1f516ca [PATCH 39/83] adding local instruction
From 3ae3ecb30c707b1726cab65bd7492341f054f9a9 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 18 Sep 2019 14:40:31 -0400

git-svn-id: branches/wasm@45916 -
2020-07-29 17:39:36 +00:00
nickysn
952f2db4a7 [PATCH 21/83] adding assembly instruction to support import/export for wasm
From 4c145e3440d327b1226472c65168da8d3e737a11 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 11 Sep 2019 14:55:06 -0400

git-svn-id: branches/wasm@45898 -
2020-07-29 16:55:42 +00:00
nickysn
95bed362ba [PATCH 02/83] updating common FPC sources for WASM target
From 7705a37c1f11687c3d465c4645357d6679150996 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 28 Aug 2019 17:01:14 -0400

git-svn-id: branches/wasm@45879 -
2020-07-29 16:01:48 +00:00
florian
84a1f614d9 * fix several double ;
git-svn-id: trunk@45488 -
2020-05-24 17:52:09 +00:00
svenbarth
2b59000d56 + implement compiler support for SEH on Win64
Note: due to the way we access variables in a nested function (which in this case includes exception filters) we can not extract the finally handlers and call them (like we do on i386 and x86_64, but instead we duplicate the finally code)

git-svn-id: trunk@44941 -
2020-04-21 06:06:05 +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
ac1e0f96bd * replaced tentryfile.get/putsmall/normalset() with a common tget/putset
that expects an open array of byte, and use it for all sets
   o since all sets need to be typecasted to an array type of the appropriate
     size, we'll get a compilation error in case this needs to be done and
     that also tells us at the same time that the ppu version will need to
     be increased
  * enabled {$packset 1} for the compiler, as this is now safe with the above
    changes

git-svn-id: trunk@43407 -
2019-11-06 21:50:19 +00:00
svenbarth
e251c8e2ab * fix for Mantis #36174: correctly initialize secprocbits and secflags given the section type
git-svn-id: trunk@43267 -
2019-10-19 15:41:41 +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
florian
3949be6989 * be able to set an AT_* for datablocks
* set AT_TLS if needed

git-svn-id: trunk@43076 -
2019-09-25 21:19:07 +00:00
florian
f883dd6dbb Synchronized with trunk, part 2 (make all works, avx-512 support not yet tested, no regression testing yet)
git-svn-id: branches/tg74/avx512@42643 -
2019-08-10 19:38:35 +00:00
florian
746bfced25 Synchronized with trunk, part 1 (only make cycle tested, make all is broken, avx-512 support not yet tested
git-svn-id: branches/tg74/avx512@42642 -
2019-08-10 13:53:20 +00:00
Jeppe Johansen
ff3372567f - Applied patch by Christo Crause from #33914
git-svn-id: trunk@42493 -
2019-07-25 13:24:10 +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