James Jones [Thu, 27 Aug 2020 05:19:26 +0000 (22:19 -0700)]
Fix RMACPATH
Commit 9ecc6f5e49e1740adee78dd45e1115c7e4fcc314
(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.
We bumped the # of tokens in the TOKENSTREAM structure from 32 to 64,
but also added some logic to the macro invocation code to check if we
break the limits and thus don't crash. Will 64 be enough? My crystal
ball is cloudy ATM... :-P
James Jones [Sun, 12 Apr 2020 05:25:48 +0000 (22:25 -0700)]
Properly advance past register bank specifier
Register banks, like all constants, are stored
in the token stream as uint64_t values. Hence,
to advance the stream, the 32-bit tok pointer
must be advanced twice after parsing a register
bank.
Shamus Hammons [Wed, 15 Jan 2020 04:14:01 +0000 (22:14 -0600)]
Fixes for bug #144 (unitialized code paths in 6502 codegen).
I was able to throw away a bunch of code in m6502cg(); things should be
much clearer vis-a-vis how things are parsed and code flow through that
function. Plus it's always nice to be able to throw away code. :-)
Now at v2.0.9.
Shamus Hammons [Wed, 7 Aug 2019 23:24:52 +0000 (18:24 -0500)]
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
Shamus Hammons [Sat, 23 Jun 2018 16:57:21 +0000 (11:57 -0500)]
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!
Shamus Hammons [Sun, 3 Jun 2018 15:01:45 +0000 (10:01 -0500)]
Minor fixups.
Basically give a more meaningful error message in incbin if the filename
is missing, and use the macros already defined in opkw.h instead of
cooking up our own and (possibly) getting out of sync later on down the
road.
Shamus Hammons [Sat, 24 Feb 2018 16:27:31 +0000 (10:27 -0600)]
Fix for subtle bug in the expression analyzer.
Turns out if you blindly promote arithmetic expressions to
ABS + DEFINED, it causes things to assemble wrong. This crept in around
v1.9.1; Now at version 1.12.5.
Shamus Hammons [Sat, 10 Feb 2018 05:08:47 +0000 (23:08 -0600)]
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.
Shamus Hammons [Sun, 21 Jan 2018 14:25:06 +0000 (08:25 -0600)]
Lots of fixes for floating point handling; version now at 1.11.0.
Some of the following changes are ggn's, and some are mine:
- When tokenizing floats we need to store them using a double pointer
- PTR union needed a (double *)
- Major changes to float depositing in eagen0.c
- Reverted the changes in expr.c so at least floats are processed by
expr() and friends
- SYM svalue needs to be 64 bits
- When EQUing a float symbol don't chop off the upper 32 bits from eval
- Added fltpoint.{c,h} in order to properly create IEEE-754 floating
point and Motorola extended numbers
- Fixed float evaluations in evexpr()
- Fixed floating point depositions in direct.c (in d_dc())
- Upped the BSD image limit in object.c to 8MB for crazy people making
6MB Jaguar ROMs (will need a real fix at some point)
ggn [Wed, 29 Nov 2017 19:28:44 +0000 (21:28 +0200)]
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
Shamus Hammons [Wed, 29 Nov 2017 13:57:58 +0000 (07:57 -0600)]
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.