Peter, Would you please help answer Oleg questions about case 0 in htm_expand_builtin in rs6000.c?
Thanks, David Speaking of GEN_FCN usage in rs6000.c. The recently added HTM builtin code has one interesting piece: static rtx htm_expand_builtin (tree exp, rtx target, bool * expandedp) { ... switch (nopnds) { case 0: pat = GEN_FCN (icode) (NULL_RTX); break; case 1: pat = GEN_FCN (icode) (op[0]); break; The 'case 0' looks suspicious. If the function behind the pointer really is a zero-arg function this might or might not work depending on the ABI. I'm not sure what the intention here is. I've compiled gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c to see if it ever gets into the 'case 0' but it doesn't. The function 'htm_init_builtins' doesn't seem to handle a 'case 0'. I'm confused, somebody else should have a look at this please.