Index: llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.cpp =================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.cpp +++ llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -1864,7 +1864,7 @@ "Only Linux target is expected to contain LOAD_STACK_GUARD"); const int64_t Offset = Subtarget.isPPC64() ? -0x7010 : -0x7008; const unsigned Reg = Subtarget.isPPC64() ? PPC::X13 : PPC::R2; - MI->setDesc(get(PPC::LD)); + MI->setDesc(get(Subtarget.isPPC64() ? PPC::LD : PPC::LWZ)); MachineInstrBuilder(*MI->getParent()->getParent(), MI) .addImm(Offset) .addReg(Reg); Index: llvm/trunk/test/CodeGen/PowerPC/stack-protector.ll =================================================================== --- llvm/trunk/test/CodeGen/PowerPC/stack-protector.ll +++ llvm/trunk/test/CodeGen/PowerPC/stack-protector.ll @@ -5,7 +5,7 @@ ; DARWIN32: __stack_chk_guard ; DARWIN64: __stack_chk_guard -; LINUX32: ld {{[0-9]+}}, -28680(2) +; LINUX32: lwz {{[0-9]+}}, -28680(2) ; LINUX64: ld {{[0-9]+}}, -28688(13) ; DARWIN32: __stack_chk_fail