From 82d25148a7aab0b7e048ab9b774207b3766d1bbf Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Fri, 7 Sep 2007 22:01:02 +0000 Subject: [PATCH] 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 --- lib/Target/PowerPC/PPCRegisterInfo.cpp | 8 +++++++- .../PowerPC/2007-09-07-LoadStoreIdxForms.ll | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index ee320f811b0..cd504139ae5 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 00000000000..c5e7a4d38a0 --- /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 ; [#uses=1] + %regs = alloca [1024 x %struct.__db_region], align 16 ; <[1024 x %struct.__db_region]*> [#uses=0] + %tmp = load i32* %ttype, align 4 ; [#uses=1] + %tmp1 = call i32 (...)* @bork( i32 %tmp ) ; [#uses=0] + ret void +} + +declare i32 @bork(...) -- 2.34.1