On Fri, May 30, 2014 at 5:07 PM, <[email protected]> wrote: > I couldn't find a description of TI's PRU C ABI. Can somebody help by > publicly posting it? > > If TI PRU C ABI turns out to be secret, then what do you think GCC PRU ABI > should look like?
Right now, based on my internal queries, the ABI doesn't have a hard specification. The readme does contain the calling convention and type size/alignment. I'm looking to see if additional aspects of the ABI can be solidified. If you have some specific decisions you'd like to standardize upon, please share those so we can drive as much interoperability as is reasonable and quickly become aware of points of incompatibility. > > Thanks, > Dimitar > > > On Wednesday, May 21, 2014 9:27:17 PM UTC+3, [email protected] wrote: >> >> >> On Wednesday, May 21, 2014 2:50:52 PM UTC+3, Jason Kridner wrote: >>> >>> >>> >>> On Sunday, April 20, 2014, <[email protected]> wrote: >>>> >>>> I'd like to announce my hobby project for the past few months - a port >>>> of GNU GCC and Binutils to TI's PRU. Patches and a simple example can be >>>> downloaded from https://github.com/dinuxbg/gnupru . >>>> >>>> Please note that this is still a work in progress. But since now there >>>> is a working blinking led example, I decided others may be interested. >>> >>> >>> Thank you, thank you! >>> >>>> >>>> >>>> >>>> >>>> Disclaimers: >>>> 1. This effort has no relation to the rumored TI C PRU compiler. >>> >>> >>> >>> Said rumored compiler is at >>> http://software-dl.ti.com/codegen/non-esd/downloads/beta.htm >>> >>>> >>>> >>>> 2. This is a preliminary release, so expect bugs. If your program >>>> doesn't run, then please be prepared to disassemble and check what the >>>> compiler/assembler/linker did. >>>> 3. There is no C library. >>>> 4. ABI is not yet finalized. >>> >>> >>> If you can make the ABI compatible, that would be really cool. >> >> Can you share this compatible ABI? If I have the specification and it is >> easy to modify GCC, then I could do it. I'll have to change the ABI anyway - >> current one is not optimal for using the hardware multiplication >> instruction. >> >> FYI, the current GCC PRU ABI was inspired by Nios2 and looks roughly like >> this: >> Regno Name >> 0-3 r0-r3 Register Arguments. Rest of arguments are saved >> on stack. >> 4-5 r4-r5 Return Location. Allows 64bit value return >> without involving the stack. >> 6-16 r6-r16 Caller Saved Registers >> 17-26 r17-r26 Callee Saved Registers >> 27 r27 ra Return Address >> 28 r28 sp Stack Pointer >> 29 r29 fp Frame Pointer. Usually omitted and used as a >> general-purpose register. >> 30 r30 Special I/O register. Not used by compiler. >> 31 r31 Special I/O register. Not used by compiler. >> >> >>> >>>> >>>> >>>> >>>> Regards, >>>> Dimitar >>>> >>> >>> >>> >>> >>> >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. > > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
