Commit Graph

58788 Commits

Author SHA1 Message Date
nickysn
ccd23d288d * handle same size, but different sign conversions properly in tcgz80.a_load_reg_ref,.a_load_ref_reg,.a_load_reg_reg
git-svn-id: branches/z80@45003 -
2020-04-22 21:42:00 +00:00
nickysn
4d875acdf1 + support OS_32 and OS_S32 in tcgz80.a_load_ref_cgpara
git-svn-id: branches/z80@45002 -
2020-04-22 21:09:03 +00:00
nickysn
0b3b8401df + implemented tcgz80.a_jmp_cond
git-svn-id: branches/z80@44997 -
2020-04-22 16:10:23 +00:00
nickysn
39574ac70e + implemented tz80notnode.second_boolean
git-svn-id: branches/z80@44994 -
2020-04-22 03:20:49 +00:00
nickysn
a3ae55081a + also handle LOC_FLAGS in tz80notnode.second_boolean
git-svn-id: branches/z80@44993 -
2020-04-22 03:03:11 +00:00
nickysn
bdd7cfb644 + handle LOC_JUMP in tz80notnode.second_boolean
git-svn-id: branches/z80@44992 -
2020-04-22 02:59:14 +00:00
nickysn
63e6c8fcf1 + override the NOT node for the Z80 (not yet implemented)
git-svn-id: branches/z80@44991 -
2020-04-22 02:56:51 +00:00
nickysn
c0ea4d826c + also support the 8-bit mul helpers in the generic code of nadd
git-svn-id: branches/z80@44990 -
2020-04-22 02:45:49 +00:00
nickysn
242b67c50a + always use a mul helper on the Z80
git-svn-id: branches/z80@44989 -
2020-04-22 02:39:26 +00:00
nickysn
b741ed63b0 - commented out internal error in trgcpu.do_spill_read and trgcpu.do_spill_written
git-svn-id: branches/z80@44988 -
2020-04-22 02:31:21 +00:00
nickysn
9ad3de966f + handle IX and IY-based references in tcgz80.normalize_ref
git-svn-id: branches/z80@44987 -
2020-04-22 02:27:07 +00:00
nickysn
fe8b50fed3 * fix for Z80 pointer comparisons
git-svn-id: branches/z80@44986 -
2020-04-22 01:45:10 +00:00
nickysn
22d60361a8 * fixed broken code generation for unequaln in TZ80AddNode.second_cmp16_32_64bit
git-svn-id: branches/z80@44985 -
2020-04-22 01:30:13 +00:00
nickysn
8a3847e1b2 * use cg.a_jmp_flags in TZ80AddNode.second_cmp
git-svn-id: branches/z80@44984 -
2020-04-22 01:20:54 +00:00
nickysn
fec0f346f1 + partially implemented tcgz80.a_cmp_const_reg_label: all 8-bit comparison ops are implemented, and
also OP_EQ, OP_NE for 16-bit and 32-bit operands

git-svn-id: branches/z80@44983 -
2020-04-22 01:18:02 +00:00
nickysn
41b5829983 - removed commented out code, because it looks like a misleading comment
git-svn-id: branches/z80@44982 -
2020-04-21 23:40:46 +00:00
nickysn
86643f8a34 * synchronized with trunk
git-svn-id: branches/z80@44981 -
2020-04-21 23:36:44 +00:00
nickysn
9fc1d39beb + implemented code generation for signed 16/32/64-bit comparisons (<,<=,>,>=)
git-svn-id: branches/z80@44980 -
2020-04-21 23:00:32 +00:00
nickysn
ce8ed9efa8 + added another helper tcgz80.a_jmp_signed_cmp_3way
git-svn-id: branches/z80@44979 -
2020-04-21 22:48:44 +00:00
nickysn
ded10c55b3 - removed an extra unused jump
git-svn-id: branches/z80@44978 -
2020-04-21 22:17:30 +00:00
nickysn
027217d1fe * fixed an OP_SUB bug in tcgz80.a_op_const_reg_internal
git-svn-id: branches/z80@44977 -
2020-04-21 22:05:02 +00:00
nickysn
c1fa5600f1 + implemented code generation for unsigned 16,32 and 64-bit comparisons (<,<=,>,>=)
git-svn-id: branches/z80@44976 -
2020-04-21 21:52:55 +00:00
nickysn
a714a2fb76 + added a jmp helper that handles all possible combinations of jump on below, equal and above (unsigned comparison)
git-svn-id: branches/z80@44975 -
2020-04-21 21:38:15 +00:00
nickysn
08f02cfd87 + implemented code generation for 16-bit, 32-bit and 64-bit equal and unequal comparisons. </<=/>/>=
are still 8-bit only.

git-svn-id: branches/z80@44974 -
2020-04-21 20:37:05 +00:00
florian
2d3cd25fd8 * patch by Michael Ring: adds license headers to th FreeRTOS files and some renames to make the interrupts cmsis compatible.
git-svn-id: trunk@44973 -
2020-04-21 20:34:15 +00:00
nickysn
902b8e0958 + implemented Move() using inline asm
git-svn-id: branches/z80@44972 -
2020-04-21 19:27:27 +00:00
nickysn
0bbd140228 * fixed handling of untyped const parameters
git-svn-id: branches/z80@44971 -
2020-04-21 19:19:17 +00:00
yury
c3954a0cee * Fixed r44960. Also copy a trailing implicit #0 of the original string to the new larger string.
git-svn-id: trunk@44970 -
2020-04-21 18:55:24 +00:00
nickysn
7f409534a1 + exposed FillChar, Sptr, get_frame, get_caller_addr, get_caller_frame from z80.inc even without FULL_RTL. This allows
testing them and using them for debugging (e.g. PrintHexWord(Word(Sptr)) now works)

git-svn-id: branches/z80@44969 -
2020-04-21 17:44:49 +00:00
nickysn
16b2fd4378 + compile z80.inc even without FULL_RTL
+ added extra defines to the system unit without FULL_RTL, so that more things can be compiled
- commented out stuff from z80.inc that doesn't compile yet. It will be uncommented as soon as the code generator
  starts being able to compile it

git-svn-id: branches/z80@44968 -
2020-04-21 17:39:33 +00:00
nickysn
c616c8df32 + implemented Sptr
git-svn-id: branches/z80@44967 -
2020-04-21 17:25:48 +00:00
nickysn
4e4cb4fd9d + implemented get_frame
git-svn-id: branches/z80@44966 -
2020-04-21 17:16:17 +00:00
nickysn
2aa248bba2 * FillChar changed to a pure assembler procedure
git-svn-id: branches/z80@44965 -
2020-04-21 16:48:54 +00:00
nickysn
7bfce62302 * fixed stack direction in assignintreg. This fixes problems with the parameter location calculation.
git-svn-id: branches/z80@44964 -
2020-04-21 16:41:43 +00:00
nickysn
fcaf2fe5a0 * stack_offset changed to longint
git-svn-id: branches/z80@44963 -
2020-04-21 16:34:21 +00:00
nickysn
0332a60cb8 * cur_stack_offset changed to longint
git-svn-id: branches/z80@44962 -
2020-04-21 16:31:15 +00:00
nickysn
c67fa28d7c * use a LD sequence for 2-byte moves as well in tcgz80.g_concatcopy
git-svn-id: branches/z80@44961 -
2020-04-21 16:26:04 +00:00
yury
1e32b96bc2 * Minor improvement. No need to move the terminating null char, since it is written later anyway. Remove a local var.
git-svn-id: trunk@44960 -
2020-04-21 14:18:35 +00:00
Károly Balogh
ef790adc28 m68k-amiga: document which legacy support functions are unimplemented and why, and where are they used in the RTL code
git-svn-id: trunk@44959 -
2020-04-21 13:54:22 +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
90040983b6 * stub out assembly functions for non-x86 platforms
git-svn-id: trunk@44955 -
2020-04-21 06:06:59 +00:00
svenbarth
aa1c1174e6 * correctly implement assembly routines for non-i386 (x86_64 did not work correctly either)
git-svn-id: trunk@44954 -
2020-04-21 06:06:55 +00:00
svenbarth
6dc7e28604 * prefix and suffixes are only required for StdCall callining convention which is only available for i386-Win32
git-svn-id: trunk@44953 -
2020-04-21 06:06:51 +00:00
svenbarth
246bcd75f6 * use StdCall like naming conventions only for Win32; on x86_64-win64 this import unit never worked and on aarch64-win64 this leads to an error in clang's assembler...
git-svn-id: trunk@44952 -
2020-04-21 06:06:48 +00:00
svenbarth
06e3feb919 * don't set ASMMODE to INTEL on non-x86 targets
git-svn-id: trunk@44951 -
2020-04-21 06:06:44 +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