FreeBSD/contrib/binutils/gas/config/tc-ia64.c
/* MASK contains 2 and only 2 PRs which are mutually exclusive.  Remove
   any mutexes which contain one of the PRs and create new ones when
   needed.  */
MASK contains 2 and only 2 PRs which are mutually exclusive.  Remove
any mutexes which contain one of the PRs and create new ones when
needed.
MASK contains 2 and only 2 PRs which are mutually exclusive . Remove any mutexes which contain one of the PRs and create new ones when needed .
static int
update_qp_mutex (valueT mask)
{
  int i;
  int add = 0;
  i = 0;
  while (i < qp_mutexeslen)
    {
      if ((qp_mutexes[i].prmask & mask) != 0)
	{
	  if (qp_mutexes[i].prmask == mask
	      && qp_mutexes[i].path == md.path)
	    {
	      i++;
	      add = -1;
	    }
	  else
	    {
	      int keep = 0;
	      if (md.debug_dv)
		{
		  fprintf (stderr, "  Clearing mutex relation");
		  print_prmask (qp_mutexes[i].prmask);
		  fprintf (stderr, "\n");
		}
	      if (qp_mutexes[i].path == md.path)
		{
		  if (add == 0
		      && (qp_mutexes[i].prmask & mask) == mask)
		    add = 1;
		  qp_mutexes[i].prmask &= ~mask;
		  if (qp_mutexes[i].prmask & (qp_mutexes[i].prmask - 1))
		    {
		      keep = 1;
		      i++;
		    }
		}
	      if (keep == 0)
		qp_mutexes[i] = qp_mutexes[--qp_mutexeslen];
	    }
	}
      else
	++i;
    }
  if (add == 1)
    add_qp_mutex (mask);
  return add;
}
static int update_qp_mutex ( valueT mask ) { int i ; int add = 0 ; i = 0 ; while ( i < qp_mutexeslen ) { if ( ( qp_mutexes [ i ] . prmask & mask ) != 0 ) { if ( qp_mutexes [ i ] . prmask == mask && qp_mutexes [ i ] . path == md . path ) { i ++ ; add = -1 ; } else { int keep = 0 ; if ( md . debug_dv ) { fprintf ( stderr , " " ) ; print_prmask ( qp_mutexes [ i ] . prmask ) ; fprintf ( stderr , " \n " ) ; } if ( qp_mutexes [ i ] . path == md . path ) { if ( add == 0 && ( qp_mutexes [ i ] . prmask & mask ) == mask ) add = 1 ; qp_mutexes [ i ] . prmask &= ~ mask ; if ( qp_mutexes [ i ] . prmask & ( qp_mutexes [ i ] . prmask - 1 ) ) { keep = 1 ; i ++ ; } } if ( keep == 0 ) qp_mutexes [ i ] = qp_mutexes [ -- qp_mutexeslen ] ; } } else ++ i ; } if ( add == 1 ) add_qp_mutex ( mask ) ; return add ; }
MASK contains 2 and only 2 PRs which are mutually exclusive.
MASK contains 2 and only 2 PRs which are mutually exclusive .
/* If it destroys and creates the same mutex, do nothing.  */ /* Deal with the old mutex with more than 3+ PRs only if
		 the new mutex on the same execution path with it.

		 FIXME: The 3+ mutex support is incomplete.
		 dot_pred_rel () may be a better place to fix it.  */ /* If it is a proper subset of the mutex, create a
		     new mutex.  */ /* Modify the mutex if there are more than one
			 PR left.  */ /* Remove the mutex.  */