Cross gcc Mailing List Archive

[Next][Index][Thread]

68040 inline asm code problems




Hello,

I'm having a problem either in compiling or undestanding the 
gcc compiler. I'm running a 68k-rtems cross for my RTEMS project
which works well. However, in adding some bus error handlers that
I got from the HIDEOS MVME162 project, I ran into problems getting 
them to compile. Here is an example:


IRQHANDLER* SysGetVbr()
{
   unsigned long x;
   asm  volatile ("movec vbr,%0" : "=g" (x)  );  
   return (IRQHANDLER*)x;
}

/**************************** access exception ************************/
	asm (" .text");
	asm ("_irq_access:");
 
	/* Save context */
	asm ("moveml #0xfffe,sp@-");     /* Save regs */
 	asm ("movel sp@(62),a2 ");   /* this is pc */
	asm ("addql #2,sp@(62)");    /* pc+x to skip illegal instruction */
	asm ("movl #1,_int_occurred");
	asm ("moveml sp@+,#0x7fff");
	asm ("rte");


compiled with "m68k-rtems-gcc -c"

produces this:
/tmp/cca14729.s: Assembler messages:
/tmp/cca14729.s:10: Error: operands mismatch -- statement `movec vbr,-4(%a6)' ignored
/tmp/cca14729.s:20: Error: parse error -- statement `moveml #0xfffe,sp@-' ignored
/tmp/cca14729.s:21: Error: parse error -- statement `movel sp@(62),a2' ignored
/tmp/cca14729.s:22: Error: parse error -- statement `addql #2,sp@(62)' ignored
/tmp/cca14729.s:24: Error: parse error -- statement `moveml sp@+,#0x7fff' ignored


Am I missing something in the command line, or in the file itself?


Thanks in advance,

Dean Nelson
Lockheed Martin 
Las Vegas, Nv

Follow-Ups:

Home | Subject Index | Thread Index