summaryrefslogtreecommitdiff
path: root/compiler/optimizing/ssa_builder.cc
diff options
context:
space:
mode:
author Tamas Kaman <tamas.kaman@arm.com> 2023-02-10 11:28:40 +0100
committer Treehugger Robot <treehugger-gerrit@google.com> 2023-02-16 11:27:06 +0000
commitf4655e594bfefbe6d579fba7df496905b0aa724a (patch)
tree61ef272400ab2de328d3ce698f5f321942e26955 /compiler/optimizing/ssa_builder.cc
parentba4ab8ed756500e81f812cd739cb42dc61b79b3a (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