LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Ничего не понятно.

Может так понятнее)

word PHO_LookupRegForNode(word P1)
	when PHOptimization == 0:
		return PHO_REG_INVALID;

	word i = PHO_FIRST_REG;
	while i < PHO_FIRST_REG + PHO_REGS do
		when PHO_MatchNodes(PHO_RegNodeLink1[i], P1):
			return i;
		when PHO_MatchNodes(PHO_RegNodeLink2[i], P1):
			return i;
		inc i;
	end:while
	return PHO_REG_INVALID;
end

В каждый конкретный момент в регистре может быть только одна переменная.

void foo(int a; int b)
   int x = a; /* Теперь регистр связан с двумя выражениями: x и a */
   int y = b + 1; /* Теперь регистр связан с двумя выражениями: y и b + 1 */
end

Вообще говоря, содержимое регистра может быть эквивалентно неограниченному количеству выражений, если подряд присваивать переменные.

Исходная версия wandrien, :

Ничего не понятно.

Может так понятнее)

word PHO_LookupRegForNode(word P1)
	when PHOptimization == 0:
		return PHO_REG_INVALID;

	word i = PHO_FIRST_REG;
	while i < PHO_FIRST_REG + PHO_REGS do
		when PHO_MatchNodes(PHO_RegNodeLink1[i], P1):
			return i;
		when PHO_MatchNodes(PHO_RegNodeLink2[i], P1):
			return i;
		inc i;
	end:while
	return PHO_REG_INVALID;
end

В каждый конкретный момент в регистре может быть только одна переменная.

void foo(int a; int b)
   int x = a; /* Теперь регистр связан с двумя выражениями: x и a */
   int y = b + 1; /* Теперь теперь связан с двумя выражениями: y и b + 1 */
end

Вообще говоря, содержимое регистра может быть эквивалентно неограниченному количеству выражений, если подряд присваивать переменные.