From cf47198a49a4d493a64e9f3c9aecbbbe6112f005 Mon Sep 17 00:00:00 2001 From: Brian Gaeke Date: Tue, 9 Mar 2004 04:49:13 +0000 Subject: [PATCH] Hmm, who left this sitting around in my tree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12255 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Sparc/InstSelectSimple.cpp | 8 ++++---- lib/Target/Sparc/SparcV8ISelSimple.cpp | 8 ++++---- lib/Target/SparcV8/InstSelectSimple.cpp | 8 ++++---- lib/Target/SparcV8/SparcV8ISelSimple.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/Target/Sparc/InstSelectSimple.cpp b/lib/Target/Sparc/InstSelectSimple.cpp index ec331ee8fb9..90fdacbeeef 100644 --- a/lib/Target/Sparc/InstSelectSimple.cpp +++ b/lib/Target/Sparc/InstSelectSimple.cpp @@ -125,10 +125,10 @@ namespace { RegMap.erase(V); // Assign a new name to this constant if ref'd again } else if (GlobalValue *GV = dyn_cast(V)) { // Move the address of the global into the register - // X86 does: - // BuildMI(*MBB, IPt, V8::ORrr, 2, Reg).addReg(G0).addGlobalAddress(GV); - // We need to use SETHI and OR. - assert (0 && "Can't move address of global yet"); + unsigned TmpReg = makeAnotherReg(V->getType()); + BuildMI (*MBB, IPt, V8::SETHIi, 1, TmpReg).addGlobalAddress (GV); + BuildMI (*MBB, IPt, V8::ORri, 2, Reg).addReg (TmpReg) + .addGlobalAddress (GV); RegMap.erase(V); // Assign a new name to this address if ref'd again } diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index ec331ee8fb9..90fdacbeeef 100644 --- a/lib/Target/Sparc/SparcV8ISelSimple.cpp +++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp @@ -125,10 +125,10 @@ namespace { RegMap.erase(V); // Assign a new name to this constant if ref'd again } else if (GlobalValue *GV = dyn_cast(V)) { // Move the address of the global into the register - // X86 does: - // BuildMI(*MBB, IPt, V8::ORrr, 2, Reg).addReg(G0).addGlobalAddress(GV); - // We need to use SETHI and OR. - assert (0 && "Can't move address of global yet"); + unsigned TmpReg = makeAnotherReg(V->getType()); + BuildMI (*MBB, IPt, V8::SETHIi, 1, TmpReg).addGlobalAddress (GV); + BuildMI (*MBB, IPt, V8::ORri, 2, Reg).addReg (TmpReg) + .addGlobalAddress (GV); RegMap.erase(V); // Assign a new name to this address if ref'd again } diff --git a/lib/Target/SparcV8/InstSelectSimple.cpp b/lib/Target/SparcV8/InstSelectSimple.cpp index ec331ee8fb9..90fdacbeeef 100644 --- a/lib/Target/SparcV8/InstSelectSimple.cpp +++ b/lib/Target/SparcV8/InstSelectSimple.cpp @@ -125,10 +125,10 @@ namespace { RegMap.erase(V); // Assign a new name to this constant if ref'd again } else if (GlobalValue *GV = dyn_cast(V)) { // Move the address of the global into the register - // X86 does: - // BuildMI(*MBB, IPt, V8::ORrr, 2, Reg).addReg(G0).addGlobalAddress(GV); - // We need to use SETHI and OR. - assert (0 && "Can't move address of global yet"); + unsigned TmpReg = makeAnotherReg(V->getType()); + BuildMI (*MBB, IPt, V8::SETHIi, 1, TmpReg).addGlobalAddress (GV); + BuildMI (*MBB, IPt, V8::ORri, 2, Reg).addReg (TmpReg) + .addGlobalAddress (GV); RegMap.erase(V); // Assign a new name to this address if ref'd again } diff --git a/lib/Target/SparcV8/SparcV8ISelSimple.cpp b/lib/Target/SparcV8/SparcV8ISelSimple.cpp index ec331ee8fb9..90fdacbeeef 100644 --- a/lib/Target/SparcV8/SparcV8ISelSimple.cpp +++ b/lib/Target/SparcV8/SparcV8ISelSimple.cpp @@ -125,10 +125,10 @@ namespace { RegMap.erase(V); // Assign a new name to this constant if ref'd again } else if (GlobalValue *GV = dyn_cast(V)) { // Move the address of the global into the register - // X86 does: - // BuildMI(*MBB, IPt, V8::ORrr, 2, Reg).addReg(G0).addGlobalAddress(GV); - // We need to use SETHI and OR. - assert (0 && "Can't move address of global yet"); + unsigned TmpReg = makeAnotherReg(V->getType()); + BuildMI (*MBB, IPt, V8::SETHIi, 1, TmpReg).addGlobalAddress (GV); + BuildMI (*MBB, IPt, V8::ORri, 2, Reg).addReg (TmpReg) + .addGlobalAddress (GV); RegMap.erase(V); // Assign a new name to this address if ref'd again }