It seems like the "-mno-mmx -msoft-float -mno-implicit-float" part of the flags should be enough to handle that now.
Is it ok to take -mno-sse out (in my local branch) for new versions of clang without having to worry about silent failures?
Since EFIAPI uses the windows ABI, it should be ok to use XMM registers for integer operations.

On Thu, Apr 4, 2019 at 1:00 PM Andrew Fish <afish@apple.com> wrote:
Gary,

The edk2 is freestanding UEFI firmware and the runtime does not support floating point exceptions. 

I think a long time ago there was an optimization bug and the -mno-sse fixed it. 

The UEFI x64 ABI is Windows like and not Sys V like. 

Thanks,

Andrew Fish

On Apr 4, 2019, at 10:13 AM, Gary Zibrat via Groups.Io <gzibrat=google.com@groups.io> wrote:

Does anyone know why -mno-sse is specified on Clang x64?
There doesn't seem to be a corresponding flag for other compilers.

I ask because a commit in LLVM breaks compilation of EDK2:
https://reviews.llvm.org/rL357317#change-QSW9B7DqCGUI