For "program" and "eval" code the result of the execution is result of
the last evaluated expression. To deal with this we somewhat
pessimistically always copy results to the return register. We could
theoretically improve this, but some testing i did a while ago (that
broke correctness by simply returning undefined for program and eval
code) did not impact performance in any real way. If you have an
example that you believe is impacted by this pessimism it would be
great if you could file a bug at http://bugs.webkit.org
--Oliver
On Aug 5, 2009, at 8:35 AM, Ágoston Róbert wrote:
hi!
I just experiment with squirrelfish bytecode generating, and I think I
find something
strange. After each mov instruction, where the source is a constant
register, there is
an other mov instruction, which moves the previous destination to r0.
I think these instructions are useless. Is there any reason why are
they generated?
There is an example:
js:
var r_15;
var r_16;
var r_17;
var r_18;
r_15 = 1;
r_16 = 2;
r_17 = 3;
r_17 = 4;
generated:
[ 0] enter
[ 1] mov r-15, r1073741824
[ 4] mov r-16, r1073741824
[ 7] mov r-17, r1073741824
[ 10] mov r-18, r1073741824
[ 13] mov r0, r1073741824
[ 16] mov r-15, r1073741825
[ 19] mov r0, r-15
[ 22] mov r-16, r1073741826
[ 25] mov r0, r-16
[ 28] mov r-17, r1073741827
[ 31] mov r0, r-17
[ 34] mov r-17, r1073741828
[ 37] mov r0, r-17
[ 40] end r0
-Robert
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev