18 IN CONST VOID *DestinationBuffer,
19 IN CONST VOID *SourceBuffer,
31 volatile CONST UINT8 *
volatile Destination;
32 volatile CONST UINT8 *
volatile Source;
33 volatile UINT8 XorDiff;
36 ASSERT (DestinationBuffer != NULL);
37 ASSERT (SourceBuffer != NULL);
38 ASSERT ((
Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
39 ASSERT ((
Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
42 Destination = (
volatile CONST UINT8 *)DestinationBuffer;
43 Source = (
volatile CONST UINT8 *)SourceBuffer;
46 for (Index = 0; Index <
Length; ++Index) {
55 XorDiff |= (UINT8)((Destination[Index] ^ (Source[Index])) & 0xFFU);
69 return ((INTN)(1U & ((XorDiff - 1U) >> 8U))) - 1;