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

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

arm - mixed thumb/arm mode code


Hi

I've read through the docs about ARM interworking
found in: 

      gcc-3.2/gcc/config/arm/README-interworking

and I'm looking for more details, done quite a bit
of searching and can't seem to find anything other then
'how to build a cross compiler' (Which I have working 
just fine)

Specifically I have 4 questions:

1) I'd like to know if there is some type of an attribute
   that can specify that an external function is thumb
   or arm, it might work like this:

   #define __thumbfunc  __attribute((interfacethumb))
   #define __arm32func  __attribute((interfacearm32))

     extern int __thumbfunc foo(void);
     extern int __arm32func bar(void);

   WHY? Because - if I turn on Interworking - I seem to
   need it turned on for *everything* including all the
   libraries that I'm going to use. (I get a slew of 
   messages Blah supports Interworking - but BlahBlah 
   does not)

   I'd rather have the bulk of my code - all libs and such
   compiled as "thumb" - then have a few special routines
   (core computationally intensive routines) compiled as ARM

2) Where can I find ASSEMBLER calling conventions for ARM
   both in THUMB mode and in ARM32 mode.

   There are some routines that I need to write that must
   be written in the "other mode" and written in assembler.

   Where can I get more information about this.

   Yes, I can "gleen" some stuff from the compiler sources
   and by using the compiler "-S" option I'd rather find
   docs on the subject.

3) Where can I find information about how ARM does
   PIC code - ie: I want to write assembler code
   that supports this, but can't find any info on it.

4) In NEWLIB - 'setjmp.S' it has a few macros and such
   that make it easier to write assembler functions.

   Is there another repository of this type of stuff
   someplace that I should look for?

   Specifically - I'm looking for a doc that might
   have this title:

	"How to write ARM and THUMB assembler 
	functions that interface to GCC compiled
	C and C++ functions - including examples
	of all those .whatever things the assembler
	and DEBUGGER requires to make things work."

-Duane


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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