diff options
author | 2023-02-10 11:28:40 +0100 | |
---|---|---|
committer | 2023-02-16 11:27:06 +0000 | |
commit | f4655e594bfefbe6d579fba7df496905b0aa724a (patch) | |
tree | 61ef272400ab2de328d3ce698f5f321942e26955 /compiler/optimizing/ssa_builder.cc | |
parent | ba4ab8ed756500e81f812cd739cb42dc61b79b3a (diff) |
Fix uninitialized register in read barrier
If there is a null pointer exception then read barrier code returns to
fast path and skips the initialization of IP0 register. IP0 is used
later in a placeholder instruction just to create a dependency on it to
prevent reordering load instructions. This instruction expects the
upper 32 bits of IP0 to be 0, if it is not then the base regiser of the
next load instruction is ruined, which can lead to crashing the system
or loading data from random addresses.
Test 1004-checker-volatile-ref-load will fail if there is something
other than 0 in the upper bits of IP0.
This fix clears IP0 register in the NPE code path.
Test: 1004-checker-volatile-ref-load
Test: test-art-target
Change-Id: Ibb32459070cb589815edff9bc822c6a1ea8b57d2
Diffstat (limited to 'compiler/optimizing/ssa_builder.cc')
0 files changed, 0 insertions, 0 deletions