giovedì 7 maggio 2009

/tmp/abcdefghi.s: rdhi, rdlo and rm must all be different

Specifying the same register for either <RdHi> and <Rm>, or <RdLo> and
<Rm>, was
previously described as producing UNPREDICTABLE results. There is no
restriction
in ARMv6, and it is believed all relevant ARMv4 and ARMv5 implementations do
not require this restriction either, because high performance multipliers
read
all their operands prior to writing back any results.
Compilando il kernel Linux per la Beagleboard (con la gcc toolchain di CodeSourcery) vedo di tanto in tanto apparire dei warning "rdhi, rdlo and rm must all be different".

Per fortuna il problema si pone solo sulle architetture più vecchie (ARMv4 e ARMv5); dalle architetture più recenti (ARMv6 e ARMv7) non dovrebbe essere più un problema; è solo quel CodeSourcery 2007q3 che ancora non ha tolto l'inutile warning.

Nessun commento:

Posta un commento