The EBC architecture is required to be strongly ordered, and the EBC virtual machine interpreter ensures that all memory transactions are strongly ordered. The EDK II includes a complete implementation of the EBC virtual machine interpreter in the
MdeModulePkg in the directory
EBC drivers are not required to use the EDK II library
MemoryFence() when strong ordering is required. However, UEFI Drivers compiled for other CPU architectures may require the use of the
MemoryFence() function to enforce strong ordering. The EDK II library
BaseLib implementation of
MemoryFence() for EBC is an empty function. This means there is no performance penalty for
MemoryFence() calls in UEFI Drivers compiled for EBC.