KRIGSSVIN
930 постов
Карма: 53
#11 13 марта 2007 в 15:10
Гы!!! А с SSE ваще тарабарщина!  :D
UAC
833 постов
Карма: 27
#12 13 марта 2007 в 17:19
willow <br />
Да пожалуйста! Вот тебе код из дума 3,...
<br />пиздец&nbsp; :o э-э, то-есть - спасибо! <br /> ;D
KRIGSSVIN
930 постов
Карма: 53
#13 14 марта 2007 в 15:54
Могу дать более чем понятное руководство по FPU (floating point unit, математический сопроцессор) для MS-DOS... Хотя разницы нет.
UAC
833 постов
Карма: 27
#14 14 марта 2007 в 16:02
[quote author=KRIGSSVIN link=topic=119.msg2315#msg2315 date=1173887693]<br />Могу дать более чем понятное руководство по FPU (floating point unit, математический сопроцессор) для MS-DOS... Хотя разницы нет.<br />[/quote]<br />Выложи, я поковыряю. По-любому на пользу. <br /><br />[P.S.] <br />Вот такую нелестную информацию я нашел: <br />
&gt;&gt;&gt;... wrote: <br /><br /> VN&gt;&gt; У MSVC паршивый asm (почему паршивый - потому что нельзя<br /> VN&gt;&gt; документировать побочные эффекты; правильные реализации из известных<br /> VN&gt;&gt; компиляторов только gcc и watcom)<br />EM&gt; Чем они там более правильны?<br /><br />Тем, что в MSC ассемблер - инородное тело с неясной внутренней<br />структурой. В частности,<br /><br />=== cut ===<br />When using __asm to write assembly language in C/C++ functions, you<br />don&#39;t need to preserve the EAX, EBX, ECX, EDX, ESI, or EDI<br />registers. &lt;...&gt; However, using these registers will affect code<br />quality because the register allocator cannot use them to store<br />values across __asm blocks. In addition, by using EBX, ESI or EDI in<br />inline assembly code, you force the compiler to save and restore<br />those registers in the function prologue and epilogue.<br />=== end cut ===<br /><br />И еще,<br />=== cut ===<br />The presence of an __asm block in a function affects optimization in<br />several ways. First, the compiler doesn.t try to optimize the __asm<br />block itself. What you write in assembly language is exactly what<br />you get. Second, the presence of an __asm block affects register<br />variable storage. The compiler avoids enregistering variables across<br />an __asm block if the register.s contents would be changed by the<br />__asm block. Finally, some other function-wide optimizations will be<br />affected by the inclusion of assembly language in a function.<br />=== end cut ===<br /><br />В нем нельзя ни уточнить пределы вреда (например, умножение цепляет<br />EAX - а EDX ведь тоже трогается...), ни дать возможность выбрать<br />реальное размещение из нескольких по настроению компилятора, ни дать<br />включить код в общую оптимизацию (хотя надо заметить, что MSC этим<br />и не занимается).<br />И даже чтение/запись сишных данных у него через одно место (самому<br />масштабировать... бр-р-р).<br /><br />Хотя должен заметить, что с новыми процессорами (этак начиная с P2)<br />большинство этих неудобств стали чисто академическими.;))