Committing (non-working) changes before switching back to Spin

The reason I'm abandoning the C version of the project for now, is that
a lot of inline assembly code (such as a lot of instructions in the
.cogc module) currently don't get compiled/assembled correctly: The
assembler doesn't translate immediate values correctly if they refer to
cog addresses (except for JMP / CALL instructions for which it follows a
different execution path).

Also, data directives that store pointers to other items in th same cog
currently don't generate the correct addresses.

The problem is caused by the fact that the GNU tools insist on using
byte-based addressing, and the current version of the Propeller
assembler converts the immediate parameters to cog pointers at too early
a stage, and doesn't translate data at all. This is all fine for the C
compiler which uses stores data in the hub and regards the cog as a huge
register bank (try taking the address of a variable declared with
_COGMEM), but it needs some work for projects with serious amounts of
inline assembly such as this one, especially if they contain
self-modifying code.

The maintainers are aware of the problem but they are apparently just as
busy as I am: communication is slow and tedious, and they are
(understandably) afraid that changes to the Assembler will break GCC. I
have commit access to the PropGCC source code but I'm not fully familiar
with the Binutils source code at this time, nor the dependencies between
the various tools, and of course I don't want to break anything either,
but I really want to get this done before the Official Parallax
Conference on May 4, 2013, so I decided to upload the current status to
Github, and I'll copy/paste all the important parts to a new Spin
module, and convert the inline assembly so it can be used with the
(known to be stable) Spin compiler.

For more information, see this discussion on the Parallax forums:
http://forums.parallax.com/showthread.php/146333