[all-commits] [llvm/llvm-project] e898ba: [X86] Slightly improve our attempted error recover...
topperc via All-commits
all-commits at lists.llvm.org
Tue Dec 31 00:29:05 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: e898ba2d151d621dcfc35828aad6fcded5a554e8
https://github.com/llvm/llvm-project/commit/e898ba2d151d621dcfc35828aad6fcded5a554e8
Author: Craig Topper <craig.topper at gmail.com>
Date: 2019-12-31 (Tue, 31 Dec 2019)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Slightly improve our attempted error recovery for 64-bit -mno-sse2 in LowerCallResult to use FP1 if there are two return values.
If the return value is a struct of 2 doubles we need two return
registers.
If SSE2 is disabled we can't return in XMM registers like the ABI says.
After logging an error we attempt to recover by using FP0 instead
of an XMM register. But if the return needs two registers, we may have
already used FP0. So if the register we were supposed to copy to is
XMM1, copy to FP1 in the recovery instead.
This seems to fix the assertion/crash in PR44413.
More information about the All-commits
mailing list