Commit Graph

364 Commits

Author SHA1 Message Date
pierre
0cc91a50c7 Fix z80 compiler failure after change to ConcatConstSymbol in commit #47668
git-svn-id: trunk@47675 -
2020-12-03 11:05:36 +00:00
pierre
48271b880c Add {$i fpcdefs.inc} to units that do not have that include
git-svn-id: trunk@47599 -
2020-11-26 10:34:02 +00:00
florian
637976e83f * patch by Marģers to unify internal error numbers, resolves #37888
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
Károly Balogh
aa745e0319 z80: re-enabled af_smartlink_sections for vasm which is required for the vasm + vlink combo, partially reverting r46916
git-svn-id: trunk@46979 -
2020-09-27 22:55:59 +00:00
Károly Balogh
7c195d2062 z80: cleaned up some tabs vs. spaces indentation mess in the vasm writer. no functional change.
git-svn-id: trunk@46978 -
2020-09-27 22:52:06 +00:00
pierre
74e83e9d8b Disable af_smartlink_sections option for Z80 vasm and z80asm assemblers, as it leads to errors
git-svn-id: trunk@46916 -
2020-09-22 15:44:15 +00:00
yury
6e777d8967 * ait_comment,ait_regalloc,ait_tempalloc,ait_varloc instructions produce only comments in the external assembler output. Moved handling of these instructions to TExternalAssembler.WriteComments().
This eliminates code duplication and improves maintainability.

git-svn-id: trunk@46550 -
2020-08-22 19:53:39 +00:00
florian
28f25b2df0 * reworked usage of tcgnotnode.handle_locjump
git-svn-id: trunk@46275 -
2020-08-05 21:15:32 +00:00
florian
1d3ed354de * patch by J. Gareth Moreton: unifies internalerrors, resolves #37471
git-svn-id: trunk@46234 -
2020-08-04 20:51:52 +00:00
Jonas Maebe
eb7ba1690e * mark all external assemblers using an LLVM tool using af_llvm
+ added support for constructing target triplets
  * pass "-target triplet" when using an LLVM assembler
   o removed no longer needed $DARWINVERSION and $ARCH parameters
  * consistently use as_clang_gas when clang is used to assembler GAS-style
    assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
  * support pipe assembling when using clang on *nix in all cases

git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +00:00
pierre
dfdfbf896d Fix several warnings about uninitialized local variables
git-svn-id: trunk@45787 -
2020-07-15 08:59:59 +00:00
Károly Balogh
cc23515927 z80: vasm doesn't support the JRJP pseudo instruction, so change it to JP during write
git-svn-id: trunk@45663 -
2020-06-20 16:51:15 +00:00
nickysn
09bd361b48 + support the OFFSET directive in the Z80 inline assembler reader
git-svn-id: trunk@45618 -
2020-06-07 22:17:10 +00:00
nickysn
c90f78488c + added the 'AREA' directive support to the Z80 inline assembler, that allows
you to define custom sections

git-svn-id: trunk@45617 -
2020-06-07 20:47:37 +00:00
svenbarth
c793f42271 + add intrinsics for Z80 port IN/OUT
git-svn-id: trunk@45607 -
2020-06-07 12:24:59 +00:00
svenbarth
921e73ab0c + add compiler support for the Z80 MSX-DOS target
git-svn-id: trunk@45596 -
2020-06-06 17:16:20 +00:00
svenbarth
b2d6c36e70 + add support for DEFB and DEFW directives to the internal assembler reader
git-svn-id: trunk@45591 -
2020-06-06 17:15:53 +00:00
nickysn
996ab2feba * renamed some REL sections to follow a similar naming convention
git-svn-id: trunk@45566 -
2020-06-02 22:44:57 +00:00
nickysn
d88da03e7d * z80: use the JRJP pseudo instruction to generate shorter code (it is
translated to JR wherever possible, otherwise to JP)

git-svn-id: trunk@45510 -
2020-05-26 19:52:27 +00:00
nickysn
c49213c561 + Z80: implemented the JRJP pseudo instruction in the Z80 internal asm writer
git-svn-id: trunk@45502 -
2020-05-25 22:40:41 +00:00
nickysn
195e7e0918 * translate jrjp to jp in the sdcc-sdasz80 asm writer
git-svn-id: trunk@45498 -
2020-05-25 16:29:31 +00:00
nickysn
f71b6f341b + added JRJP to various instruction lists
git-svn-id: trunk@45497 -
2020-05-25 16:12:06 +00:00
nickysn
c5d04d1a54 + Z80: added the JRJP pseudo instruction
git-svn-id: trunk@45496 -
2020-05-25 15:53:51 +00:00
nickysn
56632b720c + Z80: handle the flags register in TAoptBaseCpu.RegModifiedByInstruction
git-svn-id: trunk@45452 -
2020-05-20 21:21:26 +00:00
nickysn
88b6bbe6cc * compilation fixed after r45450
git-svn-id: trunk@45451 -
2020-05-20 21:02:46 +00:00
nickysn
cc47a49c81 + Z80: handle all instructions that modify registers, that are not an operand in TAoptBaseCpu.RegModifiedByInstruction
git-svn-id: trunk@45450 -
2020-05-20 20:57:59 +00:00
nickysn
2507c1ace6 * Reg1ReadDependsOnReg2 moved to TAoptBaseCpu
* use Reg1ReadDependsOnReg2 in TAoptBaseCpu.RegModifiedByInstruction to handle properly Z80 subregisters

git-svn-id: trunk@45449 -
2020-05-20 20:20:10 +00:00
nickysn
edcc14a5ce * Z80: JR can be both conditional and uncoditional jump, just like JP
git-svn-id: trunk@45411 -
2020-05-17 23:38:23 +00:00
nickysn
13028db5a4 - z80: disable regvars, because they don't work
git-svn-id: trunk@45402 -
2020-05-17 14:38:57 +00:00
nickysn
63af4e173d + z80: handle all instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@45391 -
2020-05-16 20:33:44 +00:00
nickysn
5502d6cc58 + Z80: report the flags usage for all the remaining instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@45390 -
2020-05-16 19:58:37 +00:00
nickysn
f0edd62b88 + Z80: report flags register information in TCpuAsmOptimizer.RegLoadedWithNewValue for 16-bit ADD,ADC,SBC,INC and DEC
git-svn-id: trunk@45373 -
2020-05-16 00:03:54 +00:00
nickysn
37b607143a + handle the flags register bits for many Z80 instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@45366 -
2020-05-14 22:44:48 +00:00
nickysn
4beb4bf8b2 + Z80: support the flags subregisters in the registers_interfere function
git-svn-id: trunk@45347 -
2020-05-12 01:58:10 +00:00
nickysn
c6c834949f + Z80: support all the flags subregisters in super_registers_equal
git-svn-id: trunk@45346 -
2020-05-12 01:47:58 +00:00
nickysn
fe12026959 + support the LD instruction in TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@45345 -
2020-05-11 23:55:23 +00:00
nickysn
bb4d7a7a50 + Z80: implemented TCpuAsmOptimizer.InstructionLoadsFromReg
git-svn-id: trunk@45344 -
2020-05-11 22:24:20 +00:00
nickysn
4abc498f2f + added the Z80 individual flag bits as subregisters
git-svn-id: trunk@45342 -
2020-05-11 19:17:31 +00:00
nickysn
4263ff44c1 + Z80: added a registers_interfere helper function
git-svn-id: trunk@45338 -
2020-05-11 15:29:42 +00:00
nickysn
5947adcd7b + added a correct implementation of TAOptBase.SuperRegistersEqual for the Z80
git-svn-id: trunk@45337 -
2020-05-11 14:21:26 +00:00
nickysn
06a728df24 + added the alternate Z80 register pairs BC', DE' and HL'
git-svn-id: trunk@45333 -
2020-05-11 04:23:02 +00:00
nickysn
9ce97e6ba5 + also recognize alternate registers in the Z80 inline asm scanner. This allows
the "EX AF,AF'" instruction to be accepted and assembled as well.

git-svn-id: trunk@45332 -
2020-05-11 00:55:32 +00:00
nickysn
b581751ef3 - cleaned up some x86-specific code from the Z80 inline asm reader
git-svn-id: trunk@45331 -
2020-05-11 00:46:24 +00:00
nickysn
75ce122d36 - removed commented out writeln
git-svn-id: trunk@45290 -
2020-05-06 03:24:15 +00:00
nickysn
bface9fd94 - reverted previous commit, since it was incorrect
git-svn-id: trunk@45287 -
2020-05-06 00:44:35 +00:00
nickysn
0caba1e84d + added internal error in taicpu.gencode.WriteNN to catch unhandled asm instructions
git-svn-id: trunk@45286 -
2020-05-06 00:38:55 +00:00
nickysn
0d402a1341 + support signed 8-bit immediate constants in the Z80 internal asm writer as well
git-svn-id: trunk@45284 -
2020-05-06 00:13:10 +00:00
nickysn
11a7b8592f + support instructions like BIT, SET and RES in the Z80 internal asm writer
git-svn-id: trunk@45283 -
2020-05-06 00:10:17 +00:00
nickysn
6764056eff + support the 'in A,(n)' and 'out (n),A' instrunction in the Z80 internal asm writer
git-svn-id: trunk@45282 -
2020-05-05 23:58:54 +00:00
nickysn
c81f433795 + Z80: support conditional JR
git-svn-id: trunk@45281 -
2020-05-05 23:49:41 +00:00