@@ -454,22 +454,22 @@ void LLVMCodeBuilder::addListContents(List *list)
454454
455455void LLVMCodeBuilder::createAdd ()
456456{
457- createOp (Step::Type::Add, 2 );
457+ createOp (Step::Type::Add, Compiler::StaticType::Number, 2 );
458458}
459459
460460void LLVMCodeBuilder::createSub ()
461461{
462- createOp (Step::Type::Sub, 2 );
462+ createOp (Step::Type::Sub, Compiler::StaticType::Number, 2 );
463463}
464464
465465void LLVMCodeBuilder::createMul ()
466466{
467- createOp (Step::Type::Mul, 2 );
467+ createOp (Step::Type::Mul, Compiler::StaticType::Number, 2 );
468468}
469469
470470void LLVMCodeBuilder::createDiv ()
471471{
472- createOp (Step::Type::Div, 2 );
472+ createOp (Step::Type::Div, Compiler::StaticType::Number, 2 );
473473}
474474
475475void LLVMCodeBuilder::beginIfStatement ()
@@ -844,7 +844,7 @@ llvm::Value *LLVMCodeBuilder::removeNaN(llvm::Value *num)
844844 return m_builder.CreateSelect (isNaN, llvm::ConstantFP::get (m_ctx, llvm::APFloat (0.0 )), num);
845845}
846846
847- void LLVMCodeBuilder::createOp (Step::Type type, size_t argCount)
847+ void LLVMCodeBuilder::createOp (Step::Type type, Compiler::StaticType retType, size_t argCount)
848848{
849849 Step step (type);
850850
@@ -856,7 +856,7 @@ void LLVMCodeBuilder::createOp(Step::Type type, size_t argCount)
856856
857857 m_tmpRegs.erase (m_tmpRegs.end () - argCount, m_tmpRegs.end ());
858858
859- auto ret = std::make_shared<Register>(Compiler::StaticType::Number );
859+ auto ret = std::make_shared<Register>(retType );
860860 ret->isRawValue = true ;
861861 step.functionReturnReg = ret;
862862 m_regs[m_currentFunction].push_back (ret);
0 commit comments