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: Interrupts with GCC/EGCS


From: Michael Schwingen <rincewind@discworld.dascon.de>
>Hm - I just did that. The patch could need some testing, but on my test
>cases, it seemed to work fine.
>I used __attribute__((interrupt)). When set on a function, all modified
>registers are saved and the function terminates using rte instead of
>rts/rtd.

Fantastic!  That's just the way I was planning to do it.  One or two 
comments, though:

I noticed a macro in m68k.h called INITIAL_FRAME_POINTER_OFFSET that 
seems to use this same check for used registers.  Does it need to be 
changed also?  Near as I can tell, it's used in reload1.c.

I'd considered forcing the interrupt functions to be void(void), but it 
wasn't obvious how to do that.  I have no idea how the code should check 
and flag such errors.

Have you submitted your patch to the egcs maintainers?  I'd really like 
to see this included in the distributions (although I'm not sure if 
they're currently accepting patches for non-critical features).
--
John A. Breen
jab3@hotmail.com

Get Your Private, Free Email at http://www.hotmail.com
_______________________________________________
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
_______________________________________________
To remove yourself from the crossgcc list, send
mail to crossgcc-request@cygnus.com with the
text 'unsubscribe' (without the quotes) in the
body of the message.