)]}'
{
  "log": [
    {
      "commit": "668daf892a2b81b1acc09c354d705774daa17958",
      "tree": "42b291279d36ebefead5f0a2625d2b0e1ea81601",
      "parents": [
        "5503a8aef8019e536b9702326eccdc92e7be7644"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 10 15:42:10 2021 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 10 19:22:14 2021 +0000"
      },
      "message": "Revert^2 \"Adjust test for compiler update.\"\n\n855cc35a2212d51de19d1daaefe6577223882fd6\n\nChange-Id: Ife32e570d5367f0237137f300d5ebf063a7555b3\n"
    },
    {
      "commit": "855cc35a2212d51de19d1daaefe6577223882fd6",
      "tree": "9f81ffa70d28a9021209bf508a052023e7495e2a",
      "parents": [
        "1f0a1547d31aaa44e6667dbd0ada228f4b2e2d8a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 20:59:59 2021 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 20:59:59 2021 +0000"
      },
      "message": "Revert \"Adjust test for compiler update.\"\n\nRevert \"Switch to clang r428724 13.0.1.\"\n\nRevert submission 1743633-switch-to-clang-r428724\n\nReason for revert: fix build\nReverted Changes:\nI824f3bc1c:Update bazel\u0027s clang version to clang-r428724\nI6c4c26267:Adjust test for compiler update.\nI94ab1f2dc:Switch to clang r428724 13.0.1.\n\nChange-Id: Ic9b7921f530566a6ebe7e3d4304c2242ffdfecc1\n"
    },
    {
      "commit": "1f0a1547d31aaa44e6667dbd0ada228f4b2e2d8a",
      "tree": "6d8ef6f4e434690d9164e11f88f4bfeabe00f5c5",
      "parents": [
        "f955425d11ed4b8f6dc02530f0f5ab69edecd8d2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jun 29 13:59:51 2021 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 18:20:19 2021 +0000"
      },
      "message": "Adjust test for compiler update.\n\nBug: 192012848\nTest: run test-art-host-gtest-art_compiler_host_tests\nChange-Id: I6c4c26267c3bcfafc22c391f99cdadcde473445e\n"
    },
    {
      "commit": "cedec9db0a9accfdcf5eb695879e0b2caf2c34cb",
      "tree": "99fd71a3ef398a471507ed815c4a175805ad51f3",
      "parents": [
        "0ccc970b3c00b172e3cff8e10da13dd6323ccd52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 16:16:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 14:34:43 2021 +0000"
      },
      "message": "Do not create HandleScope for JNI transitions.\n\nWe previously crated a HandleScope in the JNI transition\nframe to hold references passed as jobject (jclass, etc.)\nto the native function and these references were actually\nspilled twice during the transition.\n\nWe now construct the jobject as a pointer to the reference\nspilled in the reserved out vreg area in the caller\u0027s frame.\nAnd the jclass for static methods is just a pointer to the\nmethod\u0027s declaring class. This reduces the amount of work\nrequired in the JNI transition, both on entry (in compiled\nstubs) and exit (in JniMethodEnd*).\n\nSome additional work is required when GC visits references\nof a native method as we need to walk over the method\u0027s\nshorty which was unnecessary for a HandleScope.\n\nAlso fix Thread::InitStackHwm() to calculate correct stack\nsize needed by the new Thread::IsJniTransitionReference().\n\nThe results for StringToBytesBenchmark on blueline little\ncores running at fixed frequency 1420800 are approximately\narm64 (medians from 3 runs) before after\ntimeGetBytesAscii EMPTY     447.33 436.86\ntimeGetBytesIso88591 EMPTY  440.52 431.13\ntimeGetBytesUtf8 EMPTY      432.31 409.82\narm (medians from 3 runs)   before after\ntimeGetBytesAscii EMPTY     500.53 490.87\ntimeGetBytesIso88591 EMPTY  496.45 495.30\ntimeGetBytesUtf8 EMPTY      488.84 472.68\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --gcstress\nTest: testrunner.py --host --jit-on-first-use\nTest: testrunner.py --host --jit-on-first-use --gcstress\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nTest: boots.\nBug: 172332525\nChange-Id: I658f9d87071587b3e89f31c65feca976a11e9cc2\n"
    },
    {
      "commit": "331c8e371f2a3324070a4da966af8bf296b58bbb",
      "tree": "82ad282811d40e605bd7e0ad1c3be81ea3385e7f",
      "parents": [
        "49cde240141d84bc0d79ed2225aff5b1a7f8a65e"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Sep 11 17:03:58 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Sep 22 16:39:51 2020 +0000"
      },
      "message": "Fix expected results for clang-r399163 update.\n\nllvm-objdump changed the format it uses for displaying assembly, so we\nmust also adapt all of the ART tests similarly, since they check for\nexact matching output. llvm-dwarfdump has similarly changed its outputs,\nso we adjust our expectations there too.\n\nBug: http://b/155835175\nTest: m test-art-host-gtest\nChange-Id: Iefdb7b98b5f87d9c7bbad1930a4393919d9b9b34\n"
    },
    {
      "commit": "b461b53c926dae7f1959a309b0a2b109b6d3c4d3",
      "tree": "a9d3d51d8a3267dd3e7724c1ab3bf70cfd4c417a",
      "parents": [
        "fab6f1c479f6053a0c1eaaa889e0ff067d596211"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 13 17:45:22 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 15 09:48:56 2020 +0000"
      },
      "message": "Revert^2 \"Switch to LLVM prebuilt tools for ART gtests\"\n\nIt is also necessary to adjust the expected output of some tests.\n\nThis reverts commit ea54b823a3a02f65c865e11bbbccb327a273c039.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib244e8b7d43d575299654397a47056f295ab4589\n"
    },
    {
      "commit": "ea54b823a3a02f65c865e11bbbccb327a273c039",
      "tree": "e6cb592138b95d2cb3ab5a132d56b3211915a108",
      "parents": [
        "7285a4bc7337cf6382ac464b979ae5db986a2a53"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 10 18:28:56 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 10 19:34:40 2020 +0000"
      },
      "message": "Revert \"Switch to LLVM prebuilt tools for ART gtests\"\n\nThis reverts commit 8070443ce4b31a6787c22490f18f838f8f6ed4be.\n\nReason for revert: Failing on chrome buildbots.\nTest: None\nBug: 137817558\n\nChange-Id: I4cbb4898e859ce33560592dd63cbf4a413048662\n"
    },
    {
      "commit": "8070443ce4b31a6787c22490f18f838f8f6ed4be",
      "tree": "ca9952b599e81570b60a0b1d403316de45d3f340",
      "parents": [
        "60690e495c3d6ead778bc25c44e925c5fd66173f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:40:19 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 10 10:57:04 2020 +0000"
      },
      "message": "Switch to LLVM prebuilt tools for ART gtests\n\nIt is also necessary to adjust the expected output of some tests.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib517169614470193e0c55f566adb72a526ae6902\n"
    },
    {
      "commit": "194f555db74816aa380d2f46f63c8626f38e9b71",
      "tree": "d81626d2023f2d5a7f77b1ff4718e353ee76bc90",
      "parents": [
        "d6e14e0b6a3447d6e89a93d0a017e92b11dc5f6f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 07 01:10:07 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 15:58:18 2020 +0000"
      },
      "message": "Refactor arm assembly tests.\n\nAnother step in preparation to move to the LLVM toolchain.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ie5be337165d8f24e04740de0486144fa6a62f063\n"
    },
    {
      "commit": "662f12ee2f2b886aebcc22d321b2d752227e0b38",
      "tree": "b10edc5ca99d0bae716462580cb025b4b48eb83d",
      "parents": [
        "eedca4a5f72b449df035979f31785dd5eaa46e0e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 26 12:46:09 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 02 12:53:56 2020 +0000"
      },
      "message": "Move entry spills determination to JNI compiler.\n\nThe calling convention no longer describes entry spills as\nspilling is the JNI compiler\u0027s responsibility. This allows\nfuture improvements, such as spilling registers directly to\nthe HandleScope or outgoing stack args.\n\nRemove the notion of interprocedural scratch register from\ncalling conventions and let assemblers deal with all scratch\nregister uses. The remaining JNI assembler APIs that take\nscratch registers are currently unused and can be removed.\n\nAlso fix a bug in disassembly comparison for tests; the\ncontents of two files were considered identical if the\nsecond one just contained additional data.\n\nThis change fully preserves the generated code and adds TODO\ncomments where doing so results in weird or suboptimal code.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Prebuilt boot image is unchanged.\nTest: aosp_taimen-userdebug boots.\nBug: 12189621\nChange-Id: Ic26a670276920313cd907a6eda8d982cf0abfd81\n"
    },
    {
      "commit": "3db70689e3e1c92344d436a8ea4265046bdef449",
      "tree": "3db08743e968062ed5bdc143233cdb3c4564696b",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 26 15:12:03 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 27 12:56:39 2018 -0800"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles compiler.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I5cdfe73c31ac39144838a2736146b71de037425e\n"
    },
    {
      "commit": "680cbf205f4560c22d96ed6f3296eb25125d99d6",
      "tree": "7e455c872744007bb04dcda59221d0288466d986",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 31 11:00:19 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 06 10:34:35 2018 -0800"
      },
      "message": "Enable building art and tests with linux_bionic\n\nA linux_bionic built runtime can be created by modifying the\n$OUT_DIR/soong/soong.config json file to add a \u0027\"Host_bionic\": true\u0027\nentry and then running the following command:\n\n% m --skip-make $OUT_DIR/soong/host/linux_bionic-x86/\u003ctarget-file\u003e\n\nA script \u0027tools/build_linux_bionic_tests.sh\u0027 was also added that will\nbuild linux-bionic versions of host-test related files.\n\nAlso modify tests so they can be run.  Currently all run-tests pass\nwhen run on a linux_bionic host build. All gtests pass except for the\nfollowing 9 tests:\n  ArmVIXLAssemblerTest.VixlJniHelpers\n  ArmVIXLAssemblerTest.VixlLoadFromOffset\n  ArmVIXLAssemblerTest.VixlStoreToOffset\n  DwarfTest.DebugFrame\n  DwarfTest.DebugFrame64\n  DwarfTest.x86_64_RegisterMapping\n  DwarfTest.DebugLine\n  DwarfTest.DebugLineSpecialOpcodes\n  DwarfTest.DebugInfo\n\nSince these tests must be run manually without the standard\n(makefile-based) testrunner it\u0027s not clear yet whether these failures\nare important or what must be done to fix them. Several tests had\ndependencies on the actual location of the libart library that needed\nto be fixed, these tests might as well.\n\nTest: ./tools/build_linux_bionic_tests.sh\nTest: ./test/testrunner/testrunner.py --no-build --host --64 --run-test-option\u003d--bionic\nTest: find $OUT_DIR/soong/host/linux_bionic-x86/nativetest64 -mindepth 2 -type f | while read abc; do $abc; done | tee all-tests.txt\nTest: tail -n +0 -f all-tests.txt | grep FAILED\n\nBug: 31559095\nBug: 118778408\nChange-Id: I5fae4e54371e7410678619f18fcb54a3bd34e9b0\n"
    },
    {
      "commit": "3215fff7ef8fa3c2250b91158560eacc613a4671",
      "tree": "50d6fe7aff3f8fae31dcf2ca020f5079f49a592f",
      "parents": [
        "6371249ce05032db5d8c4c7ec96bf7fd7264c42f"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 03 17:10:12 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 04 14:47:57 2018 -0700"
      },
      "message": "Separate Malloc and MemMap ArenaPools\n\nMake ArenaPool an abstract base class and leave MallocArenaPool\nimplementation with it.  This enables arena_allocator to be free\nof MemMap, Mutex, etc., in preparation to move the remaining collections\nout of runtime/base to libartbase/base.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      build and boot\n\nChange-Id: Ief84dcbfb749165d9bc82000c6b8f96f93052422\n"
    },
    {
      "commit": "33bff25bcd7a02d35c54f63740eadb1a4833fc92",
      "tree": "553db4f60878acf2a0fa7036a739d406df9a29b7",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 01 14:35:42 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 10:11:02 2017 +0000"
      },
      "message": "ART: Make InstructionSet an enum class and add kLast.\n\nAdding InstructionSet::kLast shall make it easier to encode\nthe InstructionSet in fewer bits using BitField\u003c\u003e. However,\nintroducing `kLast` into the `art` namespace is not a good\nidea, so we change the InstructionSet to an enum class.\nThis also uncovered a case of InstructionSet::kNone being\nerroneously used instead of vixl32::Condition::None(), so\nit\u0027s good to remove `kNone` from the `art` namespace.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6\n"
    },
    {
      "commit": "69d310e0317e2fce97bf8c9c133c5c2c0332e61d",
      "tree": "fba05a1530e6fc4a2e6950303c1f7c6b0ffbb936",
      "parents": [
        "e764d2e50c544c2cb98ee61a15d613161ac6bd17"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 09 14:12:23 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 09:44:26 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for building HGraph.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 21.1MiB -\u003e 20.2MiB\n  BatteryStats.dumpLocked(): 42.0MiB -\u003e 40.3MiB\nThis is because all the memory previously used by the graph\nbuilder is reused by later passes.\n\nAnd finish the \"arena\"-\u003e\"allocator\" renaming; make renamed\nallocator pointers that are members of classes const when\nappropriate (and make a few more members around them const).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 64312607\nChange-Id: Ia50aafc80c05941ae5b96984ba4f31ed4c78255e\n"
    },
    {
      "commit": "0d127e10de0b06ec22d8e855d1d62773c4ede101",
      "tree": "9ae3f93e78303272785b8321279226c1009854b0",
      "parents": [
        "9c0a6ce0a41eaf78f3fc3224fc34195601b6e0b3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 05 17:01:11 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 04 19:49:51 2017 +0100"
      },
      "message": "Do not refresh the Marking Register in CriticalNative methods.\n\nCriticalNative methods shall not be suspended and hence do not\nrequire MR to be refreshed in compiled JNI code.\n\nThis change is for ARM and ARM64 only.\n\nImpact on Critical Native benchmarks times (median of 10 runs,\nlower is better):\n\n* angler-userdebug - ARMv7\n\n** All cores\n\n   NativeDowncallStaticCritical   -2.78%\n   NativeDowncallStaticCritical6  -1.79%\n\n** Little cores only\n\n   NativeDowncallStaticCritical   -1.66%\n   NativeDowncallStaticCritical6  -1.27%\n\n** Big cores only\n\n   NativeDowncallStaticCritical   -2.66%\n   NativeDowncallStaticCritical6  -1.70%\n\n* angler-userdebug - ARMv8\n\n** All cores\n\n   NativeDowncallStaticCritical   -3.52%\n   NativeDowncallStaticCritical6  -1.79%\n\n** Little cores only\n\n   NativeDowncallStaticCritical   -1.63%\n   NativeDowncallStaticCritical6  -1.27%\n\n** Big cores only\n\n   NativeDowncallStaticCritical   -3.87%\n   NativeDowncallStaticCritical6  -1.75%\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: m test-art-host-gtest\nTest: ARM64 device boot test\nTest: ARM device boot test\nBug: b/37707231\nChange-Id: I95d61b9ecde0afffdd5fd44763b19caa06025ec8\n"
    },
    {
      "commit": "956dac258797a22ebe970be424cbf77a471a4d54",
      "tree": "1af918328817eb0e72b638bbef684edd7eab9428",
      "parents": [
        "2a7b84ba85caa95f6bdb9ad5be3f93b2c742d366"
      ],
      "author": {
        "name": "Rahul Chaudhry",
        "email": "rahulchaudhry@google.com",
        "time": "Wed Sep 27 16:33:40 2017 -0700"
      },
      "committer": {
        "name": "Rahul Chaudhry",
        "email": "rahulchaudhry@google.com",
        "time": "Wed Sep 27 16:33:40 2017 -0700"
      },
      "message": "assembler_thumb_test: use \u0027objdump -D -M force-thumb\u0027 to disassemble.\n\nNewer version of objcopy cannot strip \u0027$d\u0027 from an object file, as it is\nimplicitly marked as \u0027precious\u0027. This is intentional, introduced in the\nupstream binutils repository by this commit:\n- https://sourceware.org/git/?p\u003dbinutils-gdb.git;a\u003dcommit;h\u003dfca2a38fdb391f810e309a12d5279047d4edac34\n\nSince stripping of \u0027$d\u0027 was being done only so we can disassemble\nthe object file with \u0027objdump -d\u0027, switch to using \u0027objdump -D -M\nforce-thumb\u0027 to force disassembly as thumb instructions.\n\nBug: None\nTest: m test-art-host-gtest-assembler_thumb_test\nChange-Id: I815f9f3a7949bdc49d872c9b726c87b3199b66ca\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "c043d006845afef99b17aeab8bb6d6da1a42ad37",
      "tree": "756ce3caca2a7ff62a169c003639657bd7124d2f",
      "parents": [
        "9983e302384c12a975c8d2d5ae239f79fd8e1996"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 14 16:39:16 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 17 18:00:40 2017 +0100"
      },
      "message": "Remove the old ARM assemblers from ART.\n\nNow that the old ARM code generator for ART\u0027s Optimizing\ncompiler is gone, these assemblers no longer have users;\nretiring them.\n\nTest: test.py\nBug: 63316036\nChange-Id: Iaea42432a9e0d3288b71615f85c58846c0336944\n"
    },
    {
      "commit": "6d729a789d3d7771e13d9445ee0be1d9d48a81b5",
      "tree": "360b9af68920f411be5fe6753aaf7ab4976385ea",
      "parents": [
        "8cfbbb826a3ab7bb680cfcd8a8148570b165d620"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 30 18:34:01 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 13 16:41:07 2017 +0100"
      },
      "message": "Introduce a Marking Register in ARM code generation.\n\nWhen generating code for ARM, maintain the status of\nThread::Current()-\u003eGetIsGcMarking() in register R8,\ndubbed MR (Marking Register), and check the value of that\nregister (instead of loading and checking a read barrier\nmarking entrypoint) in read barriers.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: m test-art-host-gtest\nTest: ARM device boot test\nBug: 37707231\nChange-Id: I30b44254460d0bbb9f1b2adc65eca52ca3de3f53\n"
    },
    {
      "commit": "8f840f805579896809f6a17705402a85793ebce9",
      "tree": "82426258ac64a453b869896f0ced39b038d9e1f8",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 15 17:56:27 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:31:04 2016 +0000"
      },
      "message": "ARM: Fix vixl related branch issue in JNI.\n\nFix VIXL asserts in EncodeLabelFor in JNI macro assembler when\nlabel is out of range of 16-bit branch (now a veneer is correctly\nused).\n\nbug:32545704\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: Ie6401394cf364daeaaf107b42275997d2edf5b6d\n"
    },
    {
      "commit": "b77051ea5718fe017f2fa884b9ca4c8186c95190",
      "tree": "bb51782f8350be00195becabc3cd8758f15010a0",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Nov 21 19:46:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:16:31 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix breaking changes from recent VIXL update.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I02a608bf51b889a2bfff43272a3619582bf9cf20\n"
    },
    {
      "commit": "af1e2990cd1406a0fb7cba1d2e208208e950e413",
      "tree": "07e80e4dcc31931003a87be7884134ea42ceec07",
      "parents": [
        "3f699ae23266b2c4adc98958dcbd80c71c2c3284"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 12 17:44:50 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 19 11:38:54 2016 -0700"
      },
      "message": "jni: Support @FastNative methods that return objects\n\nBug: 32088975\nChange-Id: I16f8b7ec6b251812af60ab25f2153d9b72f37044\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "63dccbbefef3014c99c22748d18befcc7bcb3b41",
      "tree": "60a498041bebff43bc1f43d438e3bc34a30887f7",
      "parents": [
        "6bee25976782a063d6b44f7718a6302761bf6403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 21 13:51:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 29 15:58:43 2016 +0100"
      },
      "message": "Store resolved Strings for AOT code in .bss.\n\nAnd do some related refactorings.\n\nBug: 20323084\nBug: 30627598\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e\n"
    },
    {
      "commit": "367f3dd32454858b8b25d87feb8f6599d3b4c9dd",
      "tree": "9fe45c9f6785c31918f70ed2d12683f9c8d702af",
      "parents": [
        "fa7b5c97db681e3d64d145807927cfafae78729b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 01 17:00:24 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 09 10:48:56 2016 -0700"
      },
      "message": "jni: Add @CriticalNative optimization to speed up JNI transitions\n\nChange-Id: I963059ac3a72dd8e6a867596c356d7062deb6da7\n"
    },
    {
      "commit": "0e851e2fb55773e2ad5f06b89ed5e655ca3eb846",
      "tree": "caaa0c8655628cafeba73c44d98525dfc2262326",
      "parents": [
        "ca11dc008457e1596554eb9b1b77c823ae9dcf54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 25 18:17:56 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 25 18:20:25 2016 +0100"
      },
      "message": "Fix VIXL assembler test for heap-poisoning configurations.\n\nAnd fix a typo in test name.\n\nTest: ART_HEAP_POISONING\u003dtrue m test-art-host-gtest-assembler_thumb_test\nChange-Id: Ibc3750676aa7a7b23c93ee0babb8d9c207cb762a\n"
    },
    {
      "commit": "12e097c84cef710fa4f254b1811ff70b876e9e9a",
      "tree": "d8044470b0006a5ff22207ae589a8b05829dfdfa",
      "parents": [
        "ba6b679bd34449ec56508966706ca1b8d5e7cb17"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Aug 08 15:13:26 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Aug 19 15:52:58 2016 +0100"
      },
      "message": "ARM: VIXL32: Implement VIXL-based assembler.\n\nThis patch introduces new ARM assembler (Thumb2) based on VIXL and\nARM VIXL JNI Macro Assembler. Both are turned off by default (JNI\none will be turned on in the following patch).\n\nChange-Id: I5f7eb35da5318d7170b3c7e8553364ebe29cc991\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\n"
    },
    {
      "commit": "93205e395f777c1dd81d3f164cf9a4aec4bde45f",
      "tree": "1d08efd9b7bca9fe23df9ae9489c5dd575d3c6df",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 11:59:46 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 17:50:16 2016 +0100"
      },
      "message": "Move Assemblers to the Arena.\n\nAnd clean up some APIs to return std::unique_ptr\u003c\u003e instead\nof raw pointers that don\u0027t communicate ownership.\n\nChange-Id: I3017302307a0253d661240750298802fb0d9585e\n"
    },
    {
      "commit": "ac6ac10a0801fa6eb95e0ab0c72b2ed562210b34",
      "tree": "3758a1903dbdd273c35d4bae4ee0e820857946c0",
      "parents": [
        "1201804d1813d7db0accead9721d67c40b3de564"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 17 12:14:00 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 22 11:51:33 2015 +0000"
      },
      "message": "Optimizing/ARM: Fix CmpConstant().\n\nCMN updates flags based on addition of its operands.\nDo not confuse the \"N\" suffix with bitwise inversion\nperformed by MVN.\n\nAlso add more special cases analogous to AddConstant()\nand use CmpConstant() more in code generator.\n\nChange-Id: I0d4571770a3f0fdf162e97d4bde56814098e7246\n"
    },
    {
      "commit": "f5c09c3ed5bca4c34d8476dd9ed2714106fafbcf",
      "tree": "6521df348c2fd8d692bb751ed8dffdf70c8f6051",
      "parents": [
        "7f3b38cc23b638ab84ac01a94e90f0456da3b688"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 17 12:08:08 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 17 15:13:39 2015 +0000"
      },
      "message": "Optimizing/ARM: Fix AddConstant() to adhere to set_cc.\n\nAnd improve it to use shorter code sequences.\n\nBug: 26121945\n\nChange-Id: Ia4f1688652c195a7ca19af36d919388a550e2841\n"
    },
    {
      "commit": "b4536b7de576b20c74c612406c5d3132998075ef",
      "tree": "5265c07b51b4d79b2fd64c63d9b78d38b7601a8f",
      "parents": [
        "883ef45b5d5a2e4005914c7b339881900976b6e7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 24 13:45:23 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 01 11:38:03 2015 +0000"
      },
      "message": "Optimizing/ARM: Implement kDexCachePcRelative dispatch.\n\nChange-Id: I0fe2da50a30a3f62bec8ea01688dd1fec84b1831\n"
    },
    {
      "commit": "f180af0fc0d0bd981dd6356848df2ba237e1a227",
      "tree": "bea248023c5823bbb28a1864655e3afce9226400",
      "parents": [
        "97cd5bb34ca97e7e87a030b2e1acec004fd26275",
        "f9d741e32c6f1629ce70eefc68d3363fa1cfd696"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 23 11:20:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 23 11:20:35 2015 +0000"
      },
      "message": "Merge \"Optimizing/ARM: Improve long shifts by 1.\""
    },
    {
      "commit": "f9d741e32c6f1629ce70eefc68d3363fa1cfd696",
      "tree": "409005e5b1d01d2830c20421f8466125e110d6af",
      "parents": [
        "beb709a2607a00b5df33f0235f22ccdd876cee22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 20 15:08:11 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 20 16:18:39 2015 +0000"
      },
      "message": "Optimizing/ARM: Improve long shifts by 1.\n\nImplement long\n    Shl(x,1) as LSLS+ADC,\n    Shr(x,1) as ASR+RRX and\n    UShr(x,1) as LSR+RRX.\n\nRemove the simplification substituting Shl(x,1) with\nADD(x,x) as it interferes with some other optimizations\ninstead of helping them. And since it didn\u0027t help 64-bit\narchitectures anyway, codegen is the correct place for it.\nThis is now implemented for ARM and x86, so only mips32 can\nbe improved.\n\nChange-Id: Idd14f23292198b2260189e1497ca5411b21743b3\n"
    },
    {
      "commit": "6fd0ffe8da212723a3ac0256ce350b5872cc61d4",
      "tree": "122c89d874460662d3feba523cb9f2553fb78bd3",
      "parents": [
        "beb709a2607a00b5df33f0235f22ccdd876cee22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 19 21:13:52 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 20 11:55:49 2015 +0000"
      },
      "message": "Optimizing/Thumb2: Improve load/store for large offsets.\n\nThis reduces the boot.oat size on Nexus 5 by 568KiB (0.8%).\n\nAlso change 32-bit ADD/SUB immediate to use the recommended\nencoding T3 when both T3 and T4 are available.\n\nChange-Id: I174382bda2b22da70560b947f5536acf8c1814a9\n"
    },
    {
      "commit": "d2b4ca2d02c86b1ce1826fd2b35ce6c9c58c1ff1",
      "tree": "dab4cdfacd3e7cb529f3b0de931c8a173039571f",
      "parents": [
        "fb11bab9bc96ff05dcb12f43abf58df256b7c7aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 15:13:26 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 14 12:20:59 2015 +0100"
      },
      "message": "Improve Thumb2 bitwise operations.\n\nAllow embedding constants in AND, ORR, EOR. Add ORN to\nassembler, use BIC and ORN for AND and ORR when needed.\n\nChange-Id: I24d69ecc7ce6992b9c5eb7a313ff47a942de9661\n"
    },
    {
      "commit": "73cf0fb75de2a449ce4fe329b5f1fb42eef1372f",
      "tree": "d5b0957414c355254babfcd1a797ce87a0eb85a2",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 30 15:07:22 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 01 10:10:37 2015 +0100"
      },
      "message": "ART: Add 16-bit Thumb2 ROR, NEGS and CMP for high registers.\n\nAlso clean up the usage of set_cc flag. Define a SetCc\nenumeration that specifies whether to set or keep condition\ncodes or whether we don\u0027t care and a 16-bit instruction\nshould be selected if one exists.\n\nThis reduces the size of Nexus 5 boot.oat by 44KiB (when\ncompiled with Optimizing which is not the default yet).\n\nChange-Id: I047072dc197ea678bf2019c01bcb28943fa9b604\n"
    },
    {
      "commit": "c60e1b755c5632dfeb04c333489ede52ee5c945f",
      "tree": "9582a0ffc99e4ad11dcd5d95dd97b09bc6acc5bf",
      "parents": [
        "7b926cdacc2b67241bc9cb5f2d4b04b13ca79d0e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "message": "ART: Use __ANDROID__ instead of HAVE_ANDROID_OS\n\nUse the proper define.\n\nChange-Id: I71e291ac25f5d5f0187ac9b6ef2d6872f19e6085\n"
    },
    {
      "commit": "cf93a5cd9c978f59113d42f9f642fab5e2cc8877",
      "tree": "55162627fcbf2cb7913a735c7ed89e8e4b5e84d7",
      "parents": [
        "db40ea768bd914125c3754dacb9b6f534a2e2399"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 16 11:33:24 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 17 09:43:51 2015 +0100"
      },
      "message": "Revert \"Revert \"ART: Implement literal pool for arm, fix branch fixup.\"\"\n\nThis reverts commit fbeb4aede0ddc5b1e6a5a3a40cc6266fe8518c98.\n\nAdjust block label positions. Bad catch block labels were the\nreason for the revert.\n\nChange-Id: Ia6950d639d46b9da6b07f3ade63ab46d03d63310\n"
    },
    {
      "commit": "fbeb4aede0ddc5b1e6a5a3a40cc6266fe8518c98",
      "tree": "76ab28cf259def4dccec529df217fd760f27d2aa",
      "parents": [
        "f38caa68cce551fb153dff37d01db518e58ed00f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 16 11:32:01 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 16 11:32:01 2015 +0000"
      },
      "message": "Revert \"ART: Implement literal pool for arm, fix branch fixup.\"\n\nThis reverts commit f38caa68cce551fb153dff37d01db518e58ed00f.\n\nChange-Id: Id88b82cc949d288cfcdb3c401b96f884b777fc40\nReason: broke the tests.\n"
    },
    {
      "commit": "f38caa68cce551fb153dff37d01db518e58ed00f",
      "tree": "723612f20666f429b7c67321f0353d57425b1c63",
      "parents": [
        "bd8c725e465cc7f44062745a6f2b73248f5159ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 29 15:50:18 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 15 15:13:28 2015 +0100"
      },
      "message": "ART: Implement literal pool for arm, fix branch fixup.\n\nChange-Id: Iecc91418bb4ee1c957f42fefb737d0ee2ba960e7\n"
    },
    {
      "commit": "d56376cce54e7df976780ecbd03228f60d276433",
      "tree": "5a523ff4a1589a4462207f4c75fad921870a62a2",
      "parents": [
        "aa49c23d47e5fdfcf51380550ee864e9d30d082b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 21 12:32:34 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 22 15:06:45 2015 +0100"
      },
      "message": "Revert \"Revert \"Introduce a NearLabel in thumb2.\"\"\n\nThis reverts commit 1f277e3cef6c33cd35e91123978491d83338d2ad.\n\n- Fix CompareAndBranch to not use cbz/cbnz with high registers.\n- Add a test for CompareAndBranch with the *inc file, as the\n  other assembler test infrastructure does not handle labels.\n\nChange-Id: If552bf1112b96caa3b9bb6c73c4b40bb90a33db7\n"
    },
    {
      "commit": "fd11470897ea356e5870280e4ab38a18dc83b48f",
      "tree": "2afb5b99c8d57027ad7062e6abdf492d8f8f6560",
      "parents": [
        "c9c4232118a7aa517f33d3e26ca80f2e443f1e71"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 13 17:00:41 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 13 17:35:57 2015 -0700"
      },
      "message": "ART: Fix unused return-value in test\n\nCheck the return value of system() call.\n\nChange-Id: I1f5f9621f6a39029b9df5b0d4ab0e230ba6c79a3\n"
    },
    {
      "commit": "3e52aa4d406fe802dabee2a2e7ba8764cc13aaaa",
      "tree": "81b2d22b3fae45a0c92e688a3502335c02397934",
      "parents": [
        "f458ba7d9c04bc8d499532b5470af28db18e4149"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 07:45:18 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 21 12:37:13 2015 +0100"
      },
      "message": "Move GetAndroidToolsDir to common location.\n\nMove the code which looks for the prebuilts directory\nto CommonRuntimeTest and add test for it.\n\nChange-Id: Id804de31c466656957fdd4b6a470f80a00477aed\n"
    },
    {
      "commit": "7b7e524c86a67f7357bbcfd0e7bde07ded50cca2",
      "tree": "24e3b5bb0af0d74f1d80fda69b56c93cb379e088",
      "parents": [
        "a1a0ffb72c4d7170dee9d46f055ca56932eedbae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 02 19:17:11 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 02 19:17:11 2015 -0800"
      },
      "message": "ART: Fix assembler_thumb_test\n\nFix the inconsistent calls. This was bad practice, requiring that\nshape meant arm32 and thumb were not interchangeable.\n\nAlso fix an error in the assembler itself for tst and teq.\n\nChange-Id: I50242801002aa81cc17bfaa53eb8b7c1d9488fbc\n"
    },
    {
      "commit": "52ed9ad728bf03cc996feff6b3874c1c5a3d0a1f",
      "tree": "c9ad42c57337a3f1c7af42b9b6869fa1dbbc6bd5",
      "parents": [
        "b14339904c9cacc4af74260c7325e4eb32947f95"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Sep 05 11:58:09 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Sep 05 12:16:12 2014 -0700"
      },
      "message": "ART: Fix host test failure (assembler_thumb_test).\n\nCheck if \"bin/{as,objcopy,objdump}\" exists in the tools dir we found in \"prebuilts/gcc/linux-x86/arm/\".\nNow there\u0027s an empty tree in platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9,\ncausing assembler_thumb_test to fail.\n\nChange-Id: If6ba4f778b79f95239aa85e54816ab168e7d8940\n"
    },
    {
      "commit": "3c7bb98698f77af10372cf31824d3bb115d9bf0f",
      "tree": "1cd4cc18babfbb16ab908f23929fa88d7678f06b",
      "parents": [
        "98cc1e552c2ccbe5d51bc81d49e79119280f5416"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 23 16:04:16 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 28 15:44:28 2014 +0100"
      },
      "message": "Implement array get and array put in optimizing.\n\nAlso fix a couple of assembler/disassembler issues.\n\nChange-Id: I705c8572988c1a9c4df3172b304678529636d5f6\n"
    },
    {
      "commit": "4470c1d5a94ebedd8e579a212eb4c60da1ae6b24",
      "tree": "b3bcc0e3acbaacff5917ed2b3e6c8e92f5b2049a",
      "parents": [
        "96823a6504d28cfbf2806ab301084291ddd1159e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 21 18:32:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 21 18:35:07 2014 -0700"
      },
      "message": "ART: Increase command buffer size in assembler_thumb_test\n\nChange-Id: I5fe0014a2928772650bdb120a877eb9624bf7651\n"
    },
    {
      "commit": "8baf0d9263f914aee8ca91df92660342ace9e671",
      "tree": "6079edee872b2d7da9237931bb4756b4ddbe268d",
      "parents": [
        "043f89b4e0e761c61350c2e620795826bde8f941"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 11:51:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 11:51:32 2014 +0100"
      },
      "message": "Fix sizeof -\u003e strlen to get the test to run on build servers.\n\nChange-Id: I8501d02a9bc5f84a769a80d46d0ec5754c972e5d\n"
    },
    {
      "commit": "96f89a290eb67d7bf4b1636798fa28df14309cc7",
      "tree": "ca2b484a18107f8253aa7774cde304586a31bc60",
      "parents": [
        "4436e926aa8e64ac7e4c4afb81f2a59b2477045a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 10:57:49 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 09:54:20 2014 +0100"
      },
      "message": "Add assembly operations with constants in optimizing compiler.\n\nChange-Id: I5bcc35ab50d4457186effef5592a75d7f4e5b65f\n"
    },
    {
      "commit": "0bb9ade51635559f991259a7ac90d8570ad886aa",
      "tree": "b8fc0e1a304eeefac2b7d8f46c8ff8aee5b0435e",
      "parents": [
        "fee5586dac3bf22a31dbbffe7b4ca7e978e53185"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 26 17:57:36 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 26 18:14:50 2014 -0700"
      },
      "message": "Fix off-by-one errors in limit checking for ldr/str instructions.\n\nThe LDR/STR encoder in the thumb assembler had an off-by-one\nerror for limit checking for immediates.  This resulted in an\nassertion failure for things like \u0027ldr rx,[ry,#128]\u0027\n\nBug: 15876206\n\nChange-Id: Ic866212e2feae94e0bd4c753724898d84f5cb944\n"
    },
    {
      "commit": "45fdb93f04b981f70f7b6d98949ab3986b7331f8",
      "tree": "8233265f998fdd9d4de38acb5ed56a663b10c26e",
      "parents": [
        "1528b02c4d5241e785bb680f13de70c355e67429"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jun 25 12:37:10 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 26 10:46:19 2014 -0700"
      },
      "message": "Support additional instructions in ARM and thumb assemblers\n\nThis adds the following support for the ARM and thumb assemblers:\n\n1. Shifting by a register.\n2. LDR/STR with a register offset, possibly shifted.\n3. LDR(literal).\n4. STR PC relative.\n\nAlso adds tests for them in the thumb assembler gtest.\n\nChange-Id: Ie467e3c1d06b699cacbdef3482ed9a92e4f1809b\n"
    },
    {
      "commit": "d20ddb22891f083b762a81eb64ec391e0f60b43a",
      "tree": "c56d3f4a05acc1ed0b4eb50fcd54122e834e6a8b",
      "parents": [
        "f58b5d0c5600fda074a373e95716678923134fd8"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 14:16:30 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 14:17:32 2014 -0700"
      },
      "message": "Remove unused variable in assembler test.\n\nThis is flagged as an error when building master, but not others...\n\nChange-Id: Iaea5307b06d8e4fa1a9d1035905fc204eb98559a\n"
    },
    {
      "commit": "c819e0d9485f23a8dcfc94419292dcd053053eb9",
      "tree": "0f5815bd47c472d6bab53d281d771a632486d636",
      "parents": [
        "0eb3e752b65ef908e3790d81fae57cd85a41006b"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 13:58:56 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 13:58:56 2014 -0700"
      },
      "message": "Fix assembler test to use path if it can\u0027t find tools.\n\nThis fixes build breakage.\n\nChange-Id: I8074d47f1c1470cf886d517e9e68a6a6b4330485\n"
    },
    {
      "commit": "65fcc2cf3c5cd97b84330c094908f3a6a7a8d4e7",
      "tree": "fc0ce77d446477be37f0ec8c86d67df4941cac9b",
      "parents": [
        "e3b5cb502371aff7e7b7291facfc27b092e7803e"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Apr 28 13:45:27 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 12:45:20 2014 -0700"
      },
      "message": "Thumb2 assembler for JNI compiler and optimizing compiler\n\nThis provides a programmatic assembler for the thumb2 instruction set for\nARM.  The interface is the same as the ARM assembler and the ARM assembler has\nbeen moved into Arm32Assembler.  The assembler handles most 16 and 32 bit instructions\nand also allows relocations due to branch expansion.  It will also rewrite cbz/cbnz\ninstructions if they go out of range.\n\nIt also changes the JNI compiler to use the thumb2 assembler as opposed\nto forcing it to use ARM32.  The trampoline compiler still uses ARM due to the\nway it returns the address of its generated code.  A trampoline in thumb2 is the\nsame size as that in ARM anyway (8 bytes).\n\nProvides gtest for testing the thumb2 instruction output.  This gtest only runs\non the host as it uses arm-eabi-objdump to disassemble the generated code.  On the\ntarget the output is not checked but the assembler will still be run to perform\nall its checks.\n\nChange-Id: Icd9742b6f13541bec5b23097896727392e3a6fb6\n"
    }
  ]
}
