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.

Reply via email to