This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Intermetrics asm68000 to m68k-coff-as


David Greeson wrote:
> 
> Hi,
> 
> Our current assembler uses the following style,
> 
>     move.l  D1,-(A7) * displacements to arguments must change
> 
> but I had to change the line to this to get it to compile
> 
>     move.l  %D1,-(%A7) /* displacements to arguments must change */
> 
> We have thousands of line of assembler code.  Is there anyway to
> make m68k-coff-as accept the old style?

Convention is something like this :

/* ANSI concatenation macros.  */

#define CONCAT1(a, b) CONCAT2(a, b)
#define CONCAT2(a, b) a ## b

/* Use the right prefix for global labels.  */

#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)

/* Use the right prefix for registers.  */

#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)

#define d0 REG (d0)
#define d1 REG (d1)
#define d2 REG (d2)
#define d3 REG (d3)
#define d4 REG (d4)
#define d5 REG (d5)
#define d6 REG (d6)
#define d7 REG (d7)
#define a0 REG (a0)
#define a1 REG (a1)
#define a2 REG (a2)
#define a3 REG (a3)
#define a4 REG (a4)
#define a5 REG (a5)
#define a6 REG (a6)
#define fp REG (fp)
#define sp REG (sp)
#define sr REG (sr)

You could easily duplicate these with uppercase mnemonics.
My apologies to Rob, from whose work (newlib crt0) this
was shamelessly cribbed.


> David

--
Mike Smith  *BSD hack  Unix hardware collector
The question "why are the fundamental laws of nature mathematical"
invites the trivial response "because we define as fundamental those
laws which are mathematical".  Paul Davies, _The_Mind_of_God_