GCC - The Complete Reference (537669), страница 81
Текст из файла (страница 81)
Операнд О содержит исходный номер псевдорегистра. Операнд 1 определяет значение псевдорегистра в пределах области. Операнд 2 указывает количество ссылок на регистр внутри области. Операнд 3 содержит количество изменений содержимого регистра в пределах области. Операнд 4 указывает количество отключений регистра в пределах области. Операнд 5 содержит флаги, которые указывают, нужно ли копировать данные из исходного регистра в новый регистр в начале области и нужно ли копировать данные из нового регистра в исходный регистр в конце области.
Операнд 6 содержит время жизни регистра. Операнд 7 указывает количество вызовов за время жизни данных регистра. Операнд 8 представляет собой символьный узел переменной, если регистр содержит переменную. Операнд 9 — узел блока, в котором объявлена переменная, если регистр содержит переменную. гапде чаг 'х' "е11" Эта инструкция содержит информацию об областях локальной переменной, Операнд О представляет собой список ехрх 15 ее, содержащий области, в которых переменная копируется в псевдорегистр. Операнд 1 указывает блок, в котором объявлена переменная. Операнд 2 содержит количество областей, в которых переменная используется.
гед 'о' "11д" Это аппаратный регистр или псевдорегистр. Также см. всхассгь Операнд 0 содержит номер регистра. Если этот номер меньше чем вопят вваотзо паохвткв, то регистр аппаратный. Операнд 1 указывает исходный номер регистра, который будет отличаться от номера псевдорегистра, преобразованного в аппаратный регистр. ГЕ5Х Х 1 Это заполнитель для возможной вставки значения ттпттгпб певцтее, использование которого может понадобиться до определения необходимого действия: вызова функции или ветвления. Операнд 0 представляет собой область исключений, из которой передается управление. ге1игп 'х' "" Возврат из подпрограммы. го1а1е '2' "ее" Поразрядный сдвиг влево без учета знака. Разряды, выходящие слева за пределы числа, переносятся на его правую сторону.
Операнд 0 содержит выражение, значение которого подвергается сдвигу, а операнд 1 — выражение, указывающее количество позиций сдвига. Глава 2О. йэык регистрового переноса 3 6 5 го1а1ег1 '2'нее" Поразрядный сдвиг вправо без учета знака. Разряды, выходящие справа за пределы числа, переносятся на его левую сторону.
Операнд О содержит выражение, значение которого подвергается сдвигу, а операнд 1 — выражение, указывающее количество позиций сдвига. 5СГа1СП 'О' нО" Вспомогательный регистр. Это регистр, который используется только в переделах одной инструкции. При выделении регистров или их перегрузке зта инструкция будет преобразована в инструкцию кед. Операнд используется только для облегчения преобразования данной инструкции в кед. 5е((иепсе 'х' "Е" Эта форма последовательности инструкций является результатом генерирования кода, основанного на инструкции бехспе ехрапб, которая формирует несколько инструкций.
Функция етасе спап() разбивает последовательность перепое на отдельные инструкции. Операнд О содержит массив выражений. 5е1 х' ее Операция присваивания, предназначенная для записи значения в определенное место, Все операции присвоения должны использовать инструкцию вес. Инструкции, требующие нескольких присвоений, должны использовать несколько инструкций вес. Операнд О содержит значение левой части выражения присваивания(1ча1це), указывающее на место записи присваиваемого значения (память, регистр, условный код и тд.). Операнд 1 представляет правую часть (гча!це) выражения присваивания— значение или место расположения значения, записываемого по адресу, на который указывает левая часть, 5е1 а11Г х 55 Эта инструкция может использоваться в качестве последнего операнда инструкций йехспе спвп, йебспе реерЬо1е нли с!ебйпе авкв спвп для задания атрибута, который назначается соответствующим заланному шаблону инструкциям.
Операнд О содержит имя атрибута, а операнд 1 — значение атрибута. 5е1 а11Г а!1егпа11че х' н5Е" Эта инструкция может использоваться в качестве последнего операнда инструкции бехспе спап или с!ебспе реерЬо1е для указания набора альтернативных значений атрибута. То, какое значение будет присвоено, определяется на основе результатов сравнения.
Операнд О содержит имя атрибута, а операнд 1 — массив возможных значений атрибута. 5!9п ех1еп(1 '1' "е" В результате вычисления выражения расширяются знаковые разряды. Количество знаковых разрядов определяется режимами машины и типом выражения. Также см. веко ехкепб. 366 Часть!!1. Внутренняя структура и окружение 519п ех1гас1 'Ь' "еее" Это указание размера и положения битового поля знака числа. Также см. веко ехсквсс. Операнд 0 представляет собой блок памяти, содержащий первый бит знакового битового поля.
Операнд 1 содержит количество битов в поле. Операнд 2 указывает смещение битового поля, т.е. количество бит блока памяти перед первым битом поля. Если установлена переменная вхтя вхе анттхлн, счет ведется от старшего бита блока памяти. В противном случае отсчет будет вестись от младшего бита. 5гпах с ее Сравнение чисел с учетом знака, результатом которого является большее значение из двух.
5ГП1П 'С' ' ЕЕ Сравнение чисел с учетом знака, результатом которого является меньшее значение из двух. 5с!Г1 1 "е Извлекает квадратный корень из значения, полученного после вычисления выражения. 55 ПЗ1ПН5 '2' "ЕЕ" Вычисляются значения обоих выражений, и значение операнда 1 вычитается из значения операнда 0 с учетом знака. Также см. ив вспттв. 55 Р1О5 'С' "ЕЕ" Вычисляются значения обоих выражений, а затем складываются с учетом знака. Также см. ив р1ив. 55 хгипсахе '1' "е Вычисляется значение выражения, которое затем усекается с учетом знака. Также см, пв скипааее. 5хг1с1 ! О!лг ратх 'х' "е" Присваиванне значения, изменяющего только младшие разряды указанного для записи результата расположения.
Операнд 0 содержит выражение присваивания, иа которое наложено ограничение век1се 1оьт рагс. 5ОЬгея 'х' "е!" Одно слово значения, состоящего из нескольких машинных слов. Операнд 0 содержит выражение, содержащее полное значение. Операнд 1 представляет собой селектор слова в значении. 5УпзЬО! Гег О 5 Ссылка на именованную метку. Также см. 1аззв1 тех.
Операнд 0 содержит строку метки (с предшествующим символом подчеркивания). Если имя метки начинается Глава 2О. Язык регистрового переноса 367 с символа звездочки, то звездочка удаляется, а символ подчеркивания не добавляет- ся. 1гар !1 'х' "еен Условная ловушка. Для безусловной ловушки значение условного выражения устанавливаетсяя равным "1". Операнд О содержит условное выражение. Операнд ! представляет собой код, который должен выполняться, если значение условного выражения не равно нулю.
1гопса1е '1' "е" Результат вычисления выражения усекается для записи в заданное расположение. идпг '2' нее" Вычисляются значения обоих выражений, и значение операнда ! делится на значение операнда О. Выполняется целочисленное деление без учета знака. цпогг!егес! '<" "ее" Сгенерированный код вычисляет значение выражений и выполняет неупорядоченное сравнение чисел с плавающей точкой.
Неупорядоченное сравнение не вызывает исключений, даже если значения выражений равны "наы". Результат выполнения инструкции равен сгие, только если значения равны. Также см. огкквгво. игпах 'с' неен Сравнение без учета знака, результатом которого является большее значение из двух. игп!и 'с' "еен Сравнение без учета знака, результатом которого является меньшее значение из двух.
н!пог! '2' нее" Производится вычисление значений обоих выражений, и значение операнда 1 делится на значение операнда О. В качестве результата берется остаток от целочисленного деления без учета знака. цпег! '<' "ее" Генерируемый код вычисляет значения выражений и производит неупорядоченное сравнение значений — чисел с плавающей точкой. Инструкция дает сне, если первое значение равно второму.
ипяе '<' "ее" Генерируемый код вычисляет значения выражений и производит неупорядоченное сравнение значений с плавающей точкой. Инструкция дает сгибе, если первое значение больше или равно второму. 363 Часть !!!. Внутренняя структура и окружение нпф '<' "ее" Генерируемый код вычисляет значения выражений и производит неупорядоченное сравнение значений с плавающей точкой. Инструкция дает стце, если первое значение больше второго. нп1е '<' "ее" Генерируемый код вычисляет значения выражений и производит неупорядоченное сравнение значений с плавающей точкой. Инструкция дает стае, если первое значение меньше или равно второму.