This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: [GOLD] PowerPC64 toc code optimization


On Thu, Dec 06, 2012 at 10:35:15AM -0800, Doug Kwan (éæå) wrote:
> The pattern "(insn & (0x3f << 26)) == XXX << 26" repeats so many
> times.  Why not define a predicate? It would be difficult to spot a
> typo if there was one.

Mostly because this is known good working code copied from
elf64-ppc.c.  Changing it runs the risk of the typo you're concerned
about.  :)

Also, I prefer this style in this particular case.  Someone can read
the powerpc architecture manual and be assured that the correct bits
are being compared with the correct values.  In particular, lines like
the following have all this information in one place:

	  || ((insn & (0x3f << 26)) == 58u << 26 /* lwa,ld,lmd */
	      && (insn & 3) != 1)

The alternative you propose would be something like

	  || (is_opcode(insn, 58) && (insn & 3) != 1) /* lwa,ld,lmd */

and now you need to look in two places.

-- 
Alan Modra
Australia Development Lab, IBM


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