- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Are there any other documents that talk about this sort of thing in great detail?
Thanks.
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
We will forward your question to our engineering contacts and let you know how they respond.
Regards,
Lexi S.
IntelSoftware NetworkSupport
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
CLI sets the IF bit in the EFLAGS register to 0. There is no memory operation, so it is not a memory barrier of any sort. Is there any chance you meant to ask about the CLFLUSH instruction instead (which is ordered only by MFENCE)? CLI is definitely a slower instruction.
Regards,
Lexi S.
IntelSoftware NetworkSupport
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
cli
cmp $0, some_variable
je end
movl $0xFF, some_other_variable
end:
sti
Does the processor speculatively execute the instructions between the cli and the sti, or does it wait until the cli is retired (architecturally visible) before executing those instructions, especially the load and store? And is it even necessary (for correctness) that the cli instruction be retired before performing the load and store?
In summary: is CLI a "slow" instruction, in that it causes basically a pipeline flush before executing any subsequent instructions? If it is not, how does the processor ensure correctness, especially for memory operations?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Jim A.
IntelSoftware NetworkSupport
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hello,
CLI is not necessarily a serializing instruction.If aninstruction *after* CLI needs the value of EFLAGS.IF (there are only a few of these) then while the CLI is still in flight,the above instructionwill stall until theCLI has retired.
The code below does not look likeit will run into this problem (sterilization).
cmp $0, some_variable
je end
movl $0xFF, some_other_variable
end:
sti
Message Edited by intel.software.network.support on 01-31-2006 11:26 AM
