)]}'
{
  "commit": "f4f2daafb38c9c07ea74044a0fb89a2a19288b7a",
  "tree": "13fd63a65c12e60074bc2bc1e693fbb3b788ed8e",
  "parents": [
    "26c25d5da32fe1bdd94dd1404197c14994ecab60"
  ],
  "author": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Mon Mar 20 18:26:59 2017 +0000"
  },
  "committer": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Wed Apr 12 17:02:06 2017 +0100"
  },
  "message": "ARM64: Use link-time generated thunks for Baker CC read barrier.\n\nRemaining work for follow-up CLs:\n  - array loads,\n  - volatile field loads,\n  - use implicit null check in field thunk.\n\nTest: Added tests to relative_patcher_arm64\nTest: New run-test 160-read-barrier-stress\nTest: m test-art-target-gtest on Nexus 6P.\nTest: testrunner.py --target on Nexus 6P.\nBug: 29516974\nBug: 30126666\nBug: 36141117\nChange-Id: Id68ff171c55a3f1bf1ac1b657f480531aa7b3710\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aa529f8352881d1ee07f65f35acd1e475ec3f0d2",
      "old_mode": 33188,
      "old_path": "compiler/compiled_method.h",
      "new_id": "d0f66e2d8e4f8786fc5c0cc8f384c69b0834aea1",
      "new_mode": 33188,
      "new_path": "compiler/compiled_method.h"
    },
    {
      "type": "modify",
      "old_id": "2471f798bef716e22244379e6c3016bd2eb29530",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm/relative_patcher_arm_base.cc",
      "new_id": "f55d5a6fb8ae16c294c7e0b6b12c134fb6fede61",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm/relative_patcher_arm_base.cc"
    },
    {
      "type": "modify",
      "old_id": "25fd35e1d6efc76c00aced194f7169d1beacf131",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm/relative_patcher_arm_base.h",
      "new_id": "2cb1b6c535a849cd7052e3328695db38a5db8286",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm/relative_patcher_arm_base.h"
    },
    {
      "type": "modify",
      "old_id": "fa49fc4e6a0a40d48f2c4cda96fc3aa2ba05999c",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm/relative_patcher_thumb2.cc",
      "new_id": "1a5d79ce7043d5d7cc7e7d7dadbc491b11faf2bc",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm/relative_patcher_thumb2.cc"
    },
    {
      "type": "modify",
      "old_id": "d85739c51f431579ec306cd2725fa7382c2e3fe7",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm/relative_patcher_thumb2.h",
      "new_id": "ab37802d0f440b7448d891ab6aef61fa0e67e517",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm/relative_patcher_thumb2.h"
    },
    {
      "type": "modify",
      "old_id": "eace3d4326a80b290f402244f62d2cbcbeb3ca54",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm/relative_patcher_thumb2_test.cc",
      "new_id": "f08270d9343bca6e0abc18f0d2294780e0158b86",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm/relative_patcher_thumb2_test.cc"
    },
    {
      "type": "modify",
      "old_id": "9ddf200237014cb567a6daef0af983237d3092a5",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm64/relative_patcher_arm64.cc",
      "new_id": "53797d280aeab6b2f3341962f622bbc93ecc68d6",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm64/relative_patcher_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "a4a80185dcb3c7cb552a5f6317a1fdbfe58db08c",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm64/relative_patcher_arm64.h",
      "new_id": "7887cea5e6dd986f347f2d4dfb5c0f48c4850edb",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm64/relative_patcher_arm64.h"
    },
    {
      "type": "modify",
      "old_id": "9932c79a96d4ed6c698820da1b924dc9ff48455b",
      "old_mode": 33188,
      "old_path": "compiler/linker/arm64/relative_patcher_arm64_test.cc",
      "new_id": "b4d35ab2a7ced1f5548a38967d122a10478365ff",
      "new_mode": 33188,
      "new_path": "compiler/linker/arm64/relative_patcher_arm64_test.cc"
    },
    {
      "type": "modify",
      "old_id": "fe5f9a948ae6526c373257c3ecb7b5f69ebe99f7",
      "old_mode": 33188,
      "old_path": "compiler/linker/mips/relative_patcher_mips.cc",
      "new_id": "8da530f7cc10d6496d73be9b6bf3105610170257",
      "new_mode": 33188,
      "new_path": "compiler/linker/mips/relative_patcher_mips.cc"
    },
    {
      "type": "modify",
      "old_id": "4ff2f2f24f36a273db76b06ff20fcbb29ea02f01",
      "old_mode": 33188,
      "old_path": "compiler/linker/mips/relative_patcher_mips.h",
      "new_id": "852a345aa61860f386381f2d83fdbd7f89d4133c",
      "new_mode": 33188,
      "new_path": "compiler/linker/mips/relative_patcher_mips.h"
    },
    {
      "type": "modify",
      "old_id": "c47971635b6f5bb8028ce53c918c2595a0ecbc41",
      "old_mode": 33188,
      "old_path": "compiler/linker/mips64/relative_patcher_mips64.cc",
      "new_id": "3488d6d21c1d9d23b17f9094cc6b342a2e6a88da",
      "new_mode": 33188,
      "new_path": "compiler/linker/mips64/relative_patcher_mips64.cc"
    },
    {
      "type": "modify",
      "old_id": "8ef8cebe2fc91eeb0586a06a424bb8d7f3f9404c",
      "old_mode": 33188,
      "old_path": "compiler/linker/mips64/relative_patcher_mips64.h",
      "new_id": "f478d7f2efa2d421c12ac26bf8e0306cd7fce79d",
      "new_mode": 33188,
      "new_path": "compiler/linker/mips64/relative_patcher_mips64.h"
    },
    {
      "type": "modify",
      "old_id": "dbda03fd3b4684a83235201cad2f9a090cf43bea",
      "old_mode": 33188,
      "old_path": "compiler/linker/multi_oat_relative_patcher.h",
      "new_id": "247b29017e64ecbec7d6ade4c9ad9c28bcae7ee3",
      "new_mode": 33188,
      "new_path": "compiler/linker/multi_oat_relative_patcher.h"
    },
    {
      "type": "modify",
      "old_id": "92a96a0bd38da79405c0081c30d142e302ecadf2",
      "old_mode": 33188,
      "old_path": "compiler/linker/multi_oat_relative_patcher_test.cc",
      "new_id": "951588a857cc3f46f69d139cd975c919e97deb30",
      "new_mode": 33188,
      "new_path": "compiler/linker/multi_oat_relative_patcher_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f1538b10ccdc70a703698cf3148dc8c2004285cb",
      "old_mode": 33188,
      "old_path": "compiler/linker/relative_patcher.cc",
      "new_id": "ee494539385c4761cf9cd79b71ddd5949fcc5fe1",
      "new_mode": 33188,
      "new_path": "compiler/linker/relative_patcher.cc"
    },
    {
      "type": "modify",
      "old_id": "15e955b2c68a04041d60eecdaf93008d56fe55b6",
      "old_mode": 33188,
      "old_path": "compiler/linker/relative_patcher.h",
      "new_id": "38c822842260d0fa0a32300183a83417afa72d12",
      "new_mode": 33188,
      "new_path": "compiler/linker/relative_patcher.h"
    },
    {
      "type": "modify",
      "old_id": "908cb412bf444451820b96747ac5e67686921a5f",
      "old_mode": 33188,
      "old_path": "compiler/linker/relative_patcher_test.h",
      "new_id": "d9a87a0cfd2b29a10ff9a812b95f6e318b1bd64f",
      "new_mode": 33188,
      "new_path": "compiler/linker/relative_patcher_test.h"
    },
    {
      "type": "modify",
      "old_id": "768d31abf4a4ab89b28a11ff83390c8c0b2a51e1",
      "old_mode": 33188,
      "old_path": "compiler/linker/x86/relative_patcher_x86.cc",
      "new_id": "6967b0b6c28017e8da5cdb5ab00712962200e53f",
      "new_mode": 33188,
      "new_path": "compiler/linker/x86/relative_patcher_x86.cc"
    },
    {
      "type": "modify",
      "old_id": "fbf9ad46713f41dd86044bbac359f6d7e17d0fa2",
      "old_mode": 33188,
      "old_path": "compiler/linker/x86/relative_patcher_x86.h",
      "new_id": "63a8338722304dce214afda3571ce62a4c994cb4",
      "new_mode": 33188,
      "new_path": "compiler/linker/x86/relative_patcher_x86.h"
    },
    {
      "type": "modify",
      "old_id": "2ff69308c419d1162c2d579a3e32d30b5050d314",
      "old_mode": 33188,
      "old_path": "compiler/linker/x86_64/relative_patcher_x86_64.cc",
      "new_id": "156ece9909670889b7b2dbb5d8f0c703169c9878",
      "new_mode": 33188,
      "new_path": "compiler/linker/x86_64/relative_patcher_x86_64.cc"
    },
    {
      "type": "modify",
      "old_id": "11bb6d59e3711afb181e7a69ce84ca30d1e8dfac",
      "old_mode": 33188,
      "old_path": "compiler/linker/x86_64/relative_patcher_x86_64.h",
      "new_id": "4f3ec498cb8c041071e42e99c9ce379fd6b58406",
      "new_mode": 33188,
      "new_path": "compiler/linker/x86_64/relative_patcher_x86_64.h"
    },
    {
      "type": "modify",
      "old_id": "105db1d2d0b7abf7ea78f93b1128e6cdd491631d",
      "old_mode": 33188,
      "old_path": "compiler/oat_writer.cc",
      "new_id": "1781643afd58d7924cef4cccb8479bd52e7ddb29",
      "new_mode": 33188,
      "new_path": "compiler/oat_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "794e05c6706d6ef85238378712dadd725d76f911",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.cc",
      "new_id": "3d93553059fcb09b2c30fe0f09da98355cf5979f",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "10d8b841f822e3049ad1801efecbc37f87a81ce5",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.h",
      "new_id": "723507b1d86c36c513388c4c1f1b9846f8e97f58",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.h"
    },
    {
      "type": "modify",
      "old_id": "423fd3c6ae182a550385ffde058bce51d2ea8798",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/intrinsics_arm64.cc",
      "new_id": "77dcb5a55f4333ba3747618c21ef37b12a3a0356",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/intrinsics_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "5e7b51d02ed4c04a28aa448183f9b19eb538341a",
      "old_mode": 33188,
      "old_path": "runtime/arch/arm64/asm_support_arm64.h",
      "new_id": "cfcd6a7e0058ab70a2c6d412c1d11c2ccf70343d",
      "new_mode": 33188,
      "new_path": "runtime/arch/arm64/asm_support_arm64.h"
    },
    {
      "type": "modify",
      "old_id": "6add107cb761f3be4625f18f59848719ee70c402",
      "old_mode": 33188,
      "old_path": "runtime/arch/arm64/entrypoints_init_arm64.cc",
      "new_id": "bc7bcb173958b58db41ee63879a3c6738e1aca66",
      "new_mode": 33188,
      "new_path": "runtime/arch/arm64/entrypoints_init_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "b2bbd0d5607e3a5570368acd902cf99f2e6558e7",
      "old_mode": 33188,
      "old_path": "runtime/arch/arm64/quick_entrypoints_arm64.S",
      "new_id": "c7fa7f5d2b4d46f68128b74fb6796f8f8f4be13c",
      "new_mode": 33188,
      "new_path": "runtime/arch/arm64/quick_entrypoints_arm64.S"
    },
    {
      "type": "modify",
      "old_id": "faa0129d6b6cb3b08e5426b708c37459b2a97fbe",
      "old_mode": 33188,
      "old_path": "runtime/oat.h",
      "new_id": "58ea91b0226bc7d0f4a05f2723d32490250cfb7f",
      "new_mode": 33188,
      "new_path": "runtime/oat.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "test/160-read-barrier-stress/expected.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "505fe333380ec5a45106d157da966d214608a92f",
      "new_mode": 33188,
      "new_path": "test/160-read-barrier-stress/info.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab82229e4e04a4062984b923825b337112611a89",
      "new_mode": 33188,
      "new_path": "test/160-read-barrier-stress/run"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7540b5b0d2da3a1f7d017f6d1e41a37e146d13c2",
      "new_mode": 33188,
      "new_path": "test/160-read-barrier-stress/src/Main.java"
    }
  ]
}
