32-bit PowerPC sdata linker problem

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Jun 10 06:28:00 GMT 2014


On 2014-06-07 14:34, Alan Modra wrote:
> On Fri, Jun 06, 2014 at 04:15:23PM +0200, Sebastian Huber wrote:
>> >On 2014-06-06 15:49, Alan Modra wrote:
>>> > >On Fri, Jun 06, 2014 at 03:23:52PM +0200, Sebastian Huber wrote:
>>>>> > >>>On 2014-06-06 15:05, Alan Modra wrote:
>>>>>>> > >>>> >On Fri, Jun 06, 2014 at 02:48:55PM +0200, Sebastian Huber wrote:
>>>>>>>>> > >>>>> >>	cmplwi	cr0, \_REG, ppc_exc_lock_std@sdarel
>>>>>>>>> > >>>>> >>
>>>>>>>>> > >>>>> >>	.endm
>>>>>>>>> > >>>>> >>
>>>>>>>>> > >>>>> >>I guess, I have to rewrite this a bit.
>>>>>>> > >>>> >
>>>>>>> > >>>> >Doesn't using a cmpwi rather than cmplwi work?
>>>>>>> > >>>> >
>>>>> > >>>
>>>>> > >>>No, the cmplwi uses 0x0000 || UIMM with the cmpwi we have
>>>>> > >>>EXTS(SIMM), but the upper 16-bit must be zero so that the comparison
>>>>> > >>>works in the macro.
>>> > >Oh, of course.  Perhaps I should make cmpli accept both signed and
>>> > >unsigned 16-bit fields.
>> >
>> >I think our usage of this cmplwi with the implicit truncation from
>> >the linker is quite a hack.  On the other hand it worked for several
>> >years.
> Applied.
>
> bfd/
> 	* elf32-ppc.c (ppc_elf_relocate_section): Treat field of cmpli
> 	insn as a bitfield; Use complain_overflow_bitfield.
> 	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
> opcodes/
> 	* ppc-opc.c (UISIGNOPT): Define and use with cmpli.
> gas/
> 	* config/tc-ppc.c (ppc_insert_operand): Handle PPC_OPERAND_SIGNOPT
> 	on unsigned fields.  Comment on PPC_OPERAND_SIGNOPT signed fields
> 	in 64-bit mode.
> gold/
> 	* powerpc.cc (relocate): Treat field of cmpli insn as a bitfield.

Thanks, now it works again.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the Binutils mailing list