rendered paste bodyFrom e18194c0e09df04aaa97e6f662ef7e7ff71d8b5e Mon Sep 17 00:00:00 2001From: nobled <nobled@dreamwidth.org>Date: Sun, 31 Oct 2010 20:19:37 +0000Subject: [PATCH] Use LLVM's floating-point operatorsOnly the FMul, FAdd, FSub, and FNeg instructions are supposed to beused with floating-point operands.--- scripting/abc_codesynt.cpp | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)diff --git a/scripting/abc_codesynt.cpp b/scripting/abc_codesynt.cppindex 5dc6468..f1eb6b0 100644--- a/scripting/abc_codesynt.cpp+++ b/scripting/abc_codesynt.cpp@@ -3318,20 +3318,20 @@ SyntheticFunction::synt_function method_info::synt_method() { //TODO: 32bit check v1.first=Builder.CreateSIToFP(v1.first,number_type);- value=Builder.CreateAdd(v1.first, v2.first);+ value=Builder.CreateFAdd(v1.first, v2.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_NUMBER && v2.second==STACK_INT) { //TODO: 32bit check v2.first=Builder.CreateSIToFP(v2.first,number_type);- value=Builder.CreateAdd(v1.first, v2.first);+ value=Builder.CreateFAdd(v1.first, v2.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_NUMBER && v2.second==STACK_NUMBER) { //TODO: 32bit check- value=Builder.CreateAdd(v1.first, v2.first);+ value=Builder.CreateFAdd(v1.first, v2.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else@@ -3352,19 +3352,19 @@ SyntheticFunction::synt_function method_info::synt_method() } else if(v1.second==STACK_NUMBER && v2.second==STACK_NUMBER) {- value=Builder.CreateSub(v2.first, v1.first);+ value=Builder.CreateFSub(v2.first, v1.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_INT && v2.second==STACK_NUMBER) { v1.first=Builder.CreateSIToFP(v1.first,number_type);- value=Builder.CreateSub(v2.first, v1.first);+ value=Builder.CreateFSub(v2.first, v1.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_NUMBER && v2.second==STACK_INT) { v2.first=Builder.CreateSIToFP(v2.first,number_type);- value=Builder.CreateSub(v2.first, v1.first);+ value=Builder.CreateFSub(v2.first, v1.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_OBJECT && v2.second==STACK_INT)@@ -3416,13 +3416,13 @@ SyntheticFunction::synt_function method_info::synt_method() else if(v1.second==STACK_NUMBER && v2.second==STACK_INT) { v2.first=Builder.CreateSIToFP(v2.first,number_type);- value=Builder.CreateMul(v1.first, v2.first);+ value=Builder.CreateFMul(v1.first, v2.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else if(v1.second==STACK_INT && v2.second==STACK_NUMBER) { v1.first=Builder.CreateSIToFP(v1.first,number_type);- value=Builder.CreateMul(v1.first, v2.first);+ value=Builder.CreateFMul(v1.first, v2.first); static_stack_push(static_stack,stack_entry(value,STACK_NUMBER)); } else-- 1.7.0.4