[PATCH] D59744: Fix i386 ABI "__m64" type bug

Hans Wennborg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 18 01:50:07 PDT 2019


hans added a comment.

In D59744#1547445 <https://reviews.llvm.org/D59744#1547445>, @wxiao3 wrote:

> @hans
>
> Please make sure all Chromium for 32-bit Linux libraries are following System V ABI (i.e., m64 is passed on mmx register). I suspect that there are some hand written assembly code in your libraries which is not following the ABI.


We still don't have the root cause, but the library in question (Skia) doesn't have much assembly code. After your patch, %st0 (which aliases with %mm0) gets clobbered if a function returns a 4 x u16 vector. Skia tries to work around this by force-inlining such functions, but we're still seeing functions where %mm0 gets used. We believe this is the cause, but I'm still trying to figure out where the remaining %mm0 uses come from.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59744/new/

https://reviews.llvm.org/D59744





More information about the llvm-commits mailing list