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
nickysn
882522259e
+ initial implementation of tcgz80.normalize_ref
...
git-svn-id: branches/z80@44890 -
2020-04-20 20:27:08 +00:00
florian
b4ff93c9fe
+ forgotten files added
...
git-svn-id: trunk@44889 -
2020-04-20 20:08:19 +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