diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-09-07 22:01:02 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-09-07 22:01:02 +0000 |
commit | 82d25148a7aab0b7e048ab9b774207b3766d1bbf (patch) | |
tree | 43c868f0b161d56a9d16be3c809f695c4ec1f2a7 | |
parent | 1ab79897e2176424b33d572c07cdc360bb54659a (diff) |
Add missing index versions of instructions to the map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41776 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.cpp | 8 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll | 16 |
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index ee320f811b..cd504139ae 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -94,7 +94,13 @@ PPCRegisterInfo::PPCRegisterInfo(const PPCSubtarget &ST, ImmToIdxMap[PPC::STH] = PPC::STHX; ImmToIdxMap[PPC::STW] = PPC::STWX; ImmToIdxMap[PPC::STFS] = PPC::STFSX; ImmToIdxMap[PPC::STFD] = PPC::STFDX; ImmToIdxMap[PPC::ADDI] = PPC::ADD4; - ImmToIdxMap[PPC::ADDI8] = PPC::ADD8; + + // 64-bit + ImmToIdxMap[PPC::LHA8] = PPC::LHAX8; ImmToIdxMap[PPC::LBZ8] = PPC::LBZX8; + ImmToIdxMap[PPC::LHZ8] = PPC::LHZX8; ImmToIdxMap[PPC::LWZ8] = PPC::LWZX8; + ImmToIdxMap[PPC::STB8] = PPC::STBX8; ImmToIdxMap[PPC::STH8] = PPC::STHX8; + ImmToIdxMap[PPC::STW8] = PPC::STWX8; ImmToIdxMap[PPC::STDU] = PPC::STDUX; + ImmToIdxMap[PPC::ADDI8] = PPC::ADD8; ImmToIdxMap[PPC::STD_32] = PPC::STDX_32; } void diff --git a/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll b/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll new file mode 100644 index 0000000000..c5e7a4d38a --- /dev/null +++ b/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll @@ -0,0 +1,16 @@ +; RUN: llvm-as < %s | llc -march=ppc64 | grep lwzx + + %struct.__db_region = type { %struct.__mutex_t, [4 x i8], %struct.anon, i32, [1 x i32] } + %struct.__mutex_t = type { i32 } + %struct.anon = type { i64, i64 } + +define void @foo() { +entry: + %ttype = alloca i32, align 4 ; <i32*> [#uses=1] + %regs = alloca [1024 x %struct.__db_region], align 16 ; <[1024 x %struct.__db_region]*> [#uses=0] + %tmp = load i32* %ttype, align 4 ; <i32> [#uses=1] + %tmp1 = call i32 (...)* @bork( i32 %tmp ) ; <i32> [#uses=0] + ret void +} + +declare i32 @bork(...) |