Commit Graph

86 Commits

Author SHA1 Message Date
Shamus Hammons 64dd9e00ec Fixes for bugs #211-213, submitted by Bastian Schick. :-) 2022-12-21 17:19:36 -06:00
ggn 41a8ca9921 Fix for #210 - 6502 mode with -fr working 2022-12-21 16:57:02 -06:00
Shamus Hammons c6808e75ed Files missed in the last commit. :-P 2022-12-21 16:37:53 -06:00
James Jones 526716329c Support -g debug info generation
-Add GenLineNoSym(), which will generate debug
 symbols for file names and line numbers when
 debug info generation is requested.

-Replace code that warns -g is not supported with
 code to set a flag.

-Complain if -g is specified for non-BSD output
 formats, as only stabs-in-symbol-table/a.out
 format debug information is supported currently.

-Document -g flag in usage information function.

-Document -g flag in manual.

v2:
-Only call debug symbol generation functions when
 dbg_sym != 0
2022-08-15 21:08:10 -05:00
ggn 3f937a2ab5 Added "-4" switch that enables C style operator precedence (original work by Bastian Schick) 2022-06-27 11:52:24 -05:00
Shamus Hammons 2e6a046d5d Fix to prevent defined registers/CCs from being exported in the symtab.
As it turns out, this was not due to malice but because RMAC was set up
to squeeze out every label ever defined in the assembly.  Hopefully,
with this patch, things should be a bit more sane.  :-)
2022-05-30 17:40:19 -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 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 0a1fc020c1 Fixed a wrong optimisation switch test, corrected some messages, updated docs 2022-05-30 13:16:38 -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 d000ce6bab Addresses issue #185 - all optimisations off by default 2021-08-20 10:57:27 -05:00
ggn 7815a9c950 Remove all remaining traces of "as68_flag" from the codebase (issue #186) 2021-08-20 10:08:06 -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 5c830e8dbf Produce error when ".opt +o" or ".opt ~o" is encountered. Also, small doc additions 2021-06-08 19:49:41 -05:00
Shamus Hammons 40883e54a5 Somehow these files slipped through the cracks... :-/ 2021-06-08 19:41:45 -05:00
James Jones b1d365c467 Treat ':' as a path separator on non-Windows platforms
In addition to ';', allow the use of ':' as a path
separator in RMACPATH, the -i parameter, and any
other uses of nthpath. This makes rmac more
consistent with standard Unix tool behavior on
Unix-like systems.
2021-06-08 18:34:07 -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
James Jones 619867988e Fix RMACPATH
Commit 9ecc6f5e49
(Fix for bug #167) fixed specifying multiple
include directories on the command line, but in
doing so broke specifying any include directories
via the RMACPATH environment variable.  Fix this
by restoring the old behavior of searchpath being
NULL if -i/-I were not specified.
2020-09-28 22:04:40 -05:00
Shamus Hammons 821279dcb7 Version bump for last commit; now a v2.0.20.;35M;35m 2020-08-03 12:28:57 -05:00
ggn 9ecc6f5e49 Fix for bug #167 2020-08-03 12:24:36 -05:00
Shamus Hammons 4ee0f36a71 Reign in internal help back to 80 columns. :-P 2020-07-20 09:45:09 -05: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
Shamus Hammons 3f6e05a96f Added check to see that include paths actually exist.
RMAC will now yell at you if you give it a bogus include path.  Thanks
to ggn for the idea!  Now at v2.0.11.
2020-02-28 17:24:59 -06: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 0b6363381c Minor changes and version bump for prior commit; now at v2.0.5. 2020-01-03 09:21:02 -06:00
ggn 2037569179 Added DSM directive for 56001 mode (and not only). Updated doc. Condensed usage message. 2020-01-02 11:57:50 -06: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 8d3be1d337 Forgot to update the copyright in rmac.c. D'oh! :-P 2019-08-07 21:21:55 -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 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 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 76299dcc58 Add flag -px in alcyon mode which enables extended GST symbol table. 2018-01-23 19:35:29 -06:00
ggn b57de9c1d9 Added optimisation switches -o8 and -o9
Added optimisation switches -o8 (adda.w/l #x,Dy to addq.w/l #x,Dy) and
-o9 (adda.w/l #x,Dy to lea x(Dy),Dy), both off by default.
2018-01-23 18:34:43 -06:00
Shamus Hammons 4ca28ba07d Small cleanups + version bump for last commit.
Version now at 1.10.2.
2017-11-29 18:52: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 cfd001aea6 Fix for section alignment values in ELF objects.
Thanks to SainT for the patch. :-)
2017-08-29 12:20:17 -05:00
Shamus Hammons c9541a9d4f Fixed IREPT blocks to not corrupt memory on 64-bit hosts. 2017-07-19 15:27:06 -05:00
ggn 03dd34951a (c) message in header files and doc mini adjustments. 2017-05-08 09:15:22 -05:00
Shamus Hammons 5f23454f71 Code cleanup from last patch, also, version bump for same. :-) 2017-05-06 21:07:36 -05:00
ggn 5cd8a4814b Initial commit for 68020/30/40/60/68881/68882/68851 support. 2017-05-06 13:06:57 -05:00
Shamus Hammons 2601908757 Version bump for last commits. :-) 2017-04-27 08:14:08 -05:00
ggn ba392fd1c6 Added -l* to enable listing without pagination. Fix bug where a wrong malloc would lead to explosions with listing enabled. 2017-04-27 08:06:49 -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
ggn f33d7fdb41 Fix movep size optimising when +o3 is enabled. Show available optimisations in the usage message. 2017-04-18 21:00:37 -05:00