Commit Graph

62 Commits

Author SHA1 Message Date
ggn 41ec2754c0 Tentative fix for bug #218 - allow unresolved symbols with trivial expressions to be exported 2023-03-19 15:38:45 -05:00
ggn 31894aa869 Fix for #209 - forbid exporting expressions with unresolved symbols 2022-12-21 16:49:40 -06:00
ggn bf44dfb197 Fix for #203. Thanks to Steven Tattersall for the report. 2022-06-27 11:52:32 -05:00
ggn 7d748dc6e2 Fix for #159: Split register sets according to architecture into different tables so they don't clash with label/symbol names. Modified tokeniser to use different tables when scanning for registers 2022-05-30 14:56:38 -05:00
ggn 09135712da .equr overhaul part 5: enabled .equr for all registers for all architectures 2022-05-30 14:17:59 -05:00
ggn d21544da60 Removed some dead code, as well as all gpu/dsp regbank check code (not only it was complicated, it also was very incomplete - for example: no bank checks were performed during fixups) 2022-05-30 14:17:59 -05:00
ggn 5b53a2a9e5 Add new optimisation switches for 56001 mode that were missing. Added warnings to all optimisation messages, as well as mention which switch caused the optimisation. Moved opt +op to opt +30 (Issue #185) 2021-08-20 10:57:31 -05:00
ggn 22203fdc3b Fix for issue #179: Don't touch o10 when +/~Oall is called. Made the o10 error message more verbose. Updated documentation. 2021-06-08 20:11:29 -05:00
ggn b08cf87bcf Fix for bug #176: During AddFixup(), evaluate as much of the expression as possible to avoid changed symbols during the fixup pass 2021-06-08 19:25:13 -05:00
Shamus Hammons cbc8347d4f Update to the name (don't ask), and copyright dates. Now at v2.1.0. 2021-03-07 16:43:25 -06:00
Shamus Hammons ac3149e460 Version bump for last commit + ws cleanups. Now at v2.0.18. 2020-07-17 18:45:33 -05:00
ggn 9afaf60ca2 Slight revamp of the optimisation system, featuring: strengthened flag parser, slight merge of two 020+ flags, fixes for +o6,+o8,+o9 and maybe more! 2020-07-17 18:20:19 -05:00
ggn fbbe9b115f Added new optimisation option "+op" which enforces PC relative mode (#123) 2020-01-17 13:56:41 -06:00
ggn 8f287ee722 Introducing new switch -fr which outputs binaries assembled at a given address. 2020-01-10 09:04:35 -06:00
Shamus Hammons 4205233c83 EOY minor update. 2020-01-03 09:25:26 -06:00
Shamus Hammons 7d0d2b9ecd Fix a few minor problems with 030 mode PC relative fixups. 2019-08-09 09:12:14 -05:00
Shamus Hammons 7d364a21bf Added missing d_ds handling, add kludge for 56K fixups.
Also added code to prevent dumping a 6502 section that had nothing in
it, as this is very annoying.
2019-08-08 15:01:34 -05:00
Shamus Hammons 29fa5dcf50 The deed has been accomplished.
As far as I can tell, there should be no more regressions, but that's
no guarantee of anything.  Assuming no more are found, this should go
out as version 2.0.0.  :-D
2019-08-07 18:24:52 -05:00
Shamus Hammons bdbf34766f Added in DSP fixups to sect.c, misc. fixes for 6502 assembler. 2019-08-06 10:16:20 -05:00
Shamus Hammons 30a2086548 Cleanup of codebase and initial commit of 56K assembler by ggn.
There's still a ways to go before this will work properly as we need to
add proper fixup handling and origin (".org") bookkeeping. As it is now,
the addition of all the miscellaneous bits and bobs to support the main
56K assembler are in place but they don't cause any regressions to the
existing assemblers already present in RMAC. Stay tuned for Round 2!
2018-06-23 11:57:21 -05:00
Shamus Hammons b93a2e2f8a Minor tweak for OP data address fixups. Now at version 1.13.1. 2018-02-26 20:43:58 -06:00
Shamus Hammons 261f8d9198 Added Jaguar Object Processor assembler.
Rationale for this and how it works can be found in
docs/note-on-the-op-assembler.txt. Version now at 1.13.0.
2018-02-25 21:39:59 -06:00
Shamus Hammons 4ca3c2db26 Add fixup stubs for FU_FLOATfoo types. Now at version 1.12.4. 2018-02-10 11:41:18 -06:00
Shamus Hammons fe673c9fe1 Minor bugfix for FU_NUM15 fixups.
Since eval is an unsigned int, the check for eval < -16 would never be
true. This has been fixed by casting eval to an int. Now at v1.12.2.
2018-02-10 09:12:28 -06:00
Shamus Hammons a5527a0117 Fix for D_foo() macros.
Seems that no bounds checking was been done for the majority of the
D_foo() macros; that has been fixed. Now at v1.12.1.
2018-02-10 08:30:54 -06:00
Shamus Hammons 9153334781 Partial fix for bug #108 (Fixup cleanups).
RMAC has needed a struct for fixups for some time, and now it has one.
All of the credit for pushing (and patching!) in that direction goes to
ggn; blame for the way it's implemented goes to me. There's still room
for improvement; but for now, this should leave us in much better shape.
Now at v1.12.0.
2018-02-09 23:08:47 -06:00
ggn 2ede373128 Various small fixes and additions to the 680x0 parts:
- New command line switch -m[cpu]  enables you to switch to a different cpu from the command line
- BYTESWAP64 macro fix
- New optimisation flags o6 and o7 turn null branches to NOP and convert clr.l Dx to moveq #0,Dx
- Remove tons of FPU/PMMU codegen functions in mech.c. They are now handled in a more smart way. Condition codes now stored in 68ktab - updated 68ktab to reflect that
2017-11-29 18:01:27 -06:00
Shamus Hammons eace4e1b29 Roll back TOKENPTR changes and most of the .u32 changes weren't needed.
The last commit had gone a bit overboard with the 32 vs 64 bit token
changes; this has been rectified. There's still a ways to go with the
floating point code, but this should be stable for now. Version now at
1.10.1.
2017-11-29 07:57:58 -06:00
Shamus Hammons f3c7d186a1 Fixes for last commit; version is now 1.10.0.
The float changes will need some going over to ensure that we don't end
up with what we had when pointers were shoved into the token stream
willy-nilly.
2017-11-21 07:54:55 -06:00
Shamus Hammons ff8188b7e2 Add support for 64-bit evaluations.
Version bump to 1.9.0. Right now the only thing that supports it is
dc.d; now that the infrastructure supports it, anything else that needs
64-bit support (such as FPUs and the like) can be done very easily now.
2017-10-08 08:40:02 -05:00
Shamus Hammons cfd001aea6 Fix for section alignment values in ELF objects.
Thanks to SainT for the patch. :-)
2017-08-29 12:20:17 -05:00
ggn 03dd34951a (c) message in header files and doc mini adjustments. 2017-05-08 09:15:22 -05:00
Shamus Hammons 9207a38ed4 Fixed code to remove warnings. Inching closer towards zero. :-) 2017-04-24 22:30:42 -05:00
Shamus Hammons 968958cccf Version bump for last commit. ;-) 2017-04-21 13:59:50 -05:00
ggn 2161b198b7 6502 mode: fix clearing of its RAM space with each .6502 invocation. Also fixed chptr resetting with each .6502 invocation. Also in this mode: dc.b strings with single quotes will get encoded to Atari 800 internal encoding (hardcoded mode for now, can be extended). 2017-04-21 13:42:40 -05:00
Shamus Hammons ff2052bcaa Code cleanup, version bump for last commit. :-) 2017-04-20 14:29:31 -05:00
ggn 052be802ba 6502 support added back from original Madmac sources!
- Source fixed to work with current rmac implementation
- Removed ultra kludgy output mode and replaced it with .com/.exe./.xex output module (activated using -fx)
- Added #< and #> to give low and high bytes off an immediate word
- Included tester in "tests" folder.
- Updated docs.
2017-04-20 09:26:42 -05:00
Shamus Hammons 60f204cb9e ELF support for RMAC.
ggn deserves most of the credit for this, as my job was going through
and tossing out the stuff that wasn't needed. ;-) There might be some
ELFish things that still need fixing; time, as usual, will tell.
2017-04-14 15:52:31 -05:00
Shamus Hammons 66be644c3e Fix for bug #78: Thanks to ggn for reporting and supplying the patch.
Bug fix for .w access for alcyon target, added new optimisation that
converts 0(ax) to (ax).
2016-09-12 20:37:51 -05:00
Shamus Hammons f4e9bcd703 Fixed WARNING macro to be system agnostic, added doco for -p switch. 2015-10-06 22:23:59 -05:00
ggn c74d8ef6f1 Visual Studio 2015 project files. A few warnings about unused variables fixed.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
2015-10-06 21:10:42 -05:00
Shamus Hammons d0c28c349d Fix for "*" getting bad section attributes, reported by A. Seed. 2015-02-19 08:56:14 -06:00
Shamus Hammons ec655dd371 Removed spurious printf. 2015-01-31 21:16:15 -06:00
Shamus Hammons a48737de12 Fixed a nasty bug that dropped symbols that shouldn't have been.
This stemmed from the fact that EQUR symbols somehow made it on to the
symbol declaration list. If such symbol was later .equrundef'd, it would
find it's way back onto the the sdecl list *twice*, with the result
that any symbols that came after it would be summarily discarded into
the ether. Really, really bad mojo.
2015-01-31 20:49:38 -06:00
Shamus Hammons 3f2bccb78a Misc. whitespace cleanups, removal of unneeded code. 2015-01-16 11:16:33 -06:00
Shamus Hammons 062214e620 Fixed word reversed fixup problem.
For some reason, there was code in several places that marked fixups/symbols
as belonging to a RISC section when it was clearly not the case. As a result,
it caused serious problems by reversing words in 68K sections just because a
symbol had been seen in a MOVEI # statement in a RISC section. Probably not
the last nasty surprise in this pile of spaghetti. :-/
2014-05-17 15:56:15 -05:00
Shamus Hammons b10167d557 More fixups to remove warnings, removal of more cruft. 2013-03-05 11:47:22 -06:00
Shamus Hammons 82307651be Various code cleanups, mainly to do with RISC assembly. 2013-03-04 07:36:09 -06:00
Shamus Hammons f6e6a55c4c Fix silly mask bugs, added check for use of undefined register equates. 2013-03-02 14:22:33 -06:00
Shamus Hammons 9fb8931331 Fixed subtle bug in section marking code.
Thanks to Linkvitch for helping find this one! Also, found and removed
some more 'GPU in Main' cruft hiding out in sect.c. Gone!
2013-02-15 21:27:29 -06:00