florian
|
c7290bfb78
|
* enclose {$define DEBUG_AOPTCPU} in {$ifdef EXTDEBUG}
|
2025-03-10 22:50:49 +01:00 |
|
Karoly Balogh
|
0730e86c9d
|
m68k: refactor - use the new CPUM68K_HAS_TSTAREG capability where applicable
|
2025-02-17 12:03:24 +01:00 |
|
Karoly Balogh
|
e09304f671
|
m68k: do not try to optimize CMP #0,Ax to TST Ax, if the CPU doesn't support it
|
2025-02-17 12:03:24 +01:00 |
|
Karoly Balogh
|
7c01edf831
|
m68k: new CPU capability - the TST instruction supports address registers (68020+ and CF)
|
2025-02-17 12:03:24 +01:00 |
|
florian
|
9f6a3eebb7
|
* handle adress registers properly in tcg64f68k.a_op64_reg_ref
|
2024-07-19 20:00:21 +02:00 |
|
Karoly Balogh
|
e507f612f5
|
m68k-palmos: further fixes to assembly section. also actually use aout, as we have aout binutils for palmos
|
2024-05-25 00:14:11 +03:00 |
|
Karoly Balogh
|
627734e104
|
m68k: try to fold two consecutive AND instructions into one. This usually happens when a zero extension is followed by another AND.
|
2024-05-25 00:01:35 +03:00 |
|
Karoly Balogh
|
d9c786fee6
|
m68k: also allow TST from before Sxx instructions with explicit .b size to be optimized away
|
2024-05-25 00:00:22 +03:00 |
|
Karoly Balogh
|
19fe377455
|
m68k: fix tw40182 test
|
2024-01-09 10:57:11 +01:00 |
|
Karoly Balogh
|
88ffc9e228
|
m68k: refactored the optimizer to avoid direct asml management where possible, and use standard functions instead
|
2024-01-09 03:03:27 +01:00 |
|
Karoly Balogh
|
020ca55e25
|
m68k: add more cases, where TST instructions can beoptimized away, because the previous instruction already sets all the required flags
|
2024-01-08 15:06:38 +01:00 |
|
Karoly Balogh
|
53e7006d56
|
m68k: fix the assembler reader to bail out earlier on a failed parsing of a constant expression
|
2023-12-23 15:36:51 +01:00 |
|
Pierre Muller
|
f1e32bb187
|
Add human68k OS to list of supported OSes for m68k GNU assembler
|
2023-12-01 22:12:58 +01:00 |
|
Karoly Balogh
|
9eda172a48
|
m68k: do not generate argument popping for a noreturn call
|
2023-11-30 23:43:27 +00:00 |
|
Karoly Balogh
|
439faf0da8
|
m68k: basic DOS syscall generation for human68k
|
2023-11-30 23:43:27 +00:00 |
|
Karoly Balogh
|
4a1db1dc79
|
m68k: initial compiler changes for Human68k (Sharp X68000) support
|
2023-11-30 23:43:27 +00:00 |
|
Karoly Balogh
|
6bbb10e64d
|
m68k: do not generate LEA instructions with explicitly specified size. only long is possible anyway.
|
2023-01-30 09:56:41 +01:00 |
|
Karoly Balogh
|
c577ac5ce9
|
m68k: add tables to convert from some stub opcodes + condition into real opcodes. Use them in the external assembler writer for now. Later the internal assembler will need these tables too.
|
2023-01-30 09:56:41 +01:00 |
|
Karoly Balogh
|
3cea1706e9
|
m68k: more work on instruction validation for the internal assembler
|
2023-01-09 12:01:10 +01:00 |
|
Karoly Balogh
|
69761839c0
|
m68k: removed the unused S_IQ opsize
|
2023-01-09 12:01:10 +01:00 |
|
Karoly Balogh
|
459dc68ab9
|
m68k: more boiler plate and refactor for a future internal assembler
|
2023-01-05 13:32:34 +01:00 |
|
Karoly Balogh
|
f2d6b4d530
|
m68k: added a helper function to check if a register is an FPU register
|
2023-01-05 13:32:33 +01:00 |
|
Karoly Balogh
|
721e988da2
|
m68k: add some initial CPU-specifc boilerplate for an internal ELF writer
|
2022-12-29 05:08:46 +01:00 |
|
Karoly Balogh
|
e19f60503b
|
m68k: updated instruction tables to match vasm release 1.9a
|
2022-12-29 03:36:51 +01:00 |
|
Karoly Balogh
|
92e5ede347
|
m68k: fixed the capabilities flags inverted logic issues committed in 7d23c2e9
|
2022-08-30 10:42:26 +02:00 |
|
Karoly Balogh
|
832b566097
|
m68k: add a CPU capability to signal the CPU has no 48 bit encodiing limits
|
2022-08-26 18:42:24 +02:00 |
|
Karoly Balogh
|
6c67798272
|
m68k: disable an A_MOVE in the spilling code in an effort to finally try to unbreak paszlib
|
2022-08-26 18:42:24 +02:00 |
|
Karoly Balogh
|
7d23c2e9d0
|
m68k: use CPU capabilities at places instead of hardwiring cpu_coldfire
|
2022-08-26 18:42:24 +02:00 |
|
Sven/Sarah Barth
|
7f3a5eb9ab
|
* extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not
|
2022-05-26 21:42:59 +02:00 |
|
Karoly Balogh
|
57107c3310
|
m68k: opcode table updates based on vasm 1.9 (used with permission)
|
2022-04-05 12:07:49 +02:00 |
|
Karoly Balogh
|
59c33d69ab
|
Revert "m68k: utilize cg.a_loadaddr_ref_cgpara in hlcgcpu" for now, turns out it's not needed
|
2022-03-24 09:48:25 +01:00 |
|
Karoly Balogh
|
ed520548be
|
m68k: utilize cg.a_loadaddr_ref_cgpara in hlcgcpu, as m68k has an instruction for loading addresses directly to the stack (PEA), and the default implementation of hlcg.a_loadaddr_ref_cgpara doesn't use that code path
|
2022-03-23 11:06:18 +01:00 |
|
Karoly Balogh
|
22eb1e099f
|
* m68k: make sure right is in an address register for muln,addn,orn,xorn, before calling the low level cg
|
2022-03-22 09:02:31 +01:00 |
|
Karoly Balogh
|
be2c1c751d
|
* m68k: fixed the register save/restore for larger than 32K stackframes on subarchs which has no long displacement, to not trash register A0
|
2022-03-12 21:22:42 +01:00 |
|
Karoly Balogh
|
0600287c63
|
* m68k: spilling read, write, and replace is now bound to CPU capabilities instead of CPU family. This probably fixes some issues on 68000, where spilling replacement was not respecting CPU displacement handling boundaries, leading to assembler errors.
|
2022-03-11 16:03:21 +01:00 |
|
florian
|
27fb9086aa
|
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
|
2022-03-08 23:03:18 +01:00 |
|
Karoly Balogh
|
554ae218ca
|
* m68k: fix an endless syntax error loop in the assembler reader
|
2022-03-06 22:03:01 +01:00 |
|
Karoly Balogh
|
10191477ae
|
* m68k: allow vasm to be used for system_m68k_embedded target, simplify some code
|
2022-03-05 17:59:15 +01:00 |
|
Karoly Balogh
|
077a3f1892
|
* m68k: don't attempt to copy less than 1 byte in g_concatcopy, this fixes tdfa7.pp on 68000 and removes some superfluous address processing on 68020+ in the same test
|
2022-02-08 03:04:28 +01:00 |
|
Karoly Balogh
|
8f083f6342
|
* m68k: do not generate unnecessary unaligned load sequences for byte loads into registers, this fixes tcnvint1 test on plain 68000
|
2022-02-08 01:26:28 +01:00 |
|
Karoly Balogh
|
06da0b3db6
|
* fix m68k IE after e9acd759 , patch by Yuriy Sydorov
|
2021-12-13 16:14:59 +01:00 |
|
florian
|
6404478ea4
|
* cleanup of VER3_0 defines
|
2021-11-17 22:19:57 +01:00 |
|
florian
|
ff3acfb8cd
|
* cleanup of 2.7.0 defines
|
2021-10-31 13:20:28 +01:00 |
|
Károly Balogh
|
cdc7fec019
|
m68k: D2 is considered volatile on macosclassic
git-svn-id: trunk@49294 -
|
2021-04-29 22:06:26 +00:00 |
|
Károly Balogh
|
d06cb1a20a
|
m68k: fixed a comment. no functional change
git-svn-id: trunk@49275 -
|
2021-04-27 06:25:13 +00:00 |
|
Károly Balogh
|
2a7aa11163
|
m68k: added support to references like (a0,d0.w) in inline assembly, also fixed a bug, where sometimes the index register would have been randomly set as smaller than .l size, when the size wasn't specified
git-svn-id: trunk@49233 -
|
2021-04-19 09:13:02 +00:00 |
|
Károly Balogh
|
665180a579
|
m68k: always use ELF objects with vasm for improved cross-compatibility with other tools and compilers
git-svn-id: trunk@49210 -
|
2021-04-16 11:42:04 +00:00 |
|
Károly Balogh
|
b5216a1990
|
m68k: on the Sinclair QL insert the main program's name into the object, so the RTL later can set it as default job name
git-svn-id: trunk@49189 -
|
2021-04-12 11:51:12 +00:00 |
|
Károly Balogh
|
c8e712f400
|
m68k: cleaned up some ancient mess from cpunode.pas, no significant functional change, apart from unit inclusion order
git-svn-id: trunk@49187 -
|
2021-04-12 09:33:51 +00:00 |
|
Károly Balogh
|
2703b36fe1
|
m68k: removed some helper function which was added, but in the end it never saw any use
git-svn-id: trunk@48798 -
|
2021-02-24 09:10:40 +00:00 |
|