mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
00769c18e8
To verify that I had covered all of the existing functionality, I added assertions to DoCallFallback and DoSpreadCallFallback to verify that the old C++ implementation never managed to attach a stub if CacheIR had failed to handle it. This patch includes the changes made as a result of this testing: 1. JSOP_CALLITER is equivalent to JSOP_CALL for our purposes. Adding support for JSOP_CALLITER did not require any additional changes. 2. JSOP_SUPERCALL and JSOP_SPREADSUPERCALL are just like normal constructors, except we don't save a template object. I added the super guards where necessary. 3. There were also a number of cases where we tried to attach a CacheIR stub, declined to attach because an identical stub already existed, and then attached an old stub. For example, a spread call IC with more than 16 arguments will fail, but we will try to attach another spread call IC. I examined the failures of this sort by hand. Many of them were invalid (in particular, oomtests that caused us to fail during the process of attaching the stub) or seemed acceptable. I made a few spot fixes to cover easy exceptions. 4. I added jitspew to the attachment code to print BaselineICFallback messages if we try to attach an identical stub, which will hopefully help when testing new ICs to verify that they are not perma-failing. Differential Revision: https://phabricator.services.mozilla.com/D25877 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
ductwork/debugger | ||
examples | ||
ipc | ||
public | ||
rust | ||
src | ||
xpconnect | ||
app.mozbuild | ||
ffi.configure | ||
moz.build | ||
moz.configure | ||
sub.configure |