summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2014-11-24 18:43:37 +0000
committerdim <dim@FreeBSD.org>2014-11-24 18:43:37 +0000
commit82ca21468e7fe6a5112961ba86434579bed3f204 (patch)
treec2772f1f62ff857fee7802d46eb79f45d45d6d54 /contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff
parent6148c19c738a92f344008aa3f88f4e008bada0ee (diff)
downloadFreeBSD-src-82ca21468e7fe6a5112961ba86434579bed3f204.zip
FreeBSD-src-82ca21468e7fe6a5112961ba86434579bed3f204.tar.gz
Cleanup patch set, and update README.TXT. Add three new patches.
Diffstat (limited to 'contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff88
1 files changed, 0 insertions, 88 deletions
diff --git a/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff b/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff
deleted file mode 100644
index 0457976..0000000
--- a/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff
+++ /dev/null
@@ -1,88 +0,0 @@
-Pull r200368 from upstream llvm trunk (by Venkatraman Govindaraju):
-
- [SparcV9] Use correct register class (I64RegClass) to hold the address of _GLOBAL_OFFSET_TABLE_ in sparcv9.
-
-Introduced here: http://svnweb.freebsd.org/changeset/base/262261
-
-Index: lib/Target/Sparc/SparcInstrInfo.cpp
-===================================================================
---- lib/Target/Sparc/SparcInstrInfo.cpp
-+++ lib/Target/Sparc/SparcInstrInfo.cpp
-@@ -431,9 +431,10 @@ unsigned SparcInstrInfo::getGlobalBaseReg(MachineF
- MachineBasicBlock::iterator MBBI = FirstMBB.begin();
- MachineRegisterInfo &RegInfo = MF->getRegInfo();
-
-- GlobalBaseReg = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-+ const TargetRegisterClass *PtrRC =
-+ Subtarget.is64Bit() ? &SP::I64RegsRegClass : &SP::IntRegsRegClass;
-+ GlobalBaseReg = RegInfo.createVirtualRegister(PtrRC);
-
--
- DebugLoc dl;
-
- BuildMI(FirstMBB, MBBI, dl, get(SP::GETPCX), GlobalBaseReg);
-Index: lib/Target/Sparc/SparcInstrInfo.td
-===================================================================
---- lib/Target/Sparc/SparcInstrInfo.td
-+++ lib/Target/Sparc/SparcInstrInfo.td
-@@ -180,7 +180,7 @@ def tlscall : SDNode<"SPISD::TLS_CALL", SDT_
- [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue,
- SDNPVariadic]>;
-
--def getPCX : Operand<i32> {
-+def getPCX : Operand<iPTR> {
- let PrintMethod = "printGetPCX";
- }
-
-Index: test/CodeGen/SPARC/2009-08-28-PIC.ll
-===================================================================
---- test/CodeGen/SPARC/2009-08-28-PIC.ll
-+++ test/CodeGen/SPARC/2009-08-28-PIC.ll
-@@ -1,9 +1,45 @@
--; RUN: llc -march=sparc --relocation-model=pic < %s | grep _GLOBAL_OFFSET_TABLE_
-+; RUN: llc -march=sparc --relocation-model=pic < %s | FileCheck %s --check-prefix=V8
-+; RUN: llc -march=sparcv9 --relocation-model=pic < %s | FileCheck %s --check-prefix=V9
-+; RUN: llc -march=sparc --relocation-model=pic < %s -O0 | FileCheck %s --check-prefix=V8UNOPT
-+; RUN: llc -march=sparcv9 --relocation-model=pic < %s -O0 | FileCheck %s --check-prefix=V9UNOPT
-
-+
-+; V8-LABEL: func
-+; V8: _GLOBAL_OFFSET_TABLE_
-+
-+; V9-LABEL: func
-+; V9: _GLOBAL_OFFSET_TABLE_
-+
- @foo = global i32 0 ; <i32*> [#uses=1]
-
--define i32 @func() nounwind readonly {
-+define i32 @func(i32 %a) nounwind readonly {
- entry:
- %0 = load i32* @foo, align 4 ; <i32> [#uses=1]
- ret i32 %0
- }
-+
-+; V8UNOPT-LABEL: test_spill
-+; V8UNOPT: sethi %hi(_GLOBAL_OFFSET_TABLE_+{{.+}}), [[R:%[goli][0-7]]]
-+; V8UNOPT: or [[R]], %lo(_GLOBAL_OFFSET_TABLE_+{{.+}}), [[R]]
-+; V8UNOPT: add [[R]], %o7, [[R]]
-+; V8UNOPT: st [[R]], [%fp+{{.+}}]
-+
-+; V9UNOPT-LABEL: test_spill
-+; V9UNOPT: sethi %hi(_GLOBAL_OFFSET_TABLE_+{{.+}}), [[R:%[goli][0-7]]]
-+; V9UNOPT: or [[R]], %lo(_GLOBAL_OFFSET_TABLE_+{{.+}}), [[R]]
-+; V9UNOPT: add [[R]], %o7, [[R]]
-+; V9UNOPT: stx [[R]], [%fp+{{.+}}]
-+
-+define i32 @test_spill(i32 %a, i32 %b) {
-+entry:
-+ %cmp = icmp eq i32 %b, 0
-+ br i1 %cmp, label %if.then, label %if.end
-+
-+if.then:
-+ %ret = load i32* @foo, align 4
-+ ret i32 %ret
-+
-+if.end:
-+ %add = add nsw i32 %b, %a
-+ ret i32 %add
-+}
OpenPOWER on IntegriCloud