<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Что такое -msahf?]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=4688</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=4688&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Что такое -msahf?».]]></description>
		<lastBuildDate>Tue, 29 Jun 2010 15:04:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Что такое -msahf?]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=66542#p66542</link>
			<description><![CDATA[<div class="quotebox"><cite>mycetophylax пишет:</cite><blockquote><p><a href="http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html#index-msahf-1326">Тут</a> почитал, ничего не понял&nbsp; <img src="https://linuxforum.ru/img/smilies/ag.gif" alt="ag" /> .</p></blockquote></div><p><a href="http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html#index-msahf-1326">Там же</a> читал, это и сбило с толку. Инструкция-то 64-битная, зачем ее использовать на 32-бит процессоре? А ведь, она зачем-то включена в -march=native для этого процессора. Я ее выключил. Может стоит включить?</p>]]></description>
			<author><![CDATA[null@example.com (bobr)]]></author>
			<pubDate>Tue, 29 Jun 2010 15:04:19 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=66542#p66542</guid>
		</item>
		<item>
			<title><![CDATA[Re: Что такое -msahf?]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=66423#p66423</link>
			<description><![CDATA[<p><a href="http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html#index-msahf-1326">Тут</a> почитал, ничего не понял&nbsp; <img src="https://linuxforum.ru/img/smilies/ag.gif" alt="ag" /> .<br /></p><div class="quotebox"><blockquote><p>Эта опция позволяет использовать инструкцию SAHF в генерируемом 64битном коде...</p></blockquote></div><div class="quotebox"><blockquote><p>SAHF - (Store AH register into register Flags)<br />Загрузка регистра флагов eFlags/Flags из регистра AH<br />Схема команды:&nbsp; sahf <br />Назначение: запись содержимого регистра ah в младший байт регистра eflags/flags, в котором содержатся пять флагов cf, pf, af, zf и sf.<br />Алгоритм работы:<br />Команда загружает младший байт регистра eflags/flags содержимым регистра ah. В битах 7, 6, 4, 2 и 0 регистра ah должны, соответственно, содержаться новые значения флагов sf, zf, af, pf и cf.<br />Применение:<br />Эта команда используется совместно с командой lahf. Из-за того, что регистр флагов непосредственно недоступен, сочетание этих команд можно применять для анализа - и, возможно, изменения - состояния некоторых флагов в регистре eflags/flags. Содержимое старшей части регистра флагов не изменяется.</p></blockquote></div><div class="quotebox"><blockquote><p>LAHF - (Load AH register from register Flags)<br />Загрузка регистра AH флагами из регистра eFlags/Flags<br />Схема команды:&nbsp; &nbsp; &nbsp; lahf <br />Назначение: извлечение содержимого младшего байта регистра eflags/flags, в котором содержатся пять флагов: cf, pf, af, zf и sf. <br />Алгоритм работы:<br />команда загружает регистр ah содержимым младшего байта регистра eflags/flags.<br />Применение:<br />Из-за того, что регистр флагов непосредственно недоступен, команду lahf можно применять для анализа и последующего изменения командой sahf состояния некоторых флагов регистра eflags/flags.</p></blockquote></div><div class="quotebox"><blockquote><p>eflags/flags (flag register) — регистр флагов. Разрядность eflags/flags — 32/16 бит. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для i8086.</p><p>Исходя из особенностей использования, флаги регистра eflags/flags можно разделить на три группы:</p><p>1. 8 флагов состояния. Эти флаги могут изменяться после выполнения машинных команд.<br />Флаги состояния регистра eflags отражают особенности результата исполнения арифметических или логических операций. Это дает возможность анализировать состояние вычислительного процесса и реагировать на него с помощью команд условных переходов и вызовов подпрограмм. В табл. 1 приведены флаги состояния и указано их назначение;<br />2. 1 флаг управления. Обозначается df (Directory Flag).<br />Он находится в 10-м бите регистра eflags и используется цепочечными командами. Значение флага df определяет направление поэлементной обработки в этих операциях: от начала строки к концу (df = 0) либо наоборот, от конца строки к ее началу (df = 1).<br />Для работы с флагом df существуют специальные команды: cld (снять флаг df) и std (установить флаг df).<br />Применение этих команд позволяет привести флаг df в соответствие с алгоритмом и обеспечить автоматическое увеличение или уменьшение счетчиков при выполнении операций со строками;<br />3. 5 системных флагов, управляющих вводом/выводом, маскируемыми прерываниями, отладкой, переключением между задачами и виртуальным режимом 8086.<br />Прикладным программам не рекомендуется модифицировать без необходимости эти флаги, так как в большинстве случаев это приведет к прерыванию работы программы.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (mycetophylax)]]></author>
			<pubDate>Tue, 29 Jun 2010 04:26:08 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=66423#p66423</guid>
		</item>
		<item>
			<title><![CDATA[Что такое -msahf?]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=66401#p66401</link>
			<description><![CDATA[<p>Баловался с CFLAGS, нашел вот что: gcc-4.5 включает флаг -msahf, если указать -march=native на Intel Atom N270, который вообще-то 32-разрядный.&nbsp; Если -march=atom, то этот флаг не включается. Насколько я понял, немного погуглив на эту тему, этот флаг для 64-битных процессоров. Так зачем же gcc его включает?<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />bobr bin # gcc -march=native -Q --help=target|grep enabled<br />&nbsp; -m32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -m80387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -m96bit-long-double&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -malign-stringops&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfancy-math-387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfp-ret-in-387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfused-madd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mglibc&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mhard-float&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mieee-fp&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mmovbe&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mno-sse4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mpush-args&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mred-zone&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; <strong>-msahf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]</strong><br />&nbsp; -mstackrealign&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mtls-direct-seg-refs&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br /></div><br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />bobr bin # gcc -march=atom -Q --help=target|grep enabled<br />&nbsp; -m32&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -m80387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -m96bit-long-double&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -malign-stringops&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfancy-math-387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfp-ret-in-387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mfused-madd&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mglibc&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mhard-float&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mieee-fp&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mno-sse4&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mpush-args&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mred-zone&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mstackrealign&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br />&nbsp; -mtls-direct-seg-refs&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [enabled]<br /></div></p>]]></description>
			<author><![CDATA[null@example.com (bobr)]]></author>
			<pubDate>Tue, 29 Jun 2010 00:21:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=66401#p66401</guid>
		</item>
	</channel>
</rss>
