Commit Graph

12 Commits

Author SHA1 Message Date
Sven/Sarah Barth
8f37905609 * use a static data label for the case-label table on aarch64-win64 to avoid the linker discarding it 2024-11-22 17:57:02 +01:00
Sven/Sarah Barth
7b3efe6397 * on aarch64-win64 the case-labels are a list of 8-Byte aligned 8—Byte values, so adjust the alignment to avoid 2 32-bit loads 2024-11-22 17:56:11 +01:00
Sven/Sarah Barth
ad4fe174b1 * ensure that the section with the case-labels is 8-Byte aligned 2024-11-22 17:55:35 +01:00
Sven/Sarah Barth
0e39308416 * adjust comments to better match the situation with aarch64-win64 added to the mix 2024-11-22 17:54:57 +01:00
J. Gareth "Curious Kit" Moreton
605b21af8c * a64: win64 implementation of jump table now
uses 64-bit absolute references.
2024-05-27 06:31:15 +01: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
florian
fa2e751f9f + AArch64: implementation of taarch64casenode.genlinearlist
git-svn-id: trunk@42973 -
2019-09-10 18:46:56 +00:00
Jonas Maebe
07bd4ba517 * let all the case code generation work with tconstexprint instead of aint,
so it also works for 32 bit targets and a high level code generator
    (where aint is still 32 bit, but 64 bit operations are not decomposed)

git-svn-id: trunk@41441 -
2019-02-24 19:58:37 +00:00
Jonas Maebe
4686f61002 * keep track of the temp position separately from the offset in references,
so that they can still be freed after the reference has been changed
    (e.g. in case of array indexing or record field accesses) (mantis #33628)

git-svn-id: trunk@38814 -
2018-04-22 17:03:16 +00:00
Jonas Maebe
a25ebbba3e + added volatility information to all memory references
o separate information for reading and writing, because e.g. in a
     try-block, only the writes to local variables and parameters are
     volatile (they have to be committed immediately in case the next
     instruction causes an exception)
   o for now, only references to absolute memory addresses are marked
     as volatile
   o the volatily information is (should be) properly maintained throughout
     all code generators for all archictures with this patch
   o no optimizers or other compiler infrastructure uses the volatility
     information yet
   o this functionality is not (yet) exposed at the language level, it
     is only for internal code generator use right now

git-svn-id: trunk@34996 -
2016-11-27 18:17:37 +00:00
pierre
89c1b68b14 * Delete regvars unit.
This unit was empty unless OLDREGVARS macro was set,
    but this does not compile and no change has been made since 2011.

  * Remove regvars from all _USES clauses.

git-svn-id: trunk@34808 -
2016-11-06 14:01:39 +00:00
Jonas Maebe
1de8e53edd + AArch64 jump table support
git-svn-id: trunk@29964 -
2015-02-23 22:55:42 +00:00