aboutsummaryrefslogtreecommitdiffstats
path: root/qmljs_math.h
Commit message (Collapse)AuthorAgeFilesLines
* Use two operand version of imulSimon Hausmann2012-12-041-3/+3
| | | | | | | | This is a slightly nicer variant to use and is easier on the register usage Change-Id: I6c9299f99251594b5a1adaed1e7dae9a5419c370 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix clobber list for inline add/sub/mul instructionsSimon Hausmann2012-12-021-3/+3
| | | | | | | | These inline asm blocks do also change flags, therefore we need to add the condition code register to the list of clobbered pseudo registers. Change-Id: Iea7b2557813bbb2fa86d7506e6416092fdc14702 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix isel for eval and a whole bunch of other warnings.Erik Verbruggen2012-11-191-2/+2
| | | | | | | A factory is now passed along to do the codegen for eval(). Change-Id: If15b1f28c9c0a8f8b6d18b56d6e7bc5d942927e5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Properly namespace the math headerLars Knoll2012-11-191-0/+6
| | | | | Change-Id: I0f4ac76376028081b13b1cdeaadc4c9b09c1556d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Changed the LLVM backend to also support the LLVM JIT.Erik Verbruggen2012-11-121-1/+1
| | | | | | | This is useful for quick LLVM codegen testing. Change-Id: I45778371375b903e154222c47b15411d08085ae5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix integer arithmeticsLars Knoll2012-10-181-12/+15
| | | | | | | | | The inline assembly could create incorrect results for overflows, esp when multiplying. Also fix the return type of Value::integerValue() Change-Id: I4c8f195b37bcbb8fd4f0f3d0cd04a8cf73f193cd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Change usage of qIsNaN to std::isnan.Erik Verbruggen2012-10-181-1/+3
| | | | | | | | | | By using std::isnan the compiler/std-lib has a chance to optimize the call away or maybe even generate an intrinsic. Furthermore, when the runtime is compiled to bitcode for inclusion in generated code, we now do not need to link against QtCore to get just one single function. Change-Id: I79995afc1ba215f1ffd9a43df1808b833dfa8481 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on ia32Simon Hausmann2012-10-171-3/+3
| | | | | | | | Use the "q" constraint with the argument to seto to ensure we get a lower-8-bit register Change-Id: I483a8b37df9b726d78c050db97b58c5b62fde8e4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change usages of math.h into cmath. Fixes MacOS build.Erik Verbruggen2012-10-171-1/+1
| | | | | | | | | | | At least on MacOS, but possibly elsewhere too, including cmath before or after math.h will undefine e.g. the isinf macro (and others). The math.h include headers will make sure that math.h cannot get included twice, so this will end with a situation where isinf is undefined, but std::isinf is there. Change-Id: Ie59aeadf2adde511ea8db5eb2fafd3272a7e9d51 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Store integer constants as integer ValuesLars Knoll2012-10-171-0/+95
Generate integer Value's during instruction selection. Value is already prepared for it, so this simply speeds up integer heavy JS execution. Speeds up crypto.js by around 60% Change-Id: I3781767fd5b5c799365f3c75245409a9760ae7fb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>