diff options
author | Matthew Vogt <matthew.vogt@nokia.com> | 2012-03-13 15:06:40 +1000 |
---|---|---|
committer | Matthew Vogt <matthew.vogt@nokia.com> | 2012-03-13 15:22:14 +1000 |
commit | 784555f3032194a8923d804a8ce84957f113caf6 (patch) | |
tree | 6b538cea5bf82bd5288ac180125abd1bb312ddad /src/qml/qml/v4/qv4bindings.cpp | |
parent | 1f52c5430144eb7ba6baa7e3954675ca0707b947 (diff) | |
parent | 648c80c4c0759efb6e35fac7acc8daad5aab13e2 (diff) |
Merge branch 'master' of git://gitorious.org/qt/qtdeclarative into merge-master
Change-Id: Iaefec13503dadfa200539b8de7a2d80fc5bb3bcf
Diffstat (limited to 'src/qml/qml/v4/qv4bindings.cpp')
-rw-r--r-- | src/qml/qml/v4/qv4bindings.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/qml/qml/v4/qv4bindings.cpp b/src/qml/qml/v4/qv4bindings.cpp index 4fd84945fc..93c7820ca2 100644 --- a/src/qml/qml/v4/qv4bindings.cpp +++ b/src/qml/qml/v4/qv4bindings.cpp @@ -1172,6 +1172,15 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(MathCosReal, unaryop) + QML_V4_BEGIN_INSTR(MathAbsReal, unaryop) + { + const Register &src = registers[instr->unaryop.src]; + Register &output = registers[instr->unaryop.output]; + if (src.isUndefined()) output.setUndefined(); + else output.setqreal(qAbs(src.getqreal())); + } + QML_V4_END_INSTR(MathAbsReal, unaryop) + QML_V4_BEGIN_INSTR(MathRoundReal, unaryop) { const Register &src = registers[instr->unaryop.src]; @@ -1190,6 +1199,15 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(MathFloorReal, unaryop) + QML_V4_BEGIN_INSTR(MathCeilReal, unaryop) + { + const Register &src = registers[instr->unaryop.src]; + Register &output = registers[instr->unaryop.output]; + if (src.isUndefined()) output.setUndefined(); + else output.setint(qCeil(src.getqreal())); + } + QML_V4_END_INSTR(MathCeilReal, unaryop) + QML_V4_BEGIN_INSTR(MathPIReal, unaryop) { static const qreal qmlPI = 2.0 * qAsin(1.0); @@ -1480,6 +1498,26 @@ void QV4Bindings::run(int instrIndex, quint32 &executedBlocks, } QML_V4_END_INSTR(StrictNotEqualString, binaryop) + QML_V4_BEGIN_INSTR(MathMaxReal, binaryop) + { + const Register &left = registers[instr->binaryop.left]; + const Register &right = registers[instr->binaryop.right]; + Register &output = registers[instr->binaryop.output]; + if (left.isUndefined() || right.isUndefined()) output.setUndefined(); + else output.setqreal(qMax(left.getqreal(), right.getqreal())); + } + QML_V4_END_INSTR(MathMaxReal, binaryop) + + QML_V4_BEGIN_INSTR(MathMinReal, binaryop) + { + const Register &left = registers[instr->binaryop.left]; + const Register &right = registers[instr->binaryop.right]; + Register &output = registers[instr->binaryop.output]; + if (left.isUndefined() || right.isUndefined()) output.setUndefined(); + else output.setqreal(qMin(left.getqreal(), right.getqreal())); + } + QML_V4_END_INSTR(MathMinReal, binaryop) + QML_V4_BEGIN_INSTR(NewString, construct) { Register &output = registers[instr->construct.reg]; |