[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