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.

--
Nicolas B. Pierron
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to