mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 18:26:15 +00:00
977d74aede
This commit fixes a bug whereby shuffling of stack results toward the stack pointer was borked. Just for posterity, here's a wee ASCII art of how this works in the baseline compiler. The error came in the last transition, when shuffling B toward the newly-expanded SP. The previous code was simply bogus. ``` initial (i32.const A) stack --> (local.get B) -> popRegisterResults -> popStackResults state (local.get C) _ | | | | | | | | | | | | | stack | | | | | | | | | height | | | | | | | | | | | | | | | | | sp+-+ v +-+ +-+ +-+ | |B| |A| | +-+ +-+ | |B| | +-+ | V nothing pushed C in %rax; B shuffled toward stack on machine stack; A still on %rsp; A materialized grows 3 values on value value stack down stack ``` Differential Revision: https://phabricator.services.mozilla.com/D52676 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
ductwork/debugger | ||
examples | ||
ipc | ||
public | ||
rust | ||
src | ||
xpconnect | ||
app.mozbuild | ||
ffi.configure | ||
moz.build | ||
moz.configure | ||
sub.configure |