summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262261-llvm-r199186-sparc.diff
blob: 7293981c893111221053ec5568a4b1fc668fb7a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Pull in r199186 from upstream llvm trunk (by Jakob Stoklund Olesen):

  Switch the NEON register class from QPR to DPair.

  The already allocatable DPair superclass contains odd-even D register
  pair in addition to the even-odd pairs in the QPR register class. There
  is no reason to constrain the set of D register pairs that can be used
  for NEON values. Any NEON instructions that require a Q register will
  automatically constrain the register class to QPR.

  The allocation order for DPair begins with the QPR registers, so
  register allocation is unlikely to change much.

Introduced here: http://svnweb.freebsd.org/changeset/base/262261

Index: lib/Target/ARM/ARMISelLowering.cpp
===================================================================
--- lib/Target/ARM/ARMISelLowering.cpp
+++ lib/Target/ARM/ARMISelLowering.cpp
@@ -156,7 +156,7 @@ void ARMTargetLowering::addDRTypeForNEON(MVT VT) {
 }
 
 void ARMTargetLowering::addQRTypeForNEON(MVT VT) {
-  addRegisterClass(VT, &ARM::QPRRegClass);
+  addRegisterClass(VT, &ARM::DPairRegClass);
   addTypeForNEON(VT, MVT::v2f64, MVT::v4i32);
 }
 
OpenPOWER on IntegriCloud