// Interface for updating the instruction cache. Whenever the VM modifies // code, part of the processor instruction cache potentially has to be flushed.
// On the x86, this is a no-op -- the I-cache is guaranteed to be consistent // after the next jump, and the VM never modifies instructions directly ahead // of the instruction fetch path.
// [phh] It's not clear that the above comment is correct, because on an MP // system where the dcaches are not snooped, only the thread doing the invalidate // will see the update. Even in the snooped case, a memory fence would be // necessary if stores weren't ordered. Fortunately, they are on all known // x86 implementations.
class ICache : public AbstractICache { public: #ifdef AMD64 enum {
stub_size = 64, // Size of the icache flush stub in bytes
line_size = 64, // Icache line size in bytes
log2_line_size = 6// log2(line_size)
};
// Use default implementation #else enum {
stub_size = 16, // Size of the icache flush stub in bytes
line_size = BytesPerWord, // conservative
log2_line_size = LogBytesPerWord // log2(line_size)
}; #endif// AMD64
};
#endif// CPU_X86_ICACHE_X86_HPP
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-09-07)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.