Tim,

I think it is mostly struct operations that fail. So struct foo a, b. a = b or 
a = 0

We decided at the beginning of edk2 to not support intrinsics to make it easier 
to port to new compilers. EDK only supported a single compiler.

ARM came later. For math the code base target was IA32, so the math functions 
in the BaseLib replace the need for compiler intrinsics. ARM has a much lower 
bar for what operations require intrinsics and thus we decided to add the 
intrinsics. So I tracked down intrinsics with the correct license.

IMHO it is more work to clean up for gcc/clang warnings than to find the 
structure assignments.

Sent from my iPhone

On Apr 1, 2013, at 10:23 AM, Tim Lewis <[email protected]> wrote:

> Mike –
>  
> Can we just move CompilerStubs back into the build? We already have 
> CompilerInstrinsics for ARM. What is preventing us from adding this and 
> making it easier for everybody.
>  
> In particular, we are moving modules from EDK-style to EDK2 style. They 
> break. Telling an engineer that they need to turn on assembly output to 
> figure out where it went wrong (when it was working in EDK) doesn’t seem like 
> a good solution.
>  
> Tim
>  
> From: Kinney, Michael D [mailto:[email protected]] 
> Sent: Monday, April 01, 2013 10:19 AM
> To: [email protected]
> Subject: Re: [edk2] x86 compiler intrinsics
>  
> Tim,
>  
> When the compiler optimizations are turned up, the compiler may introduce 
> these calls, even then /Oi- is used.  The resolution is to find the C code 
> statement(s) that are inducing this behavior and replace them with calls to 
> the BaseMemoryLib functions such as CopyMem(), SetMem(), and ZeroMem().
>  
> When the link time errors are observed for memcpy() and memset(), we usually 
> turn on mixed C/ASM output from the compiler and search for calls to the 
> intrinsic functions to identify the C code that needs to be updated.
>  
> Thanks,
>  
> Mike
>  
> From: Tim Lewis [mailto:[email protected]] 
> Sent: Monday, April 01, 2013 10:09 AM
> To: [email protected]
> Subject: [edk2] x86 compiler intrinsics
>  
> Someone please refresh my memory: the MSVC toolchain generates intrinsic 
> calls to memcpy and memset. I don’t see /Oi- to disable them. I don’t see 
> CompilerStub being linked into native EDK2 modules. How are these being 
> resolved?
>  
> Tim
> ------------------------------------------------------------------------------
> Own the Future-Intel&reg; Level Up Game Demo Contest 2013
> Rise to greatness in Intel's independent game demo contest.
> Compete for recognition, cash, and the chance to get your game 
> on Steam. $5K grand prize plus 10 genre and skill prizes. 
> Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Own the Future-Intel&reg; Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest.
Compete for recognition, cash, and the chance to get your game 
on Steam. $5K grand prize plus 10 genre and skill prizes. 
Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to