svenbarth
4e06d66d7f
+ implement RTL functionality for SEH for aarch64-win64
...
git-svn-id: trunk@44940 -
2020-04-21 06:05:59 +00:00
svenbarth
bfa5bf80e2
* inside the Win64 system unit convert FPC_USE_WIN64_SEH to a SYSTEM_USE_WIN_SEH
...
git-svn-id: trunk@44939 -
2020-04-21 06:05:55 +00:00
svenbarth
5c898fe795
* enable is_prefetch only for x86 code
...
git-svn-id: trunk@44938 -
2020-04-21 06:05:51 +00:00
svenbarth
c152796bf3
* rename RunErrorCodex64 to a more appropriate RunErrorCodeSEH
...
git-svn-id: trunk@44937 -
2020-04-21 06:05:46 +00:00
svenbarth
25c6f3a667
* the prefetch bug handling is specific to x86_64
...
git-svn-id: trunk@44936 -
2020-04-21 06:05:43 +00:00
svenbarth
f3c377f8d1
* use accessor functions to work with the TContext record
...
git-svn-id: trunk@44935 -
2020-04-21 06:05:39 +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
41b1711589
* disable CPU and Signals units for Windows on AArch64 for now
...
git-svn-id: trunk@44923 -
2020-04-21 06:04:55 +00:00
svenbarth
1972b05cc8
* store and restore the 8087 control world only on x86 systems
...
git-svn-id: trunk@44922 -
2020-04-21 06:04:52 +00:00
svenbarth
c474b95dfc
* disable some x86_64 specific assembly routines
...
git-svn-id: trunk@44921 -
2020-04-21 06:04:49 +00:00
svenbarth
79a4409587
* enable AArch64 for Win64 in fpmkunit and fpcmake
...
git-svn-id: trunk@44920 -
2020-04-21 06:04:45 +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
nickysn
f8b0c24024
+ support pushing word-sized parameters in a_load_reg_cgpara
...
git-svn-id: branches/z80@44911 -
2020-04-21 03:48:36 +00:00
nickysn
2b4ed4e90d
+ inline assembler implementation of FillChar
...
git-svn-id: branches/z80@44910 -
2020-04-21 03:26:34 +00:00
nickysn
e261ea8e2b
- disable some rtl/compiler features on the ZX Spectrum
...
git-svn-id: branches/z80@44909 -
2020-04-21 03:03:06 +00:00
nickysn
391990e456
* tg.direction is always -1 on the Z80
...
git-svn-id: branches/z80@44908 -
2020-04-21 03:02:43 +00:00
Károly Balogh
6630f47ab4
m68k-amiga: implemented LockDosList, UnlockDosList, and NextDosEntry helpers for legacy support
...
git-svn-id: trunk@44907 -
2020-04-21 03:01:17 +00:00
nickysn
d3e946b779
* fixed Z80 stack and temp allocation, so it doesn't have any wasted bytes
...
git-svn-id: branches/z80@44906 -
2020-04-21 02:51:44 +00:00
nickysn
1669254c5a
+ full RTL include, hidden behind ifdefs, because the code generator isn't able to compile it yet
...
git-svn-id: branches/z80@44905 -
2020-04-21 02:18:37 +00:00
nickysn
861ae0b139
+ some rtl include files added
...
git-svn-id: branches/z80@44904 -
2020-04-21 02:11:52 +00:00
nickysn
aeafe0db40
+ added math.inc and set.inc for Z80, empty for now
...
git-svn-id: branches/z80@44903 -
2020-04-21 02:05:10 +00:00
nickysn
6f874eefa6
+ added keyboard input functions (ReadKey and KeyPressed) to the ZX Spectrum. Now you can start having fun! :)
...
git-svn-id: branches/z80@44902 -
2020-04-21 01:16:04 +00:00
nickysn
93be8bba50
+ added fancier ZX Spectrum console output stuff: OpenChannel, Ink, Paper and GotoXY
...
git-svn-id: branches/z80@44901 -
2020-04-21 00:56:29 +00:00
nickysn
168c009bc3
- removed the 'sdcc-' prefix of sdasz80 and sdldz80
...
git-svn-id: branches/z80@44900 -
2020-04-20 23:50:45 +00:00
nickysn
d57ffc4745
* changed the object file format for z80-embedded and z80-zxspectrum to .rel
...
git-svn-id: branches/z80@44899 -
2020-04-20 23:36:15 +00:00
nickysn
2f68090dd6
* synchronized with trunk
...
git-svn-id: branches/z80@44898 -
2020-04-20 22:42:08 +00:00
nickysn
557a481743
+ use normalize_ref in tcgz80.a_load_ref_reg
...
git-svn-id: branches/z80@44897 -
2020-04-20 21:44:36 +00:00
nickysn
1813727faf
+ support addr_full in the sdcc-sdasz80 asm writer
...
git-svn-id: branches/z80@44896 -
2020-04-20 21:38:31 +00:00
nickysn
bee3e9c354
+ make use of normalize_ref in tcgz80.a_load_reg_ref
...
git-svn-id: branches/z80@44895 -
2020-04-20 21:34:10 +00:00
nickysn
a7b69cd18b
- removed make_simple_ref, because normalize_ref should be used instead
...
git-svn-id: branches/z80@44894 -
2020-04-20 20:52:07 +00:00
nickysn
0d6e59e9ef
+ actually return the proper (HL) reference result in tcgz80.normalize_ref
...
git-svn-id: branches/z80@44893 -
2020-04-20 20:49:45 +00:00
nickysn
5c138c341f
+ added an output parameter to tcgz80.normalize_ref, that returns a list of the registers that were
...
actually used, so they can be freed after the reference is used.
git-svn-id: branches/z80@44892 -
2020-04-20 20:46:30 +00:00
nickysn
fc991af9d1
+ added tregisterlist - dynarray of tregister, and methods get/uncpuregisters for allocating/freeing
...
a dynamic list of registers
git-svn-id: branches/z80@44891 -
2020-04-20 20:42:16 +00:00