See the first bug I fixed related to this: 7fefd483. That bug fix ensured that arguments are accessed relative to 'ebp' rather than 'esp' on Windows x86. However, when an arg Variable gets split (see LocalVariableSplitter), the new Variable that's linked to the original arg Variable must also use 'ebp' in the same way. This is now fixed by making sure to set its "isArg" state to match that of the "linked stack root" Variable at the same time as we set its "stackOffset" in the same way. Thus, when stackVarToAsmOperand is called during emitIAS, split Variables are properly addressed using the correct frame pointer. See the detailed design doc: https://docs.google.com/document/d/1IBsWg2V9_arWGYkpuwlKdne4lkA6XwSQ8fp99l8BmnA This fixes the intermittent crash reported here: https://bugs.chromium.org/p/angleproject/issues/detail?id=4482#c15 Bug: angleproject:4482 Change-Id: Ibc089f3a5b9a44f40f130a3db8656011212d2983 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50008 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:Antonio Maiorano <amaiorano@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .vscode | Loading commit data... | |
| build | Loading commit data... | |
| build_overrides | Loading commit data... | |
| docs | Loading commit data... | |
| extensions | Loading commit data... | |
| include | Loading commit data... | |
| src | Loading commit data... | |
| tests | Loading commit data... | |
| third_party | Loading commit data... | |
| tools/cmake_generate_graphviz | Loading commit data... | |
| .clang-format | Loading commit data... | |
| .dir-locals.el | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitmodules | Loading commit data... | |
| AUTHORS.txt | Loading commit data... | |
| Android.bp | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| CMakeSettings.json | Loading commit data... | |
| CONTRIBUTING.txt | Loading commit data... | |
| CONTRIBUTORS.txt | Loading commit data... | |
| LICENSE.txt | Loading commit data... | |
| OWNERS | Loading commit data... | |
| README.md | Loading commit data... | |
| codereview.settings | Loading commit data... |