This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


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

The default -mpic-register for -mthumb


The default -mpic-register (on ARM/Thumb) is r10. In -mthumb mode, r10
is not available to the math instructions as a direct argument. On top
of that, preserving r10 complicates the function prologue. Does it
make more sense to use a directly accessible register, r7 for example,
as the default -mpic-register when in -mthumb mode? Can a
non-preserved register, such as r3, be used instead? (assuming the
compiler saves the function argument in r3 somewhere)

Why is the PIC register fixed? Could the compiler register allocation
logic be allowed to allocate the _GLOBAL_OFFSET_TABLE_ pointer the
same as any other variable? In which case it would probably realise
that
	cost(r3) < cost(r7) < cost(r10)
at least in the case where r3 isn't being used by a function argument.

Cheers,
Shaun


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