| delorie.com/archives/browse.cgi | search |
| Date: | Thu, 5 Jul 2001 18:38:29 -0400 |
| Message-Id: | <200107052238.SAA11334@envy.delorie.com> |
| X-Authentication-Warning: | envy.delorie.com: dj set sender to dj AT envy DOT delorie DOT com using -f |
| From: | DJ Delorie <dj AT delorie DOT com> |
| To: | djgpp AT delorie DOT com |
| In-reply-to: | <9i2m71$qlf$1@news.tpi.pl> (xos@o2.pl) |
| Subject: | Re: Accessing registers from C |
| References: | <Pine DOT SUN DOT 3 DOT 91 DOT 1010704095943 DOT 3231S-100000 AT is> <9i2m71$qlf$1 AT news DOT tpi DOT pl> |
| Reply-To: | djgpp AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | djgpp AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
> __attribute__ ((("far")))
> __attribute__ ((("interrupt")))
These are probably do-able, if you limit yourself to functions (and
not data; far *pointers* just won't work). In other words, if you
just want an option that means "use a different epilogue/prologue" you
can probably implement that.
Don't expect it to be easy to tell gcc how to *call* such a function,
though. That's much harder, because then you have to watch out for
pointers again.
You may want a syntax like
__attribute__((far_return))
__attribute__((interrupt_return))
To keep people from thinking that "far" applies to anything else.
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |