Fix the recently added anyregcc convention to handle spilled operands.
authorAndrew Trick <atrick@apple.com>
Mon, 11 Nov 2013 22:40:25 +0000 (22:40 +0000)
committerAndrew Trick <atrick@apple.com>
Mon, 11 Nov 2013 22:40:25 +0000 (22:40 +0000)
commit01846af6ed371ebe2dba80cc8cd286b2631d4051
treeb7d1c3df24d0aa9bcb6c4f233ab01fa79b80e904
parent5a34980b4e0a60d39ad3acb9dd467b74ce2d830d
Fix the recently added anyregcc convention to handle spilled operands.

Fixes <rdar://15432754> [JS] Assertion: "Folded a def to a non-store!"

The primary purpose of anyregcc is to prevent a patchpoint's call
arguments and return value from being spilled. They must be available
in a register, although the calling convention does not pin the
register. It's up to the front end to avoid using this convention for
calls with more arguments than allocatable registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194428 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/anyregcc.ll