Autor Beitrag
Spaceguide Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Di 23.05.06 16:19 
Nein, das Flag wird irgendwann mal resettet, nicht nach jedem Befehl. Das Laden des Registers ist halt relativ kostspielig.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 23.05.06 20:10 
Dann kannst Du nur testen, welcher Befehl genau das Resetten des Flags verursacht ... Am besten Du schreibst mal kurz ne Liste, welche Befehle Du nutzt (und die, die Du ausschließen kannst).

Wenn es zwischendurch resettet wird (nicht durch deinen Source), kann es nur (wie angedeutet) durch den FEMMS geschehen sein In diesem Fall musst Du vor Nutzung einmal das Flag neu setzen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Spaceguide Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Mi 24.05.06 11:15 
Also zumindest scheint ein LoadLibrary auch das FPU-Controlword zurückzusetzen.
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Mi 24.05.06 16:46 
.Bit10 | Bit11 |
.------------------
. 0 | 0 | Runden nächste gerade Zahl
. 1 | 0 | Runden gegen -unendlich
. 0 | 1 | Runden gegen +unendlich
. 1 | 1 | Nachkommastellen weg

Wozu benutzt du denn SSE wenn du dann doch nur den skalaren Befehl verwendest?

Egal was ich sagen wollte. Da man ja auch trunc(x+0,5) machen kann benutze doch:

CVTTS(S/P)2SI (convert with truncation scalar single-precision floating point value to doubleword integer)

Da hier die "Rundungsvorschrift im Befehl begründet ist sollte ein resetten des Controlwords keinen Einfluss nehmen.
Spaceguide Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Mi 24.05.06 18:20 
Ich verwende sowohl die Skalar- als auch die Parallel-Befehle, CVTTS(S/P)2SI kannte ich aber nicht, thx.
Gekko
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 49

Win XP, Vista
Visual C# Express, Python Ruby
BeitragVerfasst: Fr 02.06.06 12:30 
Bei 0,5 richtig runden ist so eine Sache.
Es kommt nämlich auch darauf an, ob kaufmännisch oder technisch gerundet wird.

_________________
++[>++++>>+++++<<<-]>[>+++++++++<-]>-.>[>+++++<-]>[>++<-]>+.++++++..++++.