On Tue, 12 Nov 2013, M?ns Rullg?rd wrote:
Nicolas Pitre [off-list ref] writes:
quoted
On Tue, 12 Nov 2013, Ben Dooks wrote:
quoted
Given these are single instructoins for ARM, is it possible we could
make a table of all the callers and fix them up when we initialise
as we do for the SMP/UP case and for page-offset?
Not really. Calls to those functions are generated by the compiler
implicitly when a divisor operand is used and therefore we cannot
annotate those calls. We'd have to use special accessors everywhere to
replace the standard division operand (like we do for 64 by 32 bit
divisions) but I doubt that people would accept that.
It might be possible to extract this information from relocation tables.
True, but only for individual .o files. Once the linker puts them
together the information is lost, and trying to infer what the linker
has done is insane.
Filtering the compiler output to annotate idiv calls before it is
assembled would probably be a better solution.
Is it worth it? I'm not sure.
Nicolas