Posted
about 15 years
ago
by
Brian Dominy
A new version of GCC6809 and the newlib C library have been uploaded.
Patch 3 is a minor update that fixes a few very uncommon problems. It
is mostly a cleanup of the 6809 backend, removing lots of unused code.
Notable fixes are support for
... [More]
character strings that include non-ASCII
characters and support for the GCC 'alias' attribute.
The newlib library was updated to patch 2 and fixes only one problem:
the read() and write() system calls for the simulator were not returning
success/failure correctly; this was sometimes causing printf() etc. not
to behave correctly.
Regression tests have been run and no new problems have arisen.
Users of GCC6809 patch 2 do not need to upgrade unless they need one of
the new features. Users of newlib are encouraged to upgrade. [Less]
|
Posted
about 15 years
ago
by
Brian Dominy
I've revisited porting gcc6809 to newer versions of GCC, and made some progress.
For months, I've not done much because the current GCC6809 4.3.4 release was good
enough for my own purposes. A 4.4 port compiled but did not run well, and 4.5 didn't
... [More]
even compile. I struggled with this for a while and then gave up on it. Until I
decided that I was handling branching incorrectly.
I use git to manage my gcc6809 repositories. GCC uses Subversion but git can cope
with this, so I'm able to merge my branches and the upstream branches. Unfortunately
I haven't been doing a good job of that. When I started, I was a git newbie and
I did a lot of things wrong. The biggest lesson has been that 'git rebase' is your
friend, and it's worth taking the time to understand it and use it wisely. It's
like playing with fire: it's dangerous and best used only when necessary, but there
are definitely times when you must use it.
So I spent the last several days completely rebasing my private branches into something
more sane. The end result is much cleaner and showed some problems with the 4.4 and
4.5 branches, which I've been correcting. The end result is that a 4.4-based 6809
is no longer out of the realm of possibility. And 4.5 and even the mainline trunk now
compile and mostly work, although with lots of regressions that will need to be fixed
before they can ever be truly used.
git did a lot of the hard work in getting these branches usable again. If you're not
using git for your software projects, take a look at it sometime. [Less]
|
Posted
over 15 years
ago
by
Brian Dominy
As most of you who have been tracking this have realized by now, not much
is happening with GCC6809 at the moment. It's serving its original purpose
for me quite well, and I don't have a strong desire to make many more changes
to it going forward.
... [More]
The core GCC 4.3.4 is a very stable compiler release; few relevant updates
have occurred that warrant another GCC6809 release. GCC 4.4
continues to give me problems and I've basically abandoned it. I've spent
enough time already debugging numerous code generator bugs, and there's no compelling
reason for me to upgrade to GCC 4.4 anyway.
There are a few optimizations I've made since August which haven't been
officially released yet; they are extremely minor. I will eventually roll them
out, but existing users probably don't want to bother upgrading.
There is one experimental side project I've devoted some time to -- that of
improving the support for 32-bit math. Current GCC6809 generates mostly
correct but hideously inefficient code for this. I have an idea on how to
fix it, but I can't make any promises. I will post an update as soon as
I have more information. [Less]
|
Posted
almost 16 years
ago
by
Brian Dominy
It occurred me that I never posted a list of the changes in the new release.
Include all core GCC 4.3.4 bug fixes.
Updated to version 5.0.0 of the ASXXXX tools, which is now licensed under the GPL.
The GCC modifications are relicensed from GPLv2
... [More]
to GPLv3.
The maximum line length accepted by the assembler tools has been increased from
80 characters to 256 characters.
The binutils wrapper scripts ar, as, and ld are now templates. They are converted into
real, executable scripts when they are installed. This is done so that the scripts know
which target type is being requested. Likewise, the as6809.conf file is obsolete.
The default linker address locations have changed. All code and data, except for the
vector table, now defaults to address 0x10. Previously, different addresses were
reserved for different types of objects. Now, they are all packed into a single section.
Updated the online manual and rewrote it in Texinfo.
Changed so that configure is not re-run everytime on Cygwin, since it is very slow.
Removed the Subversion-related scripts.
The default stack pointer under simulation is now 0xFE00.
Disable an optimization that was incorrect for interrupt handlers.
Improve tail-call optimization.
Updated many comments in the machine description.
Remove many of the inline comments in the generated assembly, that was only for debugging
the compiler.
Add the bswaphi instruction for byte swapping a 16-bit entity (using the exg a,b instruction).
Fix code generation bug when optimizing two consecutive PSHS instructions.
Fix parallel computation.
[Less]
|
Posted
almost 16 years
ago
by
Brian Dominy
The newest version of GCC6809 is now available online.
This is a patch against the recently released GCC 4.3.4.
If you have any problems, please let me know. This is a fairly stable
upgrade and mostly fixes a lot of installation issues that people
were having. It also upgrades the ASXXXX assembler tools from version
4.1 to version 5.0.
|
Posted
almost 16 years
ago
by
Brian Dominy
It occurred me that I never posted a list of the changes in the new release.
Include all core GCC 4.3.4 bug fixes.
Updated to version 5.0.0 of the ASXXXX tools, which is now licensed under the GPL.
The GCC modifications are relicensed from GPLv2
... [More]
to GPLv3.
The maximum line length accepted by the assembler tools has been increased from
80 characters to 256 characters.
The binutils wrapper scripts ar, as, and ld are now templates. They are converted into
real, executable scripts when they are installed. This is done so that the scripts know
which target type is being requested. Likewise, the as6809.conf file is obsolete.
The default linker address locations have changed. All code and data, except for the
vector table, now defaults to address 0x10. Previously, different addresses were
reserved for different types of objects. Now, they are all packed into a single section.
Updated the online manual and rewrote it in Texinfo.
Changed so that configure is not re-run everytime on Cygwin, since it is very slow.
Removed the Subversion-related scripts.
The default stack pointer under simulation is now 0xFE00.
Disable an optimization that was incorrect for interrupt handlers.
Improve tail-call optimization.
Updated many comments in the machine description.
Remove many of the inline comments in the generated assembly, that was only for debugging
the compiler.
Add the bswaphi instruction for byte swapping a 16-bit entity (using the exg a,b instruction).
Fix code generation bug when optimizing two consecutive PSHS instructions.
Fix parallel computation.
[Less]
|
Posted
almost 16 years
ago
by
Brian Dominy
It occurred me that I never posted a list of the changes in the new release.
Include all core GCC 4.3.4 bug fixes.
Updated ...
|
Posted
almost 16 years
ago
by
Brian Dominy
The newest version of GCC6809 is now available online.
This is a patch against the recently released GCC 4.3.4.
If you have any problems, ...
|
Posted
almost 16 years
ago
by
Brian Dominy
The newest version of GCC6809 is now available online.
This is a patch against the recently released GCC 4.3.4.
If you have any problems, please let me know. This is a fairly stable
upgrade and mostly fixes a lot of installation issues that people
were having. It also upgrades the ASXXXX assembler tools from version
4.1 to version 5.0.
|
Posted
almost 16 years
ago
by
Brian Dominy
The GCC maintainers have officially released version 4.3.4. This is
a minor update, but it has been the basis of many new 6809 changes. Soon
I'll be releasing a new 6809 package -- stay tuned.
|