From 8b680e4af113fbd913d57777a12dd1dd34d0f6f7 Mon Sep 17 00:00:00 2001 From: Shenglei Zhang Date: Sat, 9 May 2020 14:33:36 +0800 Subject: MdeModulePkg/RegularExpressionDxe: Optimize the code infrastructure OnigurumaIntrinsics.c is now not used. So the implement of function 'memcpy' is now not., which causes build failure with CLANG9 and XCODE. I remove OnigurumaIntrinsics.c and move the necessary function implement to OnigurumaUefiPort.c/h. Cc: Jian J Wang Cc: Hao A Wu Signed-off-by: Shenglei Zhang Reviewed-by: Jian J Wang --- .../RegularExpressionDxe/OnigurumaIntrinsics.c | 48 ---------------------- .../RegularExpressionDxe/OnigurumaUefiPort.c | 10 +++++ .../RegularExpressionDxe/OnigurumaUefiPort.h | 2 + .../RegularExpressionDxe/RegularExpressionDxe.inf | 1 - 4 files changed, 12 insertions(+), 49 deletions(-) delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c (limited to 'MdeModulePkg') diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c deleted file mode 100644 index 536c7e0..0000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c +++ /dev/null @@ -1,48 +0,0 @@ -/** @file - - Provide intrinsics within Oniguruma - - (C) Copyright 2015 Hewlett Packard Enterprise Development LP
- Copyright (c) 2020, Intel Corporation. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent -**/ - -#include - -// -// From CryptoPkg/IntrinsicLib -// - -/* Copies bytes between buffers */ -#pragma function(memcpy) -void * memcpy (void *dest, const void *src, unsigned int count) -{ - return CopyMem (dest, src, (UINTN)count); -} - -/* Sets buffers to a specified character */ -#pragma function(memset) -void * memset (void *dest, char ch, unsigned int count) -{ - // - // NOTE: Here we use one base implementation for memset, instead of the direct - // optimized SetMem() wrapper. Because the IntrinsicLib has to be built - // without whole program optimization option, and there will be some - // potential register usage errors when calling other optimized codes. - // - - // - // Declare the local variables that actually move the data elements as - // volatile to prevent the optimizer from replacing this function with - // the intrinsic memset() - // - volatile UINT8 *Pointer; - - Pointer = (UINT8 *)dest; - while (count-- != 0) { - *(Pointer++) = ch; - } - - return dest; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c index b1604b3..2b2b0d4 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c @@ -86,3 +86,13 @@ void * realloc (void *ptr, size_t size) return NULL; } +void* memcpy (void *dest, const void *src, unsigned int count) +{ + return CopyMem (dest, src, (UINTN)count); +} + +void* memset (void *dest, char ch, unsigned int count) +{ + return SetMem (dest, ch, count); +} + diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h index 1a0b2da..20b75c3 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h @@ -96,6 +96,8 @@ int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...); int strlen(const char* str); void* malloc(size_t size); void* realloc(void *ptr, size_t size); +void* memcpy (void *dest, const void *src, unsigned int count); +void* memset (void *dest, char ch, unsigned int count); #define exit(n) ASSERT(FALSE); diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf index da63aa6..84489c2 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf +++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf @@ -20,7 +20,6 @@ RegularExpressionDxe.h OnigurumaUefiPort.h OnigurumaUefiPort.c - OnigurumaIntrinsics.c | MSFT # Wrapper header files start # stdio.h -- cgit v1.1