Refactor our NaN boxing to be more efficient
authorLars Knoll <lars.knoll@digia.com>
Sun, 15 Sep 2013 13:46:36 +0000 (15:46 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 18 Sep 2013 11:14:21 +0000 (13:14 +0200)
commit87f475cbdb89fcbfbce68c3b676a240bb255a6d9
tree9ed2acca5036e70fdd9d60204e1dd5ca3ce0d758
parent43cdae853b726642893622d2feffcd0f4a2d6953
Refactor our NaN boxing to be more efficient

* Use a unified way to store all Managed objects inside
a Value, instead of distinguishing between strings
and other objects.

* On 64 bit we store pointers as pointers, so accessing them
through Scoped<> objects is cheap. This implies that doubles
are now stored in a mangled form (xor'ed with a mask).

Change-Id: I582e0fb167a62c0c527c6bfa3452550e37944069
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
16 files changed:
src/qml/compiler/qv4isel_masm.cpp
src/qml/compiler/qv4isel_masm_p.h
src/qml/jsruntime/qv4debugging.cpp
src/qml/jsruntime/qv4lookup.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4runtime_p.h
src/qml/jsruntime/qv4scopedvalue_p.h
src/qml/jsruntime/qv4string.cpp
src/qml/jsruntime/qv4string_p.h
src/qml/jsruntime/qv4value.cpp
src/qml/jsruntime/qv4value_def_p.h
src/qml/jsruntime/qv4value_p.h
src/qml/jsruntime/qv4vme_moth.cpp