The Bataan death march towards a PowerPC Ion backend continues unabated
(though IonPower does now run 50% of V8 with --ion-eager
--ion-offthread-compile=off, which I consider a hardwon achievement).
However, I'm puzzling over this code in CodeGenerator.cpp:
3882 // Check that we have a valid GC pointer.
3883 saveVolatile();
3884
3885 masm.pushValue(input);
3886 masm.moveStackPtrTo(temp1);
3887
3888 masm.setupUnalignedABICall(2, temp2);
3889 masm.loadJSContext(temp2);
3890 masm.passABIArg(temp2);
3891 masm.passABIArg(temp1);
3892 masm.callWithABI(JS_FUNC_TO_DATA_PTR(void*, AssertValidValue));
3893 masm.popValue(input);
3894 restoreVolatile();
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.
I can file the bug (though the proper fix would be to fix
saveVolatile/restoreVolatile to know about ValueOperands), just wanted
to make sure I wasn't going crazy.
Cameron Kaiser
_______________________________________________
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