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.