Commit Graph

770 Commits

Author SHA1 Message Date
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
Károly Balogh
2ffe777b44 m68k: extend the the register to full size, when multiplied by an immediate in memory references. Patch based on the work of Pierre Muller.
git-svn-id: trunk@48732 -
2021-02-20 11:21:14 +00:00
Károly Balogh
ada3d2050c m68k: write inline floating point immediates as hex consts, instead of scientific notation. the scientific notation format parsing depends on the libc the assembler was linked against, which can lead to varying results and compile errors
git-svn-id: trunk@48524 -
2021-02-08 05:01:45 +00:00
Károly Balogh
d0178f7ae0 m68k: fix a_loadfpu_ref_reg to call a_loadfpu_reg_reg instead of a_load_reg_reg. made a_loadfpu_reg_reg internalerror on invalid target sizes when loading to a different reg size
git-svn-id: trunk@48523 -
2021-02-08 04:12:21 +00:00
Károly Balogh
77fee8b4eb m68k: do not use OS_NO for FPU locations, but properly promote location sizes into the CG
git-svn-id: trunk@48522 -
2021-02-08 04:07:04 +00:00
Károly Balogh
67fcf0f03e m68k: revert r48224, the fix proposed in that patch was just hiding an underlying issue
git-svn-id: trunk@48415 -
2021-01-25 00:42:01 +00:00
Károly Balogh
10fa12bbae m68k: take rounding requirements into account in a_loadfpu_reg_reg and a_loadfpu_ref_reg
git-svn-id: trunk@48414 -
2021-01-25 00:27:59 +00:00
Károly Balogh
da1746426b m68k: do not optimize away fmove fpureg0, intreg0; fmove intreg0; fpureg0; constructs, they're used for rounding to single on FPUs with no resultprecision encoding
git-svn-id: trunk@48413 -
2021-01-25 00:12:53 +00:00
pierre
4111e13017 Avoid inlining of real constant for m68k if type is not best precision
git-svn-id: trunk@48224 -
2021-01-19 22:33:32 +00:00
Károly Balogh
6190258f5d m68k: new CPU capability - the LINK instruction supports LONG displacements (68020+)
git-svn-id: trunk@47849 -
2020-12-26 00:21:31 +00:00
Károly Balogh
16a21eea87 m68k: the LEA+MOVEM to MOVEM optimization is not feasible on a ColdFire
git-svn-id: trunk@47847 -
2020-12-25 09:07:21 +00:00
florian
0ab69ea0ad + m68k: LEA, MOVE(M) to MOVE(M) predecremented optimization and MOVE(M), LEA to MOVE(M) postincremented optimization
git-svn-id: trunk@47762 -
2020-12-11 22:14:17 +00:00
florian
a0a8a6911a * m68k: proper values for first_*_reg
git-svn-id: trunk@47761 -
2020-12-11 22:14:16 +00:00
florian
817ef6949a * m68k: MOVE, TST, Jxx/Sxx to MOVE, Jxx optimization
git-svn-id: trunk@47751 -
2020-12-10 21:51:26 +00:00
florian
bb8c3fd153 * made optimization JSR, RTS to JMP more bullet proof, added comment
git-svn-id: trunk@47750 -
2020-12-10 21:09:20 +00:00
Károly Balogh
7f96a26de0 m68k: in g_concatcopy, check the actual alignment of references being copied rather than always excluding word and dword sized direct copies on a 68000
git-svn-id: trunk@47744 -
2020-12-10 04:17:06 +00:00
florian
a849e51a3c + m68k: JSR, RTS to JMP optimization
git-svn-id: trunk@47740 -
2020-12-09 20:57:06 +00:00
florian
fbb2e63fea + #QLvember work: stack frame optimization for m68k
git-svn-id: trunk@47629 -
2020-11-29 10:16:00 +00:00
florian
5ca2356638 * take care of po_noreturn in more cases
git-svn-id: trunk@47623 -
2020-11-28 16:02:51 +00:00
Károly Balogh
7444733f5d m68k: fix DB/DW/DD handling in inline assembler, update BuildConstant() method to current standards. issue reported/initial patch by Marcel Kilgus in QLForum.co.uk
git-svn-id: trunk@47548 -
2020-11-24 05:42:38 +00:00
Károly Balogh
e5d2c1a980 m68k: fixed parsing of constants to absolute addresses
git-svn-id: trunk@47419 -
2020-11-15 03:55:42 +00:00
Károly Balogh
a82a587a1b m68k: fixed parsing of absolute addresses in the assembler reader
git-svn-id: trunk@47418 -
2020-11-15 03:43:26 +00:00
Károly Balogh
53928dc0ed m68k: fix references like <symbol>(An) to parse properly in the assembler reader
git-svn-id: trunk@47356 -
2020-11-08 23:56:00 +00:00
Károly Balogh
eda7d535bd * m68k: enabled vasm assembler support for the Sinclair QL, and added linking
git-svn-id: trunk@47312 -
2020-11-04 21:01:34 +00:00
Károly Balogh
519701960c m68k: initial commit to add the Sinclair QL as a compiler target
git-svn-id: trunk@47307 -
2020-11-04 14:20:28 +00:00
Károly Balogh
9d425ff4ca m68k: change the stack push order in the register calling convention to left-to-right. This should fix parameter handling in nested procedures (tnest5)
git-svn-id: trunk@47279 -
2020-11-02 02:01:24 +00:00
Károly Balogh
55d4ffa9de m68k: add missing FINT and FINTRZ instructions to spilling_get_operation_type()
git-svn-id: trunk@47266 -
2020-10-31 21:57:59 +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
de180d7656 * m68k: fix index register usage in memory references, when the index is 8 or 16 bit wide and unsigned
git-svn-id: trunk@46886 -
2020-09-17 20:51:25 +00:00
florian
f798141d30 * simplified code
git-svn-id: trunk@46333 -
2020-08-08 14:48:24 +00:00
florian
995d2d280a - no need to call add_move_instruction if data is moved between different register classes
git-svn-id: trunk@46332 -
2020-08-08 14:48:24 +00:00
florian
e2bf83b573 * do not spill_replace if the register is used another time in the instruction
git-svn-id: trunk@46331 -
2020-08-08 14:48:23 +00:00
Károly Balogh
f20c76d73b m68k: fixed a long standing issue, where FPU registers would be clamped to single precision during spilling
git-svn-id: trunk@46307 -
2020-08-07 07:54:26 +00:00
florian
28f25b2df0 * reworked usage of tcgnotnode.handle_locjump
git-svn-id: trunk@46275 -
2020-08-05 21:15:32 +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
Jonas Maebe
e7d1a77f9a * rename the ARM/AArch64-Darwin targets to ARM/AArch64-iOS
* rename the m68k/PowerPC-MacOS targets to m68k/PowerPC-MacOSClassic
  * repurpose the AArch64/Darwin target for AArch64/macOS
   o make AArch64-Darwin default target for a hosted AArch64-Darwin compiler

git-svn-id: trunk@45758 -
2020-07-10 21:52:24 +00:00
Károly Balogh
58af742f3a m68k: atari syscalls might also destroy D2 and A2
git-svn-id: trunk@45469 -
2020-05-23 11:13:07 +00:00
Károly Balogh
c38efe6d18 m68k: tabs to spaces and indentation fix, no functional change
git-svn-id: trunk@45389 -
2020-05-16 19:15:52 +00:00
Károly Balogh
2c8db3bb9e m68k: add support for bitfield instructions as CPU capability
git-svn-id: trunk@45383 -
2020-05-16 13:47:18 +00:00
Károly Balogh
04a42bef84 m68k: fixed instruction code formatting in the generated include
git-svn-id: trunk@45314 -
2020-05-08 21:06:59 +00:00
Károly Balogh
6753f86987 m68k: migrate the compiler to the new instruction tables and drop the old ones
git-svn-id: trunk@45312 -
2020-05-08 12:33:04 +00:00
Károly Balogh
bc9b8af04b m68k: add the converted includes, based on m68kins.dat
git-svn-id: trunk@45311 -
2020-05-08 12:11:13 +00:00