Thanks, Nicolas and Jan, that makes sense.
Cameron
On 4/14/15 2:55 AM, Nicolas B. Pierron wrote:
On 04/14/2015 02:24 AM, Cameron Kaiser wrote:
If input is in volatile registers, wouldn't the restoreVolatile at
line 3894
clobber it? Or am I misunderstanding this? I reworked this to move the
result into temporary registers restoreVolatile doesn't know about, but I
have the luxury of 32 GPRs.
The role of emitAssertResultV is not to mutate its input, but only to
verify if the type-set on which we based our optimization is a super-set
of the value which is flowing through these instructions.
The only goal of puschValue is to be able to take the address of the
Value which is spilled on the stack, but AssertValidValue not to mutate
it (we should probably add a const on the second argument).
https://dxr.mozilla.org/mozilla-central/source/js/src/jit/VMFunctions.cpp#1229
So, it does not matter much if we clobber input with popValue and
potentially restoreVolatile, as it should remain identical after the
call made by emitAssertReturnV.
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals