<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Что такое -msahf?]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=4688&amp;type=atom" />
	<updated>2010-06-29T15:04:19Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=4688</id>
		<entry>
			<title type="html"><![CDATA[Re: Что такое -msahf?]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=66542#p66542" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bobr]]></name>
				<uri>https://linuxforum.ru/profile.php?id=797</uri>
			</author>
			<updated>2010-06-29T15:04:19Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=66542#p66542</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Что такое -msahf?]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=66423#p66423" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[mycetophylax]]></name>
				<uri>https://linuxforum.ru/profile.php?id=6380</uri>
			</author>
			<updated>2010-06-29T04:26:08Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=66423#p66423</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Что такое -msahf?]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=66401#p66401" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bobr]]></name>
				<uri>https://linuxforum.ru/profile.php?id=797</uri>
			</author>
			<updated>2010-06-29T00:21:43Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=66401#p66401</id>
		</entry>
</feed>
