diff options
author | Roland Levillain <rpl@google.com> | 2019-10-02 20:03:32 +0100 |
---|---|---|
committer | Roland Levillain <rpl@google.com> | 2019-10-26 10:31:12 +0000 |
commit | de74fedc736e615ef18283734c26e122e0db8bd1 (patch) | |
tree | 9735b77342de8e5bc284bac1a46abb4dc6e17c57 | |
parent | 5e0ac154f131fcd328a7a1809824b4a2a3dcbb10 (diff) | |
download | art-de74fedc736e615ef18283734c26e122e0db8bd1.tar.gz |
Adjust Checker assertion in 1004-checker-volatile-ref-load for heap poisoning.
The relative offset passed to the ADR instruction is usually
(i.e. when heap poisoning is disabled) 0xc (12 bytes), but it is 0x10
(16 bytes) when heap poisoning is enabled, as the emitted code
sequence includes a NEG instruction to unpoison the loaded reference.
(cherry picked from commit 40510ab49d6bb2bc65957aa72c00fbb371647f2d)
Test: art/test/testrunner/testrunner.py --target --64 -t 1004-checker-volatile-ref-load
(with `ART_HEAP_POISONING` set to `true`)
Bug: 140507091
Bug: 36141117
Change-Id: I63c6c00abbe10dfcbbf88231f9f9995d3ba950fa
-rw-r--r-- | test/1004-checker-volatile-ref-load/src/Main.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/1004-checker-volatile-ref-load/src/Main.java b/test/1004-checker-volatile-ref-load/src/Main.java index 028bee89a8..9542f363a4 100644 --- a/test/1004-checker-volatile-ref-load/src/Main.java +++ b/test/1004-checker-volatile-ref-load/src/Main.java @@ -37,7 +37,7 @@ public class Main { /// CHECK: NullCheck [<<Foo>>] dex_pc:<<PC:\d+>> loop:<<Loop>> /// CHECK-NEXT: InstanceFieldGet [<<Foo>>] dex_pc:<<PC>> field_name:Foo.bar field_type:Reference loop:<<Loop>> /// CHECK-NEXT: add w<<BaseRegNum:\d+>>, {{w\d+}}, #0x8 (8) - /// CHECK-NEXT: adr lr, #+0xc + /// CHECK-NEXT: adr lr, #+0x{{c|10}} // The following instruction (generated by // `art::arm64::CodeGeneratorARM64::EmitBakerReadBarrierCbnz`) checks the // Marking Register (X20) and goes into the Baker read barrier thunk if MR is |