svenbarth
bd01182ff0
* add support for AND, OR, XOR and NOT of integer values in preprocessor directives (Delphi allows that as well)
...
+ added test
git-svn-id: trunk@45053 -
2020-04-24 14:09:04 +00:00
svenbarth
ae2801c707
* use asInt64 instead of asInt to evaluate an Integer expression
...
git-svn-id: trunk@45052 -
2020-04-24 14:09:02 +00:00
svenbarth
bffe99f59f
+ add an asInt64 to texprvalue
...
git-svn-id: trunk@45051 -
2020-04-24 14:09:00 +00:00
svenbarth
89434f0124
* extract calculation of a NOT value to a separate function
...
git-svn-id: trunk@45050 -
2020-04-24 14:08:58 +00:00
florian
8b71455e3b
+ Xtensa: enable jump optimizer
...
git-svn-id: trunk@45045 -
2020-04-23 20:17:28 +00:00
florian
483837ae5c
+ Xtensa: make use of ADDX*
...
git-svn-id: trunk@45001 -
2020-04-22 21:03:08 +00:00
florian
74abe87315
* Xtensa: do SAR by a constant using SRAI
...
git-svn-id: trunk@45000 -
2020-04-22 21:03:06 +00:00
svenbarth
5ef9a78f5f
* fix for Mantis #36951 : B and BL can take immediate literals as well
...
+ added test
git-svn-id: trunk@44999 -
2020-04-22 20:19:14 +00:00
svenbarth
03eb114e97
* fix for Mantis #36951 : if the instruction only has one operand and it's a reference then don't internal error, but instead return OS_NO
...
git-svn-id: trunk@44998 -
2020-04-22 20:19:09 +00:00
svenbarth
184d6d61ed
* regenerate makefiles
...
git-svn-id: trunk@44958 -
2020-04-21 06:09:20 +00:00
svenbarth
2aa0e50873
* implement dogetcopy for the Aarch64 variant of the tryfinally node
...
git-svn-id: trunk@44957 -
2020-04-21 06:07:06 +00:00
svenbarth
55c1ecedac
* set implicitframe for copied tryfinally nodes as well
...
git-svn-id: trunk@44956 -
2020-04-21 06:07:03 +00:00
svenbarth
e01de80981
* register the DLL scanner for aarch64-win64
...
git-svn-id: trunk@44950 -
2020-04-21 06:06:40 +00:00
svenbarth
7f4b94e408
* generate jump tables into the same section as the code as otherwise we'll get bogus relocations (in case of clang.exe) or a future support for armasm64.exe will reject the relative symbols outright
...
git-svn-id: trunk@44949 -
2020-04-21 06:06:36 +00:00
svenbarth
b88107fa1d
* due to an apparent bug in the clang assembler for COFF when assembling ADRP instructions we can't use symbols that are offset into their section
...
git-svn-id: trunk@44948 -
2020-04-21 06:06:31 +00:00
svenbarth
042aae2455
* the clang assembler does not provide support for the SEH directives we need (only the LLVM backend would be able to use them), thus we need to manually convert them to data sections
...
git-svn-id: trunk@44947 -
2020-04-21 06:06:28 +00:00
svenbarth
531c93a04e
* regenerate msg{idx,txt}.inc
...
git-svn-id: trunk@44946 -
2020-04-21 06:06:24 +00:00
svenbarth
7f0d582a4a
+ add Win64 target to help text
...
git-svn-id: trunk@44945 -
2020-04-21 06:06:20 +00:00
svenbarth
6143b8b54d
+ add an error message if the size of a function is invalid (in case of aarch64-win64: not a multiple of 4, the instruction size)
...
git-svn-id: trunk@44944 -
2020-04-21 06:06:16 +00:00
svenbarth
ada6d8ce5e
* the .pdata section currently only needs to be always included for arm-wince (at least until we have full SEH support there as well)
...
git-svn-id: trunk@44943 -
2020-04-21 06:06:13 +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
fed17122f8
* as a variant for SEH exception filters we allow them to be *duplicated* instead of being extracted; this can be done unconditionally as for extracted ones their code is set to Nil after they're done and thus won't be picked up by generate_code_exceptionfilters
...
git-svn-id: trunk@44934 -
2020-04-21 06:05:35 +00:00
svenbarth
26c45f550a
* when building a reference with an identifier, initialize the operand so that page offsets of functions are handled correctly
...
git-svn-id: trunk@44933 -
2020-04-21 06:05:32 +00:00
svenbarth
1fb2d9540c
* allow ADD instructions with a page offset load with either a symbol or a base register
...
git-svn-id: trunk@44932 -
2020-04-21 06:05:28 +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
3f40e00392
* the clang assembler for COFF requires at least an "r" to generate a readonly section
...
git-svn-id: trunk@44929 -
2020-04-21 06:05:18 +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
61358b1eaa
* it's rather useless that sectiontype2options is virtual as we can't use a class type, not to mention that the classes doing the overriding are for the internal assemblers/linkers, but we need it also for external
...
Thus we move the functionality of the overloads to the basemethod and remove the virtual directive; maybe we'll find a better solution in the future...
git-svn-id: trunk@44926 -
2020-04-21 06:05:06 +00:00
svenbarth
0cc592e9ee
- remove sectiontype2options overload for mach-O, because the relevant sections have the correct flags in the base method already
...
git-svn-id: trunk@44925 -
2020-04-21 06:05:02 +00:00
svenbarth
12ef066897
+ add functionality to store a node tree's required temp nodes and their flag upon entering the tree
...
git-svn-id: trunk@44924 -
2020-04-21 06:04:59 +00:00
svenbarth
613a6e796a
* Windows on AArch64 requires some DllCharacteristics in the header to be always set
...
git-svn-id: trunk@44919 -
2020-04-21 06:04:41 +00:00
svenbarth
40633835dc
* Windows on Aarch64 requires a relocation section
...
git-svn-id: trunk@44918 -
2020-04-21 06:04:37 +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
svenbarth
a6f1c04f22
* Windows does not support a GOT, so rely on page relative addressing
...
git-svn-id: trunk@44916 -
2020-04-21 06:04:31 +00:00
svenbarth
dfde4def62
+ add a GAS compatible variant of the Clang assembler (currently used for Aarch64-Win64 as no GNU AS exists for that target, yet)
...
git-svn-id: trunk@44915 -
2020-04-21 06:04:27 +00:00
svenbarth
3af74d2fd2
+ implement initial compiler support for Win64 on Aarch64
...
git-svn-id: trunk@44914 -
2020-04-21 06:04:22 +00:00
svenbarth
5b941e3cea
+ implement relocations for Aarch64 for the internal COFF linker
...
git-svn-id: trunk@44913 -
2020-04-21 06:04:15 +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
svenbarth
068f0d2ec8
* fix for Mantis #36935 : apply patch by J. Gareth Moreton to fix a typo in cs_opt_remove_empty_proc
...
git-svn-id: trunk@44888 -
2020-04-20 18:42:30 +00:00
svenbarth
752ff32333
* fix WinAPI directive: the purpose is to present the OS' default calling convention which for Windows means stdcall (at least on those platforms that support stdcall) on other platforms it is cdecl (for now)
...
git-svn-id: trunk@44887 -
2020-04-20 18:29:28 +00:00
pierre
cd6de6a4ca
Regenerate all Makefiles
...
git-svn-id: trunk@44882 -
2020-04-20 13:58:47 +00:00
pierre
57809eb922
Add several missing -T options in help
...
git-svn-id: trunk@44875 -
2020-04-19 21:40:40 +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
florian
be50c77f34
* regenerated
...
git-svn-id: trunk@44867 -
2020-04-19 19:22:05 +00:00
florian
c96a3cc9d1
+ take care of OPTNEW when building utils
...
git-svn-id: trunk@44866 -
2020-04-19 19:07:43 +00:00
Jonas Maebe
26ec913725
* regenerated makefiles
...
git-svn-id: trunk@44861 -
2020-04-19 17:33:47 +00:00
florian
14d46bccba
* Xtensa: make use of extui for shifting with constant values >=16
...
git-svn-id: trunk@44856 -
2020-04-19 15:52:41 +00:00
florian
7eff3adbcb
* adapted xtensa-freertos to work with the currently stable ESP-IDF 4.0, partially based on a patch by Michael Ring
...
git-svn-id: trunk@44850 -
2020-04-19 13:28:42 +00:00