)]}'
{
  "log": [
    {
      "commit": "952dbb19cd094b8bfb01dbb33e0878db429e499a",
      "tree": "82932c2b00245042e2c129f3d4133f6431657da3",
      "parents": [
        "df638c66d1f385d4e217b2ab22c5e48a7eefdef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 12:01:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:51:52 2016 +0100"
      },
      "message": "Change suspend entrypoint to save all registers.\n\nWe avoid the need to save/restore registers in slow paths\nand get significant code size savings. On Nexus 9, AOSP:\n  - 32-bit boot.oat: -1.4MiB (-1.9%)\n  - 64-bit boot.oat: -2.0MiB (-2.3%)\n  - other 32-bit oat files in dalvik-cache: -200KiB (-1.7%)\n  - other 64-bit oat files in dalvik-cache: -2.3MiB (-2.1%)\n\nTest: Run ART test suite on host and Nexus 9 with gc stress.\nBug: 30212852\nChange-Id: I7015afc1e7d30341618c9200a3dc9ae277afd134\n"
    },
    {
      "commit": "e8e1127da3f154fae8d2eb16a94203544a182159",
      "tree": "930aa5bd3f4e81dcf1b27043844da55a3dcb5cc4",
      "parents": [
        "739dc72773c5dee583a1d322f91b5abd61f9889d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 28 18:08:46 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 12:31:52 2016 +0100"
      },
      "message": "Do checks on the fault address when we think it\u0027s an NPE.\n\nbug:29321958\nChange-Id: I28f4da56eb3e0b48721d3ac41114858bc80daadb\n"
    },
    {
      "commit": "87f3fcbd0db352157fc59148e94647ef21b73bce",
      "tree": "5bdeabb246f5de86704333b3fcbccc6e9146d246",
      "parents": [
        "b94b5706f0b8e2e1c7e1db22274f9f4bae0c4b5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 28 15:52:11 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 21 15:17:38 2016 +0100"
      },
      "message": "Replace String.charAt() with HIR.\n\nReplace String.charAt() with HArrayLength, HBoundsCheck and\nHArrayGet. This allows GVN on the HArrayLength and BCE on\nthe HBoundsCheck as well as using the infrastructure for\nHArrayGet, i.e. better handling of constant indexes than\nthe old intrinsic and using the HArm64IntermediateAddress.\n\nBug: 28330359\nChange-Id: I32bf1da7eeafe82537a60416abf6ac412baa80dc\n"
    },
    {
      "commit": "c7ed09bd5d6f2c7af3bcba1c39b3f9185af68796",
      "tree": "bfad0c9f5236cc4d158bc0c64d5ef645ce09d283",
      "parents": [
        "0f35e0b26d8c7738ca7b284357afa9dafb659d47"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 25 20:08:55 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 29 16:06:14 2016 -0700"
      },
      "message": "ART: Log all monitor operations to systrace\n\nAdd a VLOG option (\"-verbose:systrace-locks\") to log all monitor\noperations to systrace. This requires non-fastpath thread\nentrypoints, and ATRACE tags for locking and unlocking.\n\nDo a bit of cleanup to the entrypoint initialization to share\ncommon setup.\n\nBug: 28423466\n\n(cherry picked from commit fc6898769ae1ef91ec3e41c0a273401213cb82cd)\n\nChange-Id: Ie67e4aa946ec15f8fcf8cb7134c5d3cff0119ab3\n"
    },
    {
      "commit": "1e24b28e89223dc4749a54582e7eaf929ca0cb5f",
      "tree": "d38ec1dcec77c16a51787a1d93c77a9a56114993",
      "parents": [
        "b5a0647c2323246a9328b6eb0123df60e26d4d66",
        "59028d90d51a800bcea8be354d77d7be924da3a0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 11 15:45:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 11 15:45:57 2016 +0000"
      },
      "message": "Merge \"MIPS: Improving art_quick_imt_conflict_trampoline\""
    },
    {
      "commit": "59028d90d51a800bcea8be354d77d7be924da3a0",
      "tree": "7e2f5057e3332661dd815d7f916ddb78c853fe6b",
      "parents": [
        "cf0f8560f41467331427418584687830932e66ed"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Mar 29 18:05:03 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Apr 01 17:13:37 2016 +0200"
      },
      "message": "MIPS: Improving art_quick_imt_conflict_trampoline\n\nThis is fixing stub_test for MIPS32 and MIPS64. This is follow up\nchange for Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7.\n\nChange-Id: I3c53ef690aff49d7cf9ad3de3aaed9a3d2e1c6b9\n"
    },
    {
      "commit": "3bc13817a19e36f3833bb44624ef86800892eaad",
      "tree": "92fcdaedfb24b0692ba9e67632c1de825bd0a06a",
      "parents": [
        "5d87b29339c5301bea0bf2c3f47e520e3d7b0d16"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Mar 22 17:16:05 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Mar 25 15:46:06 2016 +0100"
      },
      "message": "Implement on-stack replacement for MIPS32 and MIPS64\n\nChange-Id: I4e589f0597b597adff95e1289f20deb2eab97e9b\n"
    },
    {
      "commit": "590b1362b64d7feeb688d787c1d140d9b7ca78b1",
      "tree": "38317f89a5b7e7a1016473acde80f7201b5eb209",
      "parents": [
        "459898dc4470559ba1e1d578bc52a914d1f573f5"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Mar 21 14:24:43 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Mar 21 15:36:48 2016 +0100"
      },
      "message": "Suppress MIPS32 assembler warnings\n\nSuppressing \"no .cprestore pseudo-op used in PIC code\".\nSuppressing \"used $at without .set noat\".\nFixing some typos.\n\nChange-Id: I45267890b070cee3dd7f3708cf73e157a08f798e\n"
    },
    {
      "commit": "91cdf71e166630eb5e28e02298b0ba6ed4037553",
      "tree": "ef47c10b5c283fa7ee194db100a18439b7f75ab6",
      "parents": [
        "43bad209f99df82412dadab5e3b735bb12d257ab",
        "10d4c08c0ea9df0a85a11e1c77974df24078c0ec"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 11 21:18:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 21:18:21 2016 +0000"
      },
      "message": "Merge \"Assembly region TLAB allocation fast path for arm.\""
    },
    {
      "commit": "10d4c08c0ea9df0a85a11e1c77974df24078c0ec",
      "tree": "6d56cd6cfdac03d6fb6a1cb66153f2179c858f49",
      "parents": [
        "da11cef6fb6d8a9e08cb445576a50abff8773a25"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Feb 24 12:51:18 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 11 13:16:55 2016 -0800"
      },
      "message": "Assembly region TLAB allocation fast path for arm.\n\nThis is for the CC collector.\n\nShare the common fast path code with the tlab fast path code.\n\nSpeedup (on N5):\n        BinaryTrees:  2291 -\u003e  902 ms (-60%)\n        MemAllocTest: 2137 -\u003e 1845 ms (-14%)\n\nBug: 9986565\nBug: 12687968\n\nChange-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85\n"
    },
    {
      "commit": "cf283daf579e9eda586f312c3fc89444601e2525",
      "tree": "390efcd25be46065f56ce653d86d7b4b5d99e585",
      "parents": [
        "2f6ad55a3bfa16867146233e1eb8b822b1daab4b"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Jan 19 16:45:35 2016 -0800"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Mar 08 10:43:14 2016 -0800"
      },
      "message": "MIPS32: java.lang.Thread, and java.lang.String intrinsics:\n\n- Thread java.lang.Thread.currentThread()\n- int java.lang.String.compareTo(String anotherString)\n- int java.lang.String.indexOf(int ch)\n- int java.lang.String.indexOf(int ch, int fromIndex)\n- java.lang.StringFactory.newStringFromBytes(byte[] data,\n                                             int high,\n                                             int offset,\n                                             int byteCount)\n- java.lang.StringFactory.newStringFromChars(int offset,\n                                             int charCount,\n                                             char[] data)\n- java.lang.StringFactory.newStringFromString(String toCopy)\n\nChange-Id: I96a06ff81e1e3bf18d45760282356854efaf4945\n"
    },
    {
      "commit": "712c59d160325d5759300427ab596cf8321a4156",
      "tree": "260fa7832c6cb60d7f189a7681de41bb88e6b6b0",
      "parents": [
        "8566a91502db625ff9428a3c2418714488ecd5d9"
      ],
      "author": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Dec 02 18:39:01 2015 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Jan 11 16:15:30 2016 +0100"
      },
      "message": "Rosalloc fast path in assembly for MIPS32\n\nTested with GCBench (http://hboehm.info/gc/gc_bench/GCBench.java):\n\nMeasurements (less is better):\n\t11546 -\u003e 10730 [ms] (7.1%)\n\nChange-Id: Ie00442314b18295e68c2e91251e6dcf8c2a8eae2\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "75969963213c39a029e01c3b9440fb388d793afb",
      "tree": "e1468f4bec07e16e1128765a848ae562f603bfc2",
      "parents": [
        "95e54620f1327b2a58a1b28ea542094441e61c84"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 27 12:29:07 2015 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 27 15:06:03 2015 +0100"
      },
      "message": "MIPS32: Move code from RA to T9 in longjump\n\nDo not use the return address. It should not be clobbered as we\nmay need it, e.g., for single-frame deopt.\n\nThis fixes following tests:\n* 449-checker-bce\n* 534-checker-bce-deoptimization\n* 535-deopt-and-inlining\n\nChange-Id: Ic94a2897c7336da094a8937ab1bc4a02a680de53\n"
    },
    {
      "commit": "c26b4512a01d46756683a4f5e186a0b7f397f251",
      "tree": "46cffba4cf8be737dd93fc744652376c25d1ed1b",
      "parents": [
        "46637e6ad75751fa1db283aee160342dc7e2fd0f",
        "0747466fca310eedea5fc49e37d54f240a0b3c0f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 01 12:21:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 12:21:18 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Fix deoptimization with pending exception\"\"\""
    },
    {
      "commit": "5093d3becc16b889807269ca5ef39b31fa97f105",
      "tree": "a12dfc40c00acef101772bf4e52b30f47230a9a0",
      "parents": [
        "e05b8b592ceaab2cd3639785f31763395371ad23",
        "6306921722283d2b0f8aac01883ad83215d6e864"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 26 20:59:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 20:59:00 2015 +0000"
      },
      "message": "Merge \"Add a missing reader barrier in entrypoint stub\""
    },
    {
      "commit": "0747466fca310eedea5fc49e37d54f240a0b3c0f",
      "tree": "6d27922fa35330dd8d863ea56c82c5f04b711822",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:12:33 2015 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 26 16:54:32 2015 +0200"
      },
      "message": "Revert \"Revert \"Fix deoptimization with pending exception\"\"\n\nThis reverts commit 6e2d5747d00697a25251d25dd33b953e54709507.\n\nFixes the deoptimization path from compiled code (generated by the\nOptimizing compiler) by adding wrapper artDeoptimizeFromCompiledCode.\nThis wrapper, called through the matching assembler stub\nart_quick_deoptimize_from_compiled_code, pushes the deoptimization\ncontext just before deoptimizing the stack.\n\nBug: 23371176\nBug: 19944235\nChange-Id: Ia7082656998aebdd0157438f7e6504c120e10d3e\n"
    },
    {
      "commit": "ff73498a5539d87424a964265e43765e788aec44",
      "tree": "3f8a525ef91d2f12e4b2a71c04fc8147a12c12bd",
      "parents": [
        "9dc601eb65da0cd5f53172699dacd6e5dd38ab44"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Aug 24 12:58:55 2015 +0000"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Aug 25 17:17:22 2015 +0200"
      },
      "message": "Revert \"Revert \"[MIPS] Use hard float calling convention for managed code\"\"\n\nThis reverts commit 7fee84c087e0f903e7d43bef180df047db1c8051.\n\nFixed issue with temporary registers on Mips32r6.\n\nChange-Id: I93018927e6a6036cff2d55e6cda66d3212a4316b\n"
    },
    {
      "commit": "6306921722283d2b0f8aac01883ad83215d6e864",
      "tree": "ecd9e47d2095d0b0b518b7c4efc1bd25a527e9e0",
      "parents": [
        "879775bba4903a4d066df3ebeac5cd4faf7da3e4"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Fri Aug 21 15:51:39 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Fri Aug 21 15:51:39 2015 -0700"
      },
      "message": "Add a missing reader barrier in entrypoint stub\n\nAlso refactored some comments.\n\nChange-Id: I5c50f487bf9d71f1be5f6c8814bf039993fc1267\n"
    },
    {
      "commit": "7fee84c087e0f903e7d43bef180df047db1c8051",
      "tree": "c35065aeef23f857563eacd82e55ae47d8ceb67c",
      "parents": [
        "a29449dcf57c57fe0876f51367985477317cc557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 18:39:26 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 18:39:26 2015 +0000"
      },
      "message": "Revert \"[MIPS] Use hard float calling convention for managed code\"\n\nMipsMir2Lir::LockCallTemps() is broken for secondary architecture on aosp_mips64-eng.\n\nThis reverts commit a29449dcf57c57fe0876f51367985477317cc557.\n\nChange-Id: I480ea7569d73aea7894fc0a6dd804b1135286a37\n"
    },
    {
      "commit": "a29449dcf57c57fe0876f51367985477317cc557",
      "tree": "3b077e6f286bfdb48f211e0d0672ff301c5b7006",
      "parents": [
        "28de0f652e32e112edab0e5e7dc779943ae488d5"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Jul 22 11:08:57 2015 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Aug 21 14:40:30 2015 +0200"
      },
      "message": "[MIPS] Use hard float calling convention for managed code\n\nNote that this isn\u0027t o32 ABI. Same set of registers is used for\narguments ($a0-$a3 and $f12-$f15), but we don\u0027t skip registers\nand fp arguments are never passed via core registers.\n\nChange-Id: Ifb883ff6e15758b539137898b49ac2f8ee075f49\n"
    },
    {
      "commit": "1aee900d5a0b3a8d78725a7551356bda0d8554e1",
      "tree": "325cb4ce99cf7824eb56dda1d85f23ad9c74f10a",
      "parents": [
        "a09d5df5128c5c51226028d4a82ed461cf993024"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jul 14 22:31:42 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jul 28 10:45:02 2015 -0700"
      },
      "message": "Add read barrier support to the entrypoints.\n\nAlso remove \"THIS_LOAD_REQUIRES_READ_BARRIER\" since reading\nan ArtMethod* no longer needs read barrier.\n\nstub_test should also work with read barriers now.\n\nChange-Id: I3fba18042de2f867a18dbdc38519986212bd9769\n"
    },
    {
      "commit": "3031c8da0c5009183f770b005c245f9bf2a4d01b",
      "tree": "a622d7da2c553111d413fc6e813f944b0d653ea6",
      "parents": [
        "c6f3439b67962584cfb764133e192c3317f0e1fc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 13 20:11:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 14 11:09:24 2015 -0700"
      },
      "message": "ART: Remove art_quick_invoke_interface_trampoline\n\nThe function has only been used by the IMT conflict resolution\ntrampoline for a while. Merge the two, which saves a branch.\n\nChange-Id: I2f8c9204adf839ddc5459cc04e70d98f858110a1\n"
    },
    {
      "commit": "84bc06e30ba12c3ff07e577c52b63b9df162af7e",
      "tree": "9cd8b9b3ad48f5a02600403d835a5ebf0e4b49e6",
      "parents": [
        "7c0efe186dff1dd457fd1f7932021fa7cfdf9d6f"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Wed Jun 10 16:05:46 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Jun 10 16:16:54 2015 +0200"
      },
      "message": "[MIPS] Fix method tracing for mips64\n\nReg $v0 is being clobbered on using\nSETUP_REFS_ONLY_CALLEE_SAVE_FRAME inside instrumentation_exit()\ntrampoline, when falling through from instrumentation_entry().\n\nTo fix, use $t1 for ArtMethod* fetching inside SETUP_ macros.\n\nAlso fix some unrelated comment errors.\n\nChange-Id: I4ab169f75988c4f0d924416a30196f21c1a043a3\n"
    },
    {
      "commit": "bfa5eb6e8d15ea73a36f8df449630f285a91e995",
      "tree": "de306b9ffb819e628c49f1c24d1f4ee33ad08319",
      "parents": [
        "61d894850cfcbae91ff472a24b5ae9e33394f24c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 29 15:04:41 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 02 11:46:14 2015 -0700"
      },
      "message": "Add heap poisoning support to the entrypoints.\n\nIn preparation for full compiler/managed-code support.\n\nEnable stub_test with heap poisoning.\n\nBug: 12687968\nChange-Id: I79fc54ce6386c0a1eb9621759bb4cc23bc393a75\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "a4e0e67611f54180694e0807d6599c1132269b6c",
      "tree": "558d183391a3d2ebff1e3ab6666bead42105cc26",
      "parents": [
        "b4e2fbbed28c3bcdb8fd0fee5a201ba78e1edf28"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 27 18:31:42 2015 -0700"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Thu May 28 16:20:15 2015 +0200"
      },
      "message": "ART: Add Mips o32 callee-save registers to SaveAll frame\n\nThe floating point registers f20-f31 are callee-save in the Mips\nABI. While the managed code does not touch them, they need to be\nsaved when throwing an exception, so that they will be correctly\nrestored and not smashed.\n\nBug: 21266656\nChange-Id: Ia96d52ce7fb41bf604da1797ce4d7a703e292415\n"
    },
    {
      "commit": "8ea18d0f066f63fa4e5d154f14327468bf288e2b",
      "tree": "a575e8d0f826ab8b3aaae949c22cc6c73ca040fb",
      "parents": [
        "092a5656937a319449346e8c356f3f4c2870d81c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 26 16:29:08 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 27 12:07:34 2015 +0100"
      },
      "message": "Pass the dex method index directly to interface trampoline.\n\nThis avoids computing the dex pc and re-finding the method\nindex again. I have kept the code for kDebugBuild.\n\nChange-Id: Icd60e0deade755e32b54021c0875b1af592b8c3e\n"
    },
    {
      "commit": "7ea6a170486d81b127e69673cd1020c4db628c93",
      "tree": "02a302e1f952490dc3238eb96c103dab0590e8ff",
      "parents": [
        "dc23a3882b82a7a3dd5078cda3f4b4706e172617"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 19 18:58:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 20 11:10:36 2015 +0100"
      },
      "message": "Don\u0027t hardcode the location of the caller.\n\nThis is to avoid shooting ourselves in the foot when\ndealing with inlined frames. Instead, use common methods\nfor fetching the caller and its dex pc.\n\nChange-Id: I3467a7b50cf163022d332e80356f0aab747de252\n"
    },
    {
      "commit": "a3c382738bc54f464a57e2b51b51ad305eb03dd2",
      "tree": "f0438a852e264dae0c46af599c73391affa14742",
      "parents": [
        "3adfc4bbe6c42d574bd2069d8e38a13d5ad98ccf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 28 12:37:09 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 28 12:38:22 2015 +0100"
      },
      "message": "ART: Fix MIPS entrypoint downcall macros.\n\nBroken by not updating the MIPS assembly after rebase of\n    https://android-review.googlesource.com/79174\n\nChange-Id: I6258c254c0652e92357d306640c461d9523da227\n"
    },
    {
      "commit": "848f70a3d73833fc1bf3032a9ff6812e429661d9",
      "tree": "b0349b3a40aab5a915af491b100659a5ca9fbbf6",
      "parents": [
        "d14438f0c5071962be7fab572b54687d32d9d087"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 15 13:49:50 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 27 18:54:52 2015 -0700"
      },
      "message": "Replace String CharArray with internal uint16_t array.\n\nSummary of high level changes:\n  - Adds compiler inliner support to identify string init methods\n  - Adds compiler support (quick \u0026 optimizing) with new invoke code path\n    that calls method off the thread pointer\n  - Adds thread entrypoints for all string init methods\n  - Adds map to verifier to log when receiver of string init has been\n    copied to other registers. used by compiler and interpreter\n\nChange-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01\n"
    },
    {
      "commit": "5ea536aa4a6414db01beaf6f8bd8cb9adc5cfc92",
      "tree": "27b3f1c148744452b26bd4841f0dabe0549c3d86",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 20 20:11:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 24 11:08:46 2015 +0100"
      },
      "message": "Remove ArtMethod* parameter from dex cache entry points.\n\nLoad the ArtMethod* using an optimized stack walk instead.\nThis reduces the size of the generated code.\n\nThree of the entry points are called only from a slow-path\nand the fourth (InitializeTypeAndVerifyAccess) is rare and\nalready slow enough that the one or two extra loads\n(depending on whether we already have the ArtMethod* in a\nregister) are insignificant. And as we\u0027re starting to use\nPC-relative addressing of the dex cache arrays (already\ndone by Quick for the boot image), having the ArtMethod* in\na register becomes less likely anyway.\n\nChange-Id: Ib19b9d204e355e13bf386662a8b158178bf8ad28\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "f96e8bdf47cfcbecd8ad8ebceb765e5a257ca143",
      "tree": "c9794e7f763b40d8d67d8a6e60b65002a2e8b8bd",
      "parents": [
        "d68cef75a2b57b5c5ab33065d567446b4510b143"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Mar 27 15:38:30 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 03:33:52 2015 +0000"
      },
      "message": "Fix 099-vmdebug and 802-deoptimization art tests for Mips.\n\nThere are 2 bugs that are causing these 2 tests to fail the same way.\nThe first one is we should be using $t9 for function calls so $gp can\nbe calculated correctly. The second bug is there can\u0027t be a gap between\nthe quick frame and the callee save frame, otherwise the WalkStack()\nfunction will get confused and crash.\n\nBug: 19003184\nChange-Id: I3c545ce18268deb73150fca2a7d7a798540f1cf2\n"
    },
    {
      "commit": "126d65952a03b3e44d5021208673c01920a982a4",
      "tree": "6d5b3e5e93202bc33e73c1726d8a2ca3913dcbf6",
      "parents": [
        "775f1d4096efce112a3bd1e5897c84f898c5f7ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 14:28:35 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 16:28:18 2015 +0000"
      },
      "message": "Fix generic JNI stubs to not discard the Java native frame.\n\nChange-Id: Ic856b442fdde5ce91673fc5856eb0dfc84c75d28\n"
    },
    {
      "commit": "fa04842818fe2d0086872dea311db14a732d52f0",
      "tree": "b78db37592b811712017bf73cff5a491e2fc1760",
      "parents": [
        "d16d76ac64b1b9ed17e9cc17a6afb85f16ce4b51",
        "c6d86725521841637bdd9564e71be3d9691db20f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 16 20:09:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 16 20:09:14 2015 +0000"
      },
      "message": "Merge \"Fix refs_and_args callee save order for Mips32.\""
    },
    {
      "commit": "8d36591d93920e7b7830c3ffee3759b561f5339e",
      "tree": "3217249ce513848ed93dcec981d6ed4c13c2fc60",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 11:32:32 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 11:32:32 2015 -0800"
      },
      "message": "ART: Use jalr instead of jr for Mips\n\nUse the jalr instruction instead of jr in stubs and compiled code.\n\nChange-Id: Idacc5167a5bb0113dc2e7716e4767e5ed07b5e0b\n"
    },
    {
      "commit": "c6d86725521841637bdd9564e71be3d9691db20f",
      "tree": "052359801333c2973fac4b2f63eccb3977110bd4",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Wed Dec 10 16:15:17 2014 -0800"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Mon Jan 12 16:32:25 2015 -0800"
      },
      "message": "Fix refs_and_args callee save order for Mips32.\n\nThis patch fixes an ART crash while using the soft keyboard.\n\nChange-Id: Ib2d651c460ce2707356986cd733bed23b0cabb21\n"
    },
    {
      "commit": "1cc7dbabd03e0a6c09d68161417a21bd6f9df371",
      "tree": "8557bdff971e366909351af95a7c8ead82792986",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 17 18:43:01 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 29 10:52:02 2014 -0800"
      },
      "message": "ART: Reorder entrypoint argument order\n\nShuffle the ArtMethod* referrer backwards for easier removal.\n\nClean up ARM \u0026 MIPS assembly code.\n\nChange some macros to make future changes easier.\n\nChange-Id: Ie2862b68bd6e519438e83eecd9e1611df51d7945\n"
    },
    {
      "commit": "475cfd8ff9dcc73d1a7502c9310efe0f1a30337f",
      "tree": "42375a128b28bb886955214336f63391dfc41d5c",
      "parents": [
        "3e2f0fc584463e9da1142a5011ac3f7bcf083e0f"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Dec 16 20:15:41 2014 -0800"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Dec 16 20:16:31 2014 -0800"
      },
      "message": "Fix typo bug for Mips32.\n\nChange-Id: I429038ee6748d538fa03da819777f3456a4fd9a5\n"
    },
    {
      "commit": "e34652f15f32666323052a6718a63248244f1e66",
      "tree": "3c326d1eb9303af2ca13720894e04f33d7cc426f",
      "parents": [
        "f610c0597e001cb1043aa4074afe25ae79a800e3"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Nov 04 11:09:36 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 16 08:33:33 2014 -0800"
      },
      "message": "[MIPSR6] Adjust assembly routines for MIPS R6 isa\n\nChange-Id: I771b58b9e8054bb99cd01a7f713ff8e29a9ae5d3\n"
    },
    {
      "commit": "124cd8f768436e082ca0dfed8f1e4f4713220e44",
      "tree": "c81d24102cfc8a0346dc7ed67ace964ebcd6fa8c",
      "parents": [
        "da4b7e8979e9b7de634aecee62da6ce867ccaa8d",
        "735b8559d6dd26c610d4b97d72f25a092d9c8947"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Nov 22 01:32:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 22 01:32:30 2014 +0000"
      },
      "message": "Merge \"Add JNI trampoline for mips32.\""
    },
    {
      "commit": "2d7210188805292e463be4bcf7a133b654d7e0ea",
      "tree": "7705a3bf841ae44b2396728fa22ed0b5dcb44dbf",
      "parents": [
        "e0491682d101c69bf88c3c24a965312129cbfa38"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 11:08:06 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 18 12:27:37 2014 -0800"
      },
      "message": "Change 64 bit ArtMethod fields to be pointer sized\n\nChanged the 64 bit entrypoint and gc map fields in ArtMethod to be\npointer sized. This saves a large amount of memory on 32 bit systems.\nReduces ArtMethod size by 16 bytes on 32 bit.\n\nTotal number of ArtMethod on low memory mako: 169957\nImage size: 49203 methods -\u003e 787248 image size reduction.\nZygote space size: 1070 methods -\u003e 17120 size reduction.\nApp methods: ~120k -\u003e 2 MB savings.\n\nSavings per app on low memory mako: 125K+ per app\n(less active apps -\u003e more image methods per app).\n\nSavings depend on how often the shared methods are on dirty pages vs\nshared.\n\nTODO in another CL, delete gc map field from ArtMethod since we\nshould be able to get it from the Oat method header.\n\nBug: 17643507\n\nChange-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8\n\n(cherry picked from commit e832e64a7e82d7f72aedbd7d798fb929d458ee8f)\n"
    },
    {
      "commit": "735b8559d6dd26c610d4b97d72f25a092d9c8947",
      "tree": "49f4bf27ba2c332b74a70a6c4f3d9938cb07720b",
      "parents": [
        "57b4d1c44e246dfd4aaef2d23b20a696a0c5e57e"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Oct 31 12:21:40 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Oct 31 12:29:40 2014 -0700"
      },
      "message": "Add JNI trampoline for mips32.\n\nThis patch allows the browser to come up.\n\nChange-Id: Icad9da868be76d6a08e615807fad8678ac0a110f\n"
    },
    {
      "commit": "13738bf7c769638b7922cb2477471ad382632bc2",
      "tree": "d01e1f6c8cdd52f00eaa8f8b913b875d73a149a6",
      "parents": [
        "4985fdf030e8e78f1c05266e989534cb26812bff"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Mon Oct 27 14:44:47 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Mon Oct 27 14:48:50 2014 -0700"
      },
      "message": "Add gp initialization to the art_quick_imt_conflict_trampoline() function.\n\nThe gp register is needed by the \"la\" instruction.\n\nChange-Id: I4f2dcddba503f403dd6532d0db65ddd7df1f9626\n"
    },
    {
      "commit": "4af77b7636fe98aae443b46a241fd9a29f16e291",
      "tree": "90abe8a3261ea7bf584d90c903b62fbd58076ee3",
      "parents": [
        "661cb3f65d3d6fd09f4823f4519890646260fbe6"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Wed Oct 22 16:32:28 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Oct 24 20:05:26 2014 -0700"
      },
      "message": "Do not use ld instruction for Mips32.\n\nChange-Id: If577b8011edb583779360934f4e50ff1779e1b70\n"
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "832336b3c9eb892045a8de1bb12c9361112ca3c5",
      "tree": "0e8696869a28ee0dee34d130b586b1bf6f072d6e",
      "parents": [
        "f1f05d303988a5c071c87b760056be8358276c94"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 15:35:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 16:00:31 2014 -0700"
      },
      "message": "Don\u0027t copy fill array data to quick literal pool.\n\nCurrently quick copies the fill array data from the dex file to the literal\npool. It then has to go through hoops to pass this PC relative address down\nto out-of-line code. Instead, pass the offset of the table to the out-of-line\ncode and use the CodeItem data associated with the ArtMethod. This reduces\nthe size of oat code while greatly simplifying it.\nUnify the FillArrayData implementation in quick, portable and the interpreters.\n\nChange-Id: I9c6971cf46285fbf197856627368c0185fdc98ca\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    },
    {
      "commit": "c3d131e1ec030b4ff5c44fe2a45d5fb45b3295af",
      "tree": "721a028c24936097b32bbc9448035901d3429000",
      "parents": [
        "81457a3cd8fca14396b5785a4e4c8070c259b07a"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jul 16 17:32:41 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jul 16 20:22:53 2014 -0700"
      },
      "message": "Fix test 304-method-tracing failure for Mips.\n\nChange-Id: Id5ce9fd3c880dd568b11a1deea7e42ea587934ba\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "adab3a28f6586a551634f4ff51ae4212175c45ad",
      "tree": "1980be13c9cde9245f03a438da4bea0c74628f0a",
      "parents": [
        "141671dab1b4448e9e0b6dde368b288202192edb",
        "b264937893fd12bce84681a6d9da6de99ebe6aa4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 06:23:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 05 06:23:08 2014 +0000"
      },
      "message": "Merge \"Fix reflection_test failures.\""
    },
    {
      "commit": "b264937893fd12bce84681a6d9da6de99ebe6aa4",
      "tree": "cbd0fe142a9a6dbaa59883809cf252261692b614",
      "parents": [
        "dfd301f19800a4f168283cf2d0b15b2c09071955"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Mon Jun 02 17:45:54 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Tue Jun 03 17:49:20 2014 -0700"
      },
      "message": "Fix reflection_test failures.\n\nThis change also allows the Mips emulator to boot in interpreter mode.\n\nChange-Id: Id1d5d65df79f65a747d37ddce6dd79906d1f4fcf\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "748dd957eecbce2f379a3182ce95c19be308a54e",
      "tree": "eeecdd8b25913ccc8b11dac550a8b3c9e57e5dd7",
      "parents": [
        "52925af1e3136bcf68bc5754fbfa407950235217"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Fri May 23 10:47:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 23 12:20:09 2014 -0700"
      },
      "message": "[MIPS] Remove warnings about use of at register\n\nAlso, don\u0027t restore k0 and k1 as part of long jump as they are reserved for\nkernel usage.\n\nChange-Id: I4eec9eb5d21de96ca79f2cef9407a0e19c9c2178\n"
    },
    {
      "commit": "5c1e4352614d61fed6868567e58b96682828cb4d",
      "tree": "c723c7883f80083b885c590a7fc514684667c1a3",
      "parents": [
        "7f40b111755e300ddddd6839425337fe3af8d4e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 21 19:28:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 16:13:27 2014 -0700"
      },
      "message": "Add \"arch_test\" gtest for assembly stub constants, add some ARM64 assembly code\n\nAdd a test that (1) checks all callee-save method frame sizes for\nall architectures, (2) checks thread offsets for the runtime\narchitecture and (3) checks callee-save method offsets for the\nruntime architecture.\n\nThe \"asm_support_XXX.h\" files now only contain definitions that are\ncommon between all architectures. Architecture-specific definitions\n(i.e., special registers names) have been pushed into the corresponding\n.S file. This change was required to be able to undefine definitions\nin the test, so that multiple tests can be written in one file.\n\nTest (1) above is in a sense two-stage. The arch_test gtest compares\nconstants (if it finds them) against the frame size as reported by\nthe ArtMethods created by the Runtime. This works for all architectures\nas we can provide the instruction-set to CreateCalleeSaveMethod. The\nsecond stage of the \"test\" are preprocessor tests with \"#error\" in the\ncase that the constants are not the expected value.\n\nOptimally I\u0027d like to change that to an actual runtime test exercising\nthe assembly code, which would also allow to check whether the right\nregisters are stored.\n\nAlso added missing assembly code for ARM64 for the callee-save macros.\n\nAlso fix X86_64 compilation for Clang 3.5.\n\nChange-Id: I018e6433dffd3d31ba3bfcd75661653f4c7b6552\n"
    },
    {
      "commit": "2da882315a61072664f7ce3c212307342e907207",
      "tree": "67d777be044f5b60e2f13ab7968b63c581904ea9",
      "parents": [
        "762d4e5b9e777ae64c4ba581af9c84b78a5e96a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 12:26:20 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 23:27:12 2014 +0000"
      },
      "message": "Initial changes towards Generic JNI option\n\nSome initial changes that lead to an UNIMPLEMENTED. Works\nby not compiling for JNI right now and tracking native methods\nwhich have neither quick nor portable code. Uses new trampoline.\n\nChange-Id: I5448654044eb2717752fd7359f4ef8bd5c17be6e\n"
    },
    {
      "commit": "86bcdc251f5ae22fcedd18c096ea538b7dbfa8cb",
      "tree": "2a2b5872f259b9f003065293d8f713a19b8fca2e",
      "parents": [
        "19c0b23fca2bf30172b3437af84d0426376358f1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 21 22:06:38 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 21 22:06:38 2014 -0800"
      },
      "message": "Make MIPS assembly labels local.\n\nAvoids the symbols being part of the symbol file and confusing tools like gdb.\n\nChange-Id: If8b24278fafcae5466debc8789e3e2935cf173f6\n"
    },
    {
      "commit": "0177e53ea521ad58b70c305700dab32f1ac773b7",
      "tree": "db15627a19a04634cf84cecd15b813319d80d225",
      "parents": [
        "abaf927f29f6feceb3df3e6ced7d01970ba0dbe9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 11 16:30:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 11 17:02:21 2014 -0800"
      },
      "message": "Work in the direction of hard float quick ABIs.\n\nPass a shorty to ArtMethod::Invoke so that register setup can use it.\nDocument x86-64 ABI.\nAdd extra debug output for one JNI native method registration fails, namely a\ndump of the Class and its dex file\u0027s location.\nAdd hack to get testing of OatMethod\u0027s without GC maps working in 64bit.\n\nChange-Id: Ic06b68e18eac33637df2caf5e7e775ff95ae70f3\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "7410f29b4dae223befac036ea567d7f33351dad1",
      "tree": "895d3f03073fca0ca6715bcb523816fa6f03cc0a",
      "parents": [
        "f3bfe67040b46d926d05009e914195e78c5d8685"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 24 13:17:35 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 25 11:12:58 2013 -0800"
      },
      "message": "Fix dumpsys meminfo \u003cpid\u003e.\n\nAdded a case for BumpPointerSpaces. Confirmed working non-debug.\nShould also work in debug builds.\n\nBug: 11830794\nChange-Id: I12053ff16eec403dcd4a780e13095e3212a77132\n"
    },
    {
      "commit": "cbb2d20bea2861f244da2e2318d8c088300a3710",
      "tree": "9735d496716cf165ea0ee2d7e2f62d723ffc7734",
      "parents": [
        "d31fb9718a6180304cd951619dc36be8e090a641"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 14 17:45:16 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 11:14:11 2013 -0800"
      },
      "message": "Refactor allocation entrypoints.\n\nAdds support for switching entrypoints during runtime. Enables\naddition of new allocators with out requiring significant copy\npaste. Slight speedup on ritzperf probably due to more inlining.\n\nTODO: Ensuring that the entire allocation path is inlined so\nthat the switch statement in the allocation code is optimized\nout.\n\nRosalloc measurements:\n4583\n4453\n4439\n4434\n4751\n\nAfter change:\n4184\n4287\n4131\n4335\n4097\n\nChange-Id: I1352a3cbcdf6dae93921582726324d91312df5c9\n"
    },
    {
      "commit": "bbb32c277b800a8ee378c16a3645ab6d4d19aef1",
      "tree": "87d7d73f46e0f3bc09006ad2b06ef3770846a952",
      "parents": [
        "ce90ec44861977372aeac550ed6c878c908bd774"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Nov 05 18:25:18 2013 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Nov 06 14:20:09 2013 -0800"
      },
      "message": "Add .cfi_restore for assembly functions\n\nBug: 11256318\n\nThis adds .cfi_restore directives to the assembly language functions\nfor ARM, MIPS and x86.\n\nChange-Id: Ic5a80e190aa6cf2d2fcfaecec14de03221ff386b\n"
    },
    {
      "commit": "88474b416eb257078e590bf9bc7957cee604a186",
      "tree": "7c59aa370bec9b0f2d37cb7a96d3b2effb3d92ce",
      "parents": [
        "9780099e445884d8bc9444c8c1261b02d80a26c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 23 16:24:40 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 29 12:01:28 2013 -0700"
      },
      "message": "Implement Interface Method Tables (IMT).\n\nChange-Id: Idf7fe85e1293453a8ad862ff2380dcd5db4e3a39\n"
    },
    {
      "commit": "1984152ac92aad244ae15184d12f9ceade686b7b",
      "tree": "ab072cbc867d09b4f84cd8e80c336d36e7f06752",
      "parents": [
        "a8d24bf578a1022ff14f89f650074dc39b9667fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 22 11:29:00 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 22 14:40:49 2013 -0700"
      },
      "message": "Add missing callee save restore to quick entrypoints.\n\nAdded callee save restoration to art_quick_proxy_invoke_handler,\nart_quick_resolution_trampoline, art_quick_to_interpreter_bridge.\n\nBug: 8981901\n\nChange-Id: Iaa5bf862834b49cc48bce4f4ffa34a6797024e6d\n"
    },
    {
      "commit": "2a6c7b7c21adcd4493542604305585b852ccf554",
      "tree": "233e08d8d022536d02c136e41c23b2fabf645d72",
      "parents": [
        "dd1b9a2be0dac835c6acbcb287ce3051cead755e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 16 11:16:33 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 16 12:01:31 2013 -0700"
      },
      "message": "Restore callee save registers.\n\nThe callee saves weren\u0027t all being restored as an optimiation, but\nthis breaks compaction if register promotion is enabled. The reason\nfor this is that these registers may contain references which the\nGC will update.\n\nChange-Id: I810f56b4ed1f92c632155e30c0838269cb95f3c5\n"
    },
    {
      "commit": "6bcd163d322b867578fbcfe60e4e3b247c42974b",
      "tree": "50ca85d5de030970aaced699fada2558d7f8593f",
      "parents": [
        "e73fadc7fd4082bbaed8b985dd86a794c7189f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 18:50:47 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 18:50:47 2013 -0700"
      },
      "message": "Fix exception throwing in monitor-enter for MIPS.\n\nNeed to deliver pending exception.\n\nChange-Id: I1bceb1b0d866acc7b3190e7c661993ad43fc1769\n"
    },
    {
      "commit": "a9a8254c920ce8e22210abfc16c9842ce0aea28f",
      "tree": "56614ee997940e8e3b88fef43b890e8a33e78112",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 04 11:17:26 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 15:54:54 2013 -0700"
      },
      "message": "Improve quick codegen for aput-object.\n\n1) don\u0027t type check known null.\n2) if we know types in verify don\u0027t check at runtime.\n3) if we\u0027re runtime checking then move all the code out-of-line.\n\nAlso, don\u0027t set up a callee-save frame for check-cast, do an instance-of test\nthen throw an exception if that fails.\nTidy quick entry point of Ldivmod to Lmod which it is on x86 and mips.\nFix monitor-enter/exit NPE for MIPS.\nFix benign bug in mirror::Class::CannotBeAssignedFromOtherTypes, a byte[]\ncannot be assigned to from other types.\n\nChange-Id: I9cb3859ec70cca71ed79331ec8df5bec969d6745\n"
    },
    {
      "commit": "65d1b22d0b02fb0111f69013163c8170e68392f1",
      "tree": "7a031e64179ef59f7254be703a2e086b905528a1",
      "parents": [
        "d91d6d6a80748f277fd938a412211e5af28913b1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "message": "MIPS fix.\n\nBug 10094803.\nResolution stub needs to set $t9 to ensure the global pointer is calculated\ncorrectly.\nFix copy-paste error in resolution stub in function being invoked.\n\nChange-Id: I330b3052f87f47c10cbde2f7e6b271664185d7b0\n"
    },
    {
      "commit": "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5",
      "tree": "5298ccd9c1f1f6b329c0cb6cefac6a8df43dd633",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 12 21:33:12 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 25 20:28:49 2013 -0700"
      },
      "message": "Split the allocation path into \u0027instrumented\u0027 and \u0027uninstrumented\u0027\nones.\n\nThe instrumented path is equivalent to the existing allocation path\nthat checks for three instrumentation mechanisms (the debugger\nallocation tracking, the runtime allocation stats collection, and\nvalgrind) for every allocation. The uinstrumented path does not\nperform these checks. We use the uninstrumented path by default and\nenable the instrumented path only when any of the three mechanisms is\nenabled. The uninstrumented version of Heap::AllocObject() is inlined.\n\nThis change improves the Ritz MemAllocTest by ~4% on Nexus 4 and ~3%\non Host/x86.\n\nBug: 9986565\nChange-Id: I3e68dfff6789d77bbdcea98457b694e1b5fcef5f\n"
    },
    {
      "commit": "468532ea115657709bc32ee498e701a4c71762d4",
      "tree": "4f6bd555afe2333df2e748eff72d8e1d23e8ce86",
      "parents": [
        "f981da1d60864a730f744ef2cc3a19391c8303f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 05 10:56:33 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 12 06:11:35 2013 +0000"
      },
      "message": "Entry point clean up.\n\nCreate set of entry points needed for image methods to avoid fix-up at load time:\n - interpreter - bridge to interpreter, bridge to compiled code\n - jni - dlsym lookup\n - quick - resolution and bridge to interpreter\n - portable - resolution and bridge to interpreter\n\nFix JNI work around to use JNI work around argument rewriting code that\u0027d been\naccidentally disabled.\nRemove abstact method error stub, use interpreter bridge instead.\nConsolidate trampoline (previously stub) generation in generic helper.\nSimplify trampolines to jump directly into assembly code, keeps stack crawlable.\nDex: replace use of int with ThreadOffset for values that are thread offsets.\nTidy entry point routines between interpreter, jni, quick and portable.\n\nChange-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e\n(cherry picked from commit 848871b4d8481229c32e0d048a9856e5a9a17ef9)"
    },
    {
      "commit": "7655f29fabc0a12765de828914a18314382e5a35",
      "tree": "219f2df20cf7f053a73a345ae20e131a73759c79",
      "parents": [
        "1a8080d4c2e1772cfcc5e9d6587bc63bba3945d9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 11:07:13 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 30 16:00:24 2013 -0700"
      },
      "message": "Portable refactorings.\n\nSeparate quick from portable entrypoints.\nMove architectural dependencies into arch.\n\nChange-Id: I9adbc0a9782e2959fdc3308215f01e3107632b7c\n"
    },
    {
      "commit": "166db04e259ca51838c311891598664deeed85ad",
      "tree": "5ffa63c1b3bf58e92be2890c54f0ba6fdec2059e",
      "parents": [
        "d41119e863a9f9c5809b7732d30870ffd237b60c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 26 12:05:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 09:52:11 2013 -0700"
      },
      "message": "Move assembler out of runtime into compiler/utils.\n\nOther directory layout bits of clean up. There is still work to separate quick\nand portable in some files (e.g. argument visitor, proxy..).\n\nChange-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "0aba0ba155bef7346bde19e53581200b89ae8a7a",
      "tree": "6590f8a50bde7c30b57f1bb0ae67c6d88cea8116",
      "parents": [
        "515661b14b60ab9684efa1ab1d5124934406094e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 03 14:49:28 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 14:43:24 2013 -0700"
      },
      "message": "Created compiled stubs in image.\n\nSaves class linker from having to set code pointers when loading\nfrom an image. Added stubs for quick and portable resolution\ntrampolines, and interpreter-to-interpreter and interpreter-to-quick\nentry points. Also added sizing stats output for oat writer.\n\nChange-Id: I3905fae81047742c23d1cf0ca001db798db971b1\n"
    },
    {
      "commit": "e3cd2f0e3c3d976ae9c65c8a731003a5aaf71986",
      "tree": "e6f2bd0e62c7bd72753499140a854a1c4e5a976a",
      "parents": [
        "1d9314c989114f330297d52dae3fe0cd4848b183"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 24 15:32:56 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 24 18:19:28 2013 -0700"
      },
      "message": "Enable devirtualization for abstract and sub-class methods.\n\nIf we know the type of a receiver in the verifier we record devirtualization\ndata. Currently we only use this data to avoid virtual method dispatch when\nwe know the receiver of a method isn\u0027t a sub-class. This change allows\ndevirtualization of virtual and interface methods when we know the receiver\u0027s\ntype and the method the we\u0027d find via dispatch is either known within boot or\nhas a reference from the current dex file.\n\nPass the receiver through to the method resolution trampoline as\ndevirtualization may mean the dex method index needs to be made more accurate\nfor the receiver.\n\nTidy up method devirtualization and related statistics.\n\nPush the devirtualization map lookup into a less common case to avoid\ntaking its lock.\n\nMake MethodReference a struct rather than a typedef of a pair, so the members\ncan have more meaningful names than first and second.\n\nRough statistics show that we devirtualize using this change around 2.5% of\nthe time, whilst some apps like GMS core devirtualize over 3.4% of the time.\n\nChange-Id: Ieed3471dbedfc4cc881d652631b67176bb37d394\n"
    },
    {
      "commit": "1f3bc2f0f9366594379249027622ab63673b0d3b",
      "tree": "473b78adefbb64038cf897e2500982a964c5fe14",
      "parents": [
        "88fc036842eb3c48acd5d3b01e75b3012c996d90"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 30 15:17:19 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 30 15:23:06 2013 -0700"
      },
      "message": "Fix MIPS jni stub and save gp as part of ref only saves.\n\nFor the jni stub, the code pointer move can\u0027t be in the delay slot\nbecause it jumps to the wrong place.\n\nThe gp register needs to be saved in the ref only frame in case an\nexception needs to be delivered afterwards.\n\nChange-Id: I71fb13e0e268aeaf50e8f1c093eb3262ea88cee8\n"
    },
    {
      "commit": "79fe539587d4c09244172d0168eeed0ec9770466",
      "tree": "4fb8fbd03727a74acb4dfde7e969adf32ee32750",
      "parents": [
        "09b55e1df3b0bcecee25882e45e882887cc8654f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 18:41:58 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 14:50:52 2013 -0700"
      },
      "message": "Removing remaining compiled stubs from image.\n\nAbstract method error stub and jni dlsym lookup stubs are gone.\nAfter this change, the image no longer needs to be executable.\n\nChange-Id: Ic75d72bf7e76e3b8ecc596e82af68ab592dde15e\n"
    },
    {
      "commit": "58df32711162823647356afe25ae2cde04133563",
      "tree": "df1b2b43b90f4861b475f1452b175353a56ec3d7",
      "parents": [
        "ede1807e3481a6937416964bb7556364f2d428e1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 22 15:28:53 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 23 16:34:16 2013 -0700"
      },
      "message": "Removed compiled resolution trampoline.\n\nCreated assembly versions of resolution trampoline for portable and\nquick. Removed compiled version from the image.\n\nChange-Id: I183e110c4e102fb45ce6e7f4e855f8bed7986251\n"
    },
    {
      "commit": "14dd5a82ad85a28612bf86e755ff929d767cea4c",
      "tree": "59643b02b8931887e6b00589e41af137ee13a149",
      "parents": [
        "4b4d711852982716ac478288f210bb2a2f504589"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 11 10:23:36 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 11 11:22:36 2013 -0700"
      },
      "message": "Fix exception caught listeners and frame type for deopt.\n\nChange-Id: I5792ebe9a7772d068b6ec556b4fc27ddd44d7ca1\n"
    },
    {
      "commit": "62d6c772205b8859f0ebf7ad105402ec4c3e2e01",
      "tree": "e2f2ba6d71ed5a39c9f6909e3f7c08e998053315",
      "parents": [
        "c9b17c7ee96cd04fac9048aab624ed554fe260bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 08:32:07 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 08 14:24:13 2013 -0700"
      },
      "message": "Interpreter entries and instrumentation as a listener.\n\nMake the instrumentation responsible for whether we want method entry/exit\nstubs, and allow it to use interpreter entry stubs when instruction by\ninstruction instrumentation is required. Improve deoptimization so more JDWP\ntest cases are passing.\n\nRefactor exception debug posting, in particular improve reporting in the\ninterpreter. Improve class linker exception throwing so that broken dex files\nare more likely to be reported. Fixes the performance issue Bug: 8410519.\n\nFix some error reporting lock level errors for the large object space. Make\nfast object verification faster.\n\nAdd some debug mode robustness to finding dex PCs in GC maps.\n\nAdd printf attributes to JniAbortF and fix errors.\n\nExpand run-test 044 to test return behaviors and fix issues with not throwing\nappropriate exceptions for proxies.\n\nEnsure causes are reported with a class linker NoClassDefFoundError and JNI\nNoSuchFieldError.\n\nRemove unused debugMe and updateDebuggerFromCode.\n\nThere\u0027s a minor sizing tweak to the arg array builder, and an extra reference\narray check in the interpreter.\n\nSome clean-up of trace code.\n\nFix reg type cache destructor if it is called after the reg type cache is\nshutdown (as is the case in oatdump).\n\nChange-Id: I6519c7b35df77f978d011999354c864f4918e8ce\n"
    },
    {
      "commit": "5fa60c3db4208df407113b5a69d295a9c93d53b1",
      "tree": "b56704a7f97cb524c2cf269700fabcae25bf0f08",
      "parents": [
        "a966e18b402b0568fc556c38d7ef2e7e8df943a2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 04 17:57:01 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 05 11:01:06 2013 -0700"
      },
      "message": "Remove use of compiled proxy stub from portable.\n\nARM implementation is tested, but x86 and MIPS are not.\n\nChange-Id: I497d650c55fe7fd4ea24d283c8d8ee99b1456610\n"
    },
    {
      "commit": "4aac9e12b33bdefaedcfbeabf479e27b68ac2a85",
      "tree": "7128d1856fd40b54c94e6a46f501f197a321316a",
      "parents": [
        "bf393efe476801b7f27fe6aa47691e3305552e9e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 23:43:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 23:43:19 2013 -0700"
      },
      "message": "Fix typo in runtime_support_mips.S causing build error with jb-mr2 toolchain\n\nChange-Id: Ic8efd43b0232a04de9944eecba8a8b8e981f6768\n"
    },
    {
      "commit": "6474d190d5604898354ebf767f1944b6e3e9b445",
      "tree": "ac4be675c62fd8129fe85f740dcd2e3bfee424e2",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 14:08:09 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 16:03:53 2013 -0700"
      },
      "message": "Remove use of compiled invoke stubs from portable.\n\nNow the invoke stubs can be safely removed. Tested and working on ARM,\nbasic testing done on x86/MIPS, but portable is currently broken for them\neven without the change.\n\nChange-Id: Ib73f2b7aa9d81f5f0e1e817d16b9bec464c5a5aa\n"
    },
    {
      "commit": "19ca8cf52b9f825c48e7a52da6f25af4d97a263d",
      "tree": "c09102ff8642ea2de05cf54dbec2a4ad44b4c675",
      "parents": [
        "ed115647f6ae7cfb6c2c22a7aea33b5802b57a86"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 18:16:51 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 18:19:39 2013 -0700"
      },
      "message": "Fix MIPS invoke stub.\n\nFloating point result pointer could be unaligned, causing a segfault\nif stored as a double.\n\nChange-Id: I6ed2e2e9ca339d948f81fac82c7fe63c86d5d8b9\n"
    },
    {
      "commit": "5d9173014c1ca09f7249a6b07629aa37778b5f8f",
      "tree": "80543dbe9af6795212373bb12532b638ff3b22f3",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 27 17:57:33 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 14:18:28 2013 -0700"
      },
      "message": "Changes to remove need for compiled invoke stubs for quick.\n\nARM, x86, and MIPS implementation complete, though MIPS is untested.\n\nThe ArgArray is changed to be a uint32_t array instead of a JValue array.\nAlso, a separate result for float/double was needed for x86/MIPS. The invoke\nstubs are currently still there, but only used for portable.\n\nChange-Id: I0647f8d5d420cea61370e662e85bdc0c13b5e378\n"
    },
    {
      "commit": "d4c3f7d4e850049b3c1019e451b18b05443b0f28",
      "tree": "fd8e3c5670e5f93c0c4a693d580571c60009ea96",
      "parents": [
        "aeeada47ecd9c6a7f5ea17bb1921d2fdbd394df9"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 14 14:14:44 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 14 14:14:44 2013 -0800"
      },
      "message": "Add cfi debug info for MIPS.\n\nAlso fix cfi for arm proxies.\n\nChange-Id: Iafeb6cfa93576623c7c9081bbc2a9bc6c50c34e2\n"
    },
    {
      "commit": "8dbb708c7dc05c786329eb5c3fff3194ab6472ac",
      "tree": "1374ac8244bb13612e027de23516ecddfb2bba3c",
      "parents": [
        "cc07edb6bb274593c687188c99015c30dd73acae"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Jan 25 20:31:17 2013 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 06 19:14:06 2013 -0800"
      },
      "message": "Rename run-time functions to distinguish art_quick_[name] vs art_portable_[name].\n\nWe have two different sets of run-time functions:\n(1) the one used by quick compiler, and\n(2) the one used by portable compiler.\n\nPreviosuly, the one used by quick compiler is placed in ``extern\n\"C\"\u0027\u0027, and the one used by portable compiler is placed in ``namespace\nart\u0027\u0027.  That\u0027s why we can link them together in the past.  From the\npoint of view of the linker, they had different names:\n\n(1) Quick RT: art_set32_static_from_code\n(2) LLVM RT: _ZN3art27art_set32_static_from_codeEjPNS_14AbstractMethodEi\n\nPreviously for portable, ExtractCodeAndPrelink would have translated\nthe art_module.ll names referenced by portable code at compile time to\npoint to a runtime table populated with the mangled names.\n\nHowever, when using MCLinker linker to link the object images\ngenerated by the portable compiler, the linker will only see the\nunmangled names. So now the have to be unique between quick and\nportable, so we\u0027ve adopted the naming convention of:\n\n(1) Quick RT: art_quick_set32_static_from_code\n(2) LLVM RT: art_portable_set32_static_from_code\n\nChange-Id: Id5bb9f8f1574433ada6b1d6734f509cca26b98a5\n"
    },
    {
      "commit": "7db619bb2a4e01e8532a04b613745d4926b205d7",
      "tree": "e4385b645ba1772ead9015718c4fcd52480d3fec",
      "parents": [
        "09846c9ebb1f507427a37ff7394f2e4db9f69ebc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 16 18:35:48 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 17 10:18:02 2013 -0800"
      },
      "message": "Enter interpreter stub.\n\nUntested code that when set as the code for a AbstractMethod* will force the\nnext invocation of the Method to transition into the interpreter.\n\nChange-Id: I557bca3a2caf4a78551b39aa5ac4ffb4c486105b\n"
    },
    {
      "commit": "af6e67a4816d2593586115b89faa659225363246",
      "tree": "e3b330d6ed994f82972da4e5b8c3d06be2c66eae",
      "parents": [
        "a6f3aaf8ca5385d870c35d1555b7787d56a70c95"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 16 08:38:37 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 16 15:37:56 2013 -0800"
      },
      "message": "Further proxy refactorings.\n\nFactor the crawling of the quick stack arguments into a common visitor.\nFactor the proxy invocation dispatch into common runtime support code,\nfix numerous bugs relating to GC in the LLVM runtime support with this.\nClean up BoxPrimitive to not use an in argument as an out.\n\nChange-Id: I7b12c8d88d5083614e480b8fb1d2f2ef7c0a51b7\n"
    },
    {
      "commit": "12051ea86ec27703b07b3d5c2cd4604b20f71810",
      "tree": "6e3b17648656e8b13ee65dfcd8b04c7b7f0523f4",
      "parents": [
        "16848f6c5c4d8394d491e887d7d805beddf173ad"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 11:24:31 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 12:01:07 2013 -0800"
      },
      "message": "Added MIPS instrumentation support.\n\nTraceview works on MIPS, but deoptimization is untested.\n\nChange-Id: I8b8afc8003f02965be8b3e0beca57416142c5725\n"
    },
    {
      "commit": "725a957985171d712d5c048cc3d00ff14968784b",
      "tree": "3bd4b161268ecd477aa471665316fb27a3dda145",
      "parents": [
        "35883cc623fdf475a4ead1dafcba9e9becc1ed11"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 13 18:20:12 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 14 11:42:33 2012 -0800"
      },
      "message": "Pulled out instrumentation into its own class separate from trace.\n\nThis is in preparation for Ian\u0027s debugger changes. The instrumentation\nstill needs support for debugging, which I\u0027ll add later.\n\nChange-Id: I29ce0af1ff2eaec8f6d2f54963263381363ebf72\n"
    },
    {
      "commit": "8161c0336b97e11e02c000af357f8f40de2e23e4",
      "tree": "cc5dafd36fefd9ec71ced5b2af36955053b450f3",
      "parents": [
        "72891f319f83eca0680a9aeb1445dddd40dec99b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 31 15:50:00 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 31 16:24:36 2012 -0700"
      },
      "message": "More MIPS fixes. The vm-tests and oat tests all work on the emulator.\n\n- Changed the base address of the art image for MIPS to allow enough\n  space for CTS to run on the target.\n- Fixed exception delivery to jump without linking, and to preserve the\n  value of $gp.\n- Added dumping of /proc/self/maps whenever mmap fails, and cleaned up\n  other debugging output (not MIPS related).\n\nChange-Id: I4e92e992ee6a6167e901db8ad90a6062bbc5168a\n"
    },
    {
      "commit": "30a3317577d84feafa859b3e39d1545a995f0b7c",
      "tree": "b102c00c0e2fa5601b0a7021522121d087569964",
      "parents": [
        "63af6361337cc9b5c75ae55405b45d770c5a3b08"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 22 18:16:22 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 22 18:16:22 2012 -0700"
      },
      "message": "More MIPS fixes. Many run-test tests pass.\n\nRun-test tests 001-043 work, including 003-omnibus-opcodes. 044 is\nproxy, which is still broken.\n\nChanges made:\n- Fixed argument marshalling of FP values for calls to helper functions\n  in the compiler.\n- Fixed CheckCast compilation\u0027s mistaken use of rARG0 instead of rRET0.\n- Fixed conversion calls to marshall FP arguments properly.\n- Created named values for FP args, though they differ in MIPS only.\n- Fixed assembly to always use T9 to hold code pointer to jump to.\n- Fixed proxy offset values.\n\nChange-Id: If121db322683a307e5a1016210f4f73283aa817c\n"
    },
    {
      "commit": "fc6a30e2fa8f0d44e6c95bbeb5deca4b499f67ce",
      "tree": "71bc7549ac42799a5625bfb9c228c499e6ceb4b4",
      "parents": [
        "2e92fd62b8b1e3a14be4642d4e77a022d863a94e"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 18 18:24:15 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 18 18:24:15 2012 -0700"
      },
      "message": "More MIPS fixes. Most basic tests pass.\n\nIntMath works now. The only basic tests that aren\u0027t working are\nReferenceMap and StackWalk.\n\nIn this change:\n- Fixed argument passing for compare float/double.\n- Set method stubs for long multiply/divide/remainder.\n- Store gp value on stack and reload after function call to preserve\n  value for exception delivery.\n- Fixed argument passing to artThrowStackOverflowFromCode.\n- Fixed assembly for unsigned shift right long.\n\nChange-Id: I6e77454905c3620c9cfd1c089200a8dbe530df2e\n"
    },
    {
      "commit": "4eb68edeecc4d6641bcca2a40620631335e7cadc",
      "tree": "7b627587f60f8cef5a76db2a361ee4ba9a4042e7",
      "parents": [
        "99bc2176824556730c948f17cbdb7993b17fcb6e"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 17 16:41:07 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 18 12:13:33 2012 -0700"
      },
      "message": "More MIPS fixes. Fibonacci and ExceptionTest work.\n\nIn this change:\n- Fixed compilation of div-int and instance-of\n- Fixed VERIFY_OBJECT to compile again\n- Added stack space for passing extra function arguments for\n  REF_ONLY_CALLEE_SAVE functions\n- Fixed AbstractMethodErrorStub to match stack layout\n\nChange-Id: I3d4540a3285a0acf49522ffc6f01d04b888bb8ef\n"
    },
    {
      "commit": "fa147e22a73c6df166b08a2f71f9c9b52b09d17c",
      "tree": "d50b1c6b89de4fcc4473f2aa2defe3bbc0f8289c",
      "parents": [
        "4fe0ef28ed58502a3652e827f5931df0b45cf39c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "message": "Numerous fixes to MIPS. Basic oatexec works.\n\n- Fixed reversed base and destination reg in genConstString\n- Changed compiler to use T9 to hold address to jump to\n- Fixed compilation of instruction getting current PC\n- Prevented T9 from being used as a compiler temp\n- Fixed loadBaseDispBody for long form single loads\n- Fixed stack setup for SaveAll callee methods to save rSELF \u0026 rSUSPEND\n- Added .cpload directive to assembly to regenerate $gp when overwritten\n- Fixed passing of extra arguments on the stack to account for space\n    reserved for $a0-$a3\n- Fixed resolution trampoline to properly setup and restore stack\n- Created mips stubs for interface trampoline and unresolved direct\n    method trampoline\n\nChange-Id: I63a3fd0366bdfabdebebf58ec4b8bc9443cec355\n"
    },
    {
      "commit": "0703060875166106af3d490c6c264611aea67ec8",
      "tree": "6e8c265b64a0ffac69f1072686f961d59060ec70",
      "parents": [
        "63818dc8b06af4a1e65c41b453f1a42166c22728"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "message": "Fixes to make jni_compiler_test work on MIPS.\n\nFixed the jni compiler in numerous ways:\n- Added NOP for delay slot of branches/jumps\n- Made calling convention match registers pushed by stubs\n- Fixes to assembly and added noreorder directive\n\nChange-Id: I32bc55985fbbc58b5b5358149766b8738b3ac955\n"
    },
    {
      "commit": "474b6da273c7ce6df50a4e51eb9929a77e1611c3",
      "tree": "b67074e7e4c16e01384c2f7d416f4e4ad3b3bd61",
      "parents": [
        "de1ef40bd5f344dbb0bdb68f555f45868f502ae6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 00:20:38 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 17:01:42 2012 -0700"
      },
      "message": "Move thread flags and state into 32bits.\n\nWe need to ensure that transitions to Runnable are atomic wrt to a\nthread modifying the suspend count. Currently this is achieved by\nholding the thread_suspend_count_lock_. This change creates a set of bit\nflags that summarize that the suspend_count_ is raised and also others\nflags that signify the managed code should go into a slow path.\n\nThe effect of this change are two-fold:\n1) transitions from suspended to runnable can CAS the thread state\nrather than holding the suspend_count_lock_. This will make JNI\ntransitions cheaper.\n2) the exception/suspend/interpreter poll needed for shadow frames can\nbe rolled into a single compare of the bit fields against 0.\n\nChange-Id: I589f84e3dca396c3db448bf32d814565acf3d11f\n"
    },
    {
      "commit": "9a4f003f9a6da8e4c6ee279bd2a13aac37648183",
      "tree": "ce78afe7c842c8ff99d52c0a09bfe758d67d037f",
      "parents": [
        "cfb21d92796087963c092b69110a2e7ff7a03a55"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 16:17:40 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 31 10:49:06 2012 -0700"
      },
      "message": "Remove the THROW_VERIFICATION_ERROR op and supporting code.\n\nChange-Id: Idc40a2c379048c7e3d74f50b2bd765a507a417ce\n"
    },
    {
      "commit": "7fbee0731b14b5bf392a4254f5cd84685ab517da",
      "tree": "b24cf6d9eed7935e3b26d63cf2292fd8c008005b",
      "parents": [
        "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 24 17:56:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 11:33:05 2012 -0700"
      },
      "message": "Preliminary changes to allow mips target to build.\n\nIt compiles, but it doesn\u0027t work yet.\n\nChange-Id: I2973a03bd956d8d398b9cfd1047e66fbf3ff439c\n"
    }
  ],
  "next": "af778e627aa41ec6c176cba537062b95d4d960b6"
}
