>>>>> Duncan Purll writes: Duncan> I am in the process of verifying that the gnu assembler produces object code which corresponds on an instruction-by-instruction basis with the interleaved source / assembly language listing obtained via -Wa,-ahls. This is for the purposes of software certification. I need to create C source which causes the compiler to emit specific mnemonics (eg.mfctr instruction etc.) but do not know how to force this. I have looked in rs6000.md but this does not contain the instruction mnemonics I am looking for. Can you advise of a way in which I can determine / predict which mnemonics will be generated for particular C source constructs?
mfctr and similar instructions are generated by the movsi_internal1 and movdi_internal1 patterns, the mf%1 %0 mt%0 %1 alternatives. "mfctr" will be very rare. I'm not sure there is any easy C code that would produce it. GCC tries to avoid placing values into CTR unless it specifically is needed for an instruction that requires that register, such as a jump or a loop. PowerPC does not generate any results in CTR. Either GCC would need to spill the value to reuse CTR for some other purpos or somehow want the iteration count of a loop only iterated in CTR. David