diff --git a/rpcs3/Emu/CPU/CPUTranslator.h b/rpcs3/Emu/CPU/CPUTranslator.h index bb5b262294..e2b768c74e 100644 --- a/rpcs3/Emu/CPU/CPUTranslator.h +++ b/rpcs3/Emu/CPU/CPUTranslator.h @@ -1149,7 +1149,7 @@ struct llvm_fshl static llvm::Function* get_fshl(llvm::IRBuilder<>* ir) { const auto _module = ir->GetInsertBlock()->getParent()->getParent(); - return llvm::Intrinsic::getDeclaration(_module, llvm::Intrinsic::fshl, {llvm_value_t::get_type(ir->getContext())}); + return llvm::Intrinsic::getOrInsertDeclaration(_module, llvm::Intrinsic::fshl, {llvm_value_t::get_type(ir->getContext())}); } static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3) @@ -1221,7 +1221,7 @@ struct llvm_fshr static llvm::Function* get_fshr(llvm::IRBuilder<>* ir) { const auto _module = ir->GetInsertBlock()->getParent()->getParent(); - return llvm::Intrinsic::getDeclaration(_module, llvm::Intrinsic::fshr, {llvm_value_t::get_type(ir->getContext())}); + return llvm::Intrinsic::getOrInsertDeclaration(_module, llvm::Intrinsic::fshr, {llvm_value_t::get_type(ir->getContext())}); } static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3) @@ -2220,7 +2220,7 @@ struct llvm_add_sat static llvm::Function* get_add_sat(llvm::IRBuilder<>* ir) { const auto _module = ir->GetInsertBlock()->getParent()->getParent(); - return llvm::Intrinsic::getDeclaration(_module, intr, {llvm_value_t::get_type(ir->getContext())}); + return llvm::Intrinsic::getOrInsertDeclaration(_module, intr, {llvm_value_t::get_type(ir->getContext())}); } llvm::Value* eval(llvm::IRBuilder<>* ir) const @@ -2303,7 +2303,7 @@ struct llvm_sub_sat static llvm::Function* get_sub_sat(llvm::IRBuilder<>* ir) { const auto _module = ir->GetInsertBlock()->getParent()->getParent(); - return llvm::Intrinsic::getDeclaration(_module, intr, {llvm_value_t::get_type(ir->getContext())}); + return llvm::Intrinsic::getOrInsertDeclaration(_module, intr, {llvm_value_t::get_type(ir->getContext())}); } llvm::Value* eval(llvm::IRBuilder<>* ir) const @@ -3592,7 +3592,7 @@ public: llvm::Function* get_intrinsic(llvm::Intrinsic::ID id) { const auto _module = m_ir->GetInsertBlock()->getParent()->getParent(); - return llvm::Intrinsic::getDeclaration(_module, id, {get_type()...}); + return llvm::Intrinsic::getOrInsertDeclaration(_module, id, {get_type()...}); } template