OSDN Git Service

Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.
authorVladimir Marko <vmarko@google.com>
Tue, 13 Jan 2015 17:34:28 +0000 (17:34 +0000)
committerVladimir Marko <vmarko@google.com>
Wed, 14 Jan 2015 10:13:08 +0000 (10:13 +0000)
commitee5e273e4d0dd91b480c8d5dbcccad15c1b7353c
treebf29543304d3d678e4aefe1f9b1619adabd6aaed
parentb95dff1a3ae456c0afec74b506f9b9c9cb12663a
Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.

If ldrd/strd isn't atomic, IPUT_WIDE uses ldrexd+strexd and
we need to record the safepoint for the ldrexd rather than
strexd. IGET_WIDE was simply missing the memory barrier.

Bug: 18993519
Change-Id: I4e9270b994f413c1a047c1c4bb9cce5f29e42cb4
compiler/dex/quick/arm/utility_arm.cc
compiler/dex/quick/gen_common.cc
test/122-npe/src/Main.java