Local variables that use a fixed alloca stack slot are assigned offsets starting at 0, before the prolog is written. Therefore the stack pointer needs to be aligned to the alloca's maximum alignment requirement. This required the following changes: - Add FixedAllocaSizeBytes to SpillAreaSizeBytes before aligning it. - Compute the maximum alignment requirement from FixedAllocaAlignBytes and SpillAreaAlignmentBytes, and prior NeedsStackAlignment uses. - Always align the stack pointer to this maximum. - Affected lit tests have been rebased. Note that in some cases the frame size is now bigger than necessary. This is due to FixedAllocaSizeBytes being padding to be a multiple of the alignment. This isn't strictly necessary since the spill areas take care of their own alignment. BUG=swiftshader:29 Change-Id: Ief30acda91c958d072528b8b59c2e933f68adbb1 Reviewed-on: https://chromium-review.googlesource.com/419816Reviewed-by:Jim Stichnoth <stichnot@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| Makefile.standalone-help | Loading commit data... | |
| bloat | Loading commit data... | |
| crosstest | Loading commit data... | |
| docs | Loading commit data... | |
| pnacl-llvm | Loading commit data... | |
| pydir | Loading commit data... | |
| runtime | Loading commit data... | |
| src | Loading commit data... | |
| tests_lit | Loading commit data... | |
| unittest | Loading commit data... | |
| wasm-tests | Loading commit data... | |
| .dir-locals.el | Loading commit data... | |
| .gitignore | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| DESIGN.rst | Loading commit data... | |
| LICENSE.TXT | Loading commit data... | |
| Makefile | Loading commit data... | |
| Makefile.standalone | Loading commit data... | |
| OWNERS | Loading commit data... | |
| README-wasm.md | Loading commit data... | |
| README.rst | Loading commit data... | |
| c2wasm-exe.sh | Loading commit data... | |
| codereview.settings | Loading commit data... | |
| fetch-torture-tests.sh | Loading commit data... |