diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2012-06-13 09:21:17 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-13 09:55:50 +0200 |
commit | d47c4a1dad750d278bcf00b630af69c4b8bdb97f (patch) | |
tree | 289865bd448633ffec5e8d7e85436b6c0a8a6cad /src/3rdparty/v8/src/utils.h | |
parent | 28017b45db578180d0d54e67aea209ad95f73b9f (diff) |
Updated V8 from git://github.com/v8/v8.git to 3e6ec7e018bbf2c63ef04b85ff688198ea204c04
Update V8 source to version 3.11.4
* Performance and stability improvements on all platforms.
* Fixed native ARM build (issues 1744, 539)
* Fixed several bugs in heap profiles (including issue 2078).
* Throw syntax errors on illegal escape sequences.
* Made handling of const more consistent when combined with 'eval' and
'with'.
* Fixed V8 on MinGW-x64 (issue 2026).
* Put new global var semantics behind a flag until WebKit tests are
cleaned up.
* Enabled inlining some V8 API functions.
* Enabled MIPS cross-compilation.
* Implemented clearing of CompareICs (issue 2102).
* Fixed python deprecations. (issue 1391)
* Fixed GCC 4.7 (C++11) compilation. (issue 2136)
Change-Id: I72594bd22356391dd55e315c022d0c9f3fd5b451
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/3rdparty/v8/src/utils.h')
-rw-r--r-- | src/3rdparty/v8/src/utils.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/3rdparty/v8/src/utils.h b/src/3rdparty/v8/src/utils.h index 1d40c98..f116c14 100644 --- a/src/3rdparty/v8/src/utils.h +++ b/src/3rdparty/v8/src/utils.h @@ -85,6 +85,32 @@ inline int WhichPowerOf2(uint32_t x) { } +// Magic numbers for integer division. +// These are kind of 2's complement reciprocal of the divisors. +// Details and proofs can be found in: +// - Hacker's Delight, Henry S. Warren, Jr. +// - The PowerPC Compiler Writer’s Guide +// and probably many others. +// See details in the implementation of the algorithm in +// lithium-codegen-arm.cc : LCodeGen::TryEmitSignedIntegerDivisionByConstant(). +struct DivMagicNumbers { + unsigned M; + unsigned s; +}; + +const DivMagicNumbers InvalidDivMagicNumber= {0, 0}; +const DivMagicNumbers DivMagicNumberFor3 = {0x55555556, 0}; +const DivMagicNumbers DivMagicNumberFor5 = {0x66666667, 1}; +const DivMagicNumbers DivMagicNumberFor7 = {0x92492493, 2}; +const DivMagicNumbers DivMagicNumberFor9 = {0x38e38e39, 1}; +const DivMagicNumbers DivMagicNumberFor11 = {0x2e8ba2e9, 1}; +const DivMagicNumbers DivMagicNumberFor25 = {0x51eb851f, 3}; +const DivMagicNumbers DivMagicNumberFor125 = {0x10624dd3, 3}; +const DivMagicNumbers DivMagicNumberFor625 = {0x68db8bad, 8}; + +const DivMagicNumbers DivMagicNumberFor(int32_t divisor); + + // The C++ standard leaves the semantics of '>>' undefined for // negative signed operands. Most implementations do the right thing, // though. |