)]}'
{
  "log": [
    {
      "commit": "48d7222d2f543752ffb17db05e0b9e891061135c",
      "tree": "cf0295a04e1d32dce700620900bdc15a09d9913a",
      "parents": [
        "34c77ad4fc67de52463544b78a35b86d15b496e4"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 15:19:51 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 15:33:27 2012 -0800"
      },
      "message": "Add unimplemented artResolveMethodFromCode\n\nChange-Id: I1ba804c56413477451abff82939e27579494e1f9\n"
    },
    {
      "commit": "5c9f0b4d3933cdf6c3897dead3f77b16515b401c",
      "tree": "0e8df780cf19035aef6bafb461aa57a8bb2a87bf",
      "parents": [
        "b86fd7ff0dc3900818c52de26061b2878466102a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 15 18:15:46 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 15 18:15:46 2011 -0800"
      },
      "message": "Mac OS assembler compatibility.\n\nI haven\u0027t bothered changing the ARM code because we don\u0027t need to build\nthat with Mac OS\u0027 assembler.\n\nChange-Id: I2f7465de86d6ee5d767be409d8ea20731c91a8a1\n"
    },
    {
      "commit": "e343b76af81a005ef64f5e75a555389fd9147dab",
      "tree": "f6ec517c56338244d06723c49d610b5d948c3fa7",
      "parents": [
        "5b245f344cbe8402cfe35c3a42988081e71208bc"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 05 16:36:44 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 07 16:34:28 2011 -0800"
      },
      "message": "Stub to capture method entry/exit.\n\nAdded stubs to allow traceview to do method tracing. Currently only\noutputs to logcat, and a later change will generate the proper log file.\n\nChange-Id: Icaafc50e2eaf042ddc4d882011f7e8121bdd8b1c\n"
    },
    {
      "commit": "b093c6b27f8ea9bbe2d49c03ebe345203a121199",
      "tree": "34e49f46eb30a2aee8590dbf11365c8b5824c16b",
      "parents": [
        "95e4ef7cebf2e33b6e73a3957089f958e41771f5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 16:19:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 16:19:55 2011 -0700"
      },
      "message": "Support for access check in checkcast and instanceof.\n\nChange-Id: Ie15216618b35cace7d351be2b0a1c466ed6db489\n"
    },
    {
      "commit": "28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d",
      "tree": "f5628e47948a0d255112a3a7a01b67db41c8d424",
      "parents": [
        "e0918556e7551de638870dcad3f2023f94f85a50"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 27 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 28 23:14:15 2011 -0700"
      },
      "message": "Support for unresolved types in new-instance during verification.\n\nAlso, ensure that classes that don\u0027t load are erroneous, warn early\nabout exceptions left on a thread by the verifier/compiler, factor out\nslowpath checks for the compiler and fix the slowpath selector for\nconst-class.\n\nThis change causes more dex cache misses at runtime (more slowpath\nexecution). It also requires a \"mm clean-oat\".\n\nChange-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c\n"
    },
    {
      "commit": "cc4540ece917ef4b5c81ee684e3294e47e49ff5b",
      "tree": "a43560b6c3f70708cad676476e7aca395c10e337",
      "parents": [
        "baba887a4f5d2a454ab3f8f36a26346f8fdd0670"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 27 13:06:03 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 27 13:10:05 2011 -0700"
      },
      "message": "Add slow path for OP_NEW_INSTANCE\n\nIf the type is unresolved at verification time, we can\u0027t be sure\nit\u0027s a valid new.  The compiler will now check for type resolution\nat compile time.  If unresolved, we\u0027ll call out to the slow path,\nwhere the access check will take place.\n\nThis CL only contains the compiler portion of this change.  For\nnow, the slow path code just calls out to the normal routine.\n\nChange-Id: Ia568a164389baedaa695a44f6845a0fdfe585b56\n"
    },
    {
      "commit": "6fd03fb67e4628689f0abf34edeacc0e35b6295e",
      "tree": "89e287870dfb98b31f2ea7336166801dad5cd55a",
      "parents": [
        "29405cfc691196c21325e80d9a9f3795026eff4e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 16:11:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 16:21:03 2011 -0700"
      },
      "message": "Fix ObjectInitFromCode to do callee frame setup\n\nChange-Id: I70512c85a3a810fd672495b86655c215a07bb977\n"
    },
    {
      "commit": "466bb25416b88fabd5d4387b7c7e5cc1ece78b8c",
      "tree": "8d0952cbd850f1d0ac2e43a8372ce571fb4982d1",
      "parents": [
        "a10cd94bb77ed66fa0a8b66141c4504045c92d30"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 03:29:56 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 21:45:27 2011 -0700"
      },
      "message": "Proxy implementation\n\nThis rounds out the proxy implementation by adding missing pieces to the\nclass linker, extending tests and fixing issues in the runtime support.\nThere are also some tweaks for performance and to clean up Method/Object\na little.\nA unit test of the functionality is \"art/test/run-test 044\"\n\nChange-Id: Id94102d10b81cd9b12b95ba8618f6187490204c4\n"
    },
    {
      "commit": "caab8c4ef372db5c119bfac1911fa27b174a935c",
      "tree": "375a1e284b123b91d4960aa674b223e1eea0583a",
      "parents": [
        "14b1b249bdd21d674c9371dee34f8ae055f73ba2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 12:11:18 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 18:12:21 2011 -0700"
      },
      "message": "Various tidy ups, add LIKELY/UNLIKELY macros.\n\nMake more aggressive use of the dex cache when we have it.\n\nChange-Id: I125a7bac031f7f0cec68194b5380bdfd83c92833\n"
    },
    {
      "commit": "dfcdf1a0d2d8d75b4c701317e4a092498a8d1e9e",
      "tree": "0106200542ccbd8a12e4f35b40ee59a036ad49d3",
      "parents": [
        "8e4b2fc0565d6222ba49a14d87624e3ac170b6c5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 10 17:50:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 12:38:02 2011 -0700"
      },
      "message": "Proxy invocation stub.\n\nAlso removes unnecessary restoration of callee saves in runtime support\ncode.\n\nChange-Id: Ie6b91ce0297179947e176e0700ac3fbb90357e1b\n"
    },
    {
      "commit": "6f495f2898a418f87e2a919e04fe23521bb0b9e9",
      "tree": "6ba9e7bedb3425095725ea1ec514c279839e8511",
      "parents": [
        "98449a2674ea437eeae53327bf75918c8276a96b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 15:05:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 15:05:03 2011 -0700"
      },
      "message": "Clear results registers on long jump\n\nChange-Id: Ie4f84ad60b155bc27016ec15d4ecfcce8b0117f1\n"
    },
    {
      "commit": "aded5f7ab991f3c1132851599d3bc60ff6707eed",
      "tree": "7fb5e92c224adf98cadd67b7df99cc2d2851cbcb",
      "parents": [
        "bcbaaf3df56178263dbc110dcb0d1cf6c9d167c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 17:15:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:51:28 2011 -0700"
      },
      "message": "Working ClassLoader\n\nChange-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b\n"
    },
    {
      "commit": "ae67599981e17cdfd51418c35e56e2a7c5ef4c72",
      "tree": "628f154344135cb51c94a9885b5cfae9e7a35f37",
      "parents": [
        "c10717a0b86d5719556ac3286fcb47aa2f2416fc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 17:10:22 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 18:23:51 2011 -0700"
      },
      "message": "Various assembly fixes.\n\nChange-Id: I42655af8dc3d7201d53c3393cdc585d9faa8cb82\n"
    },
    {
      "commit": "c10717a0b86d5719556ac3286fcb47aa2f2416fc",
      "tree": "dacfc078eb74ef4b201cbb55ebe60c2ebaec106f",
      "parents": [
        "4a510d8750d50b77353d0a5a891d1b9b3a48ecd5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Oct 09 14:40:13 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Oct 09 15:01:08 2011 -0700"
      },
      "message": "Fix passing of sp in art_test_suspend\n\nSP of caller was being passed to artCheckSuspendToCode, rather than\nthe SP following save frame creation.  This led to the caller\u0027s\nmethod* getting stepped on.\n\nChange-Id: I644f2d6495d9274506a442c8a4a42985601ecb41\n"
    },
    {
      "commit": "4a510d8750d50b77353d0a5a891d1b9b3a48ecd5",
      "tree": "f6df9490fee55d2eae88b2281993e94953c6a805",
      "parents": [
        "4a14bc2e374add8f7df8232b3af3d8881eb4c84b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 14:30:24 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 14:30:24 2011 -0700"
      },
      "message": "Ensure R4 is initialized for upcall. Sort suspend naming.\n\nChange-Id: I73eb49e1af2ced971eeaafb7c07f5d964dae1824\n"
    },
    {
      "commit": "ce9eca6de042f26e9eebc41c9bee8b4d14f753aa",
      "tree": "7a141da8787f6653b30595f478ec656fd8dd01d6",
      "parents": [
        "6384f644e8120a15bddb9a72976eac1c158aba16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 17:11:03 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 18:24:23 2011 -0700"
      },
      "message": "Move from code field routines to runtime support.\n\nAdd support for exceptions from these routines. Use a macro for pending\nexception delivery. Fix bug in object_test where the signature of a\nFromCode function had changed.\n\nChange-Id: If486eff8659e5f6bb38d95b1139e8981656e4fb0\n"
    },
    {
      "commit": "4f0d07c783afef89703dce32c94440fc8621a29b",
      "tree": "f6f4b68d5afc6551c61d3e86153878d9891ea13a",
      "parents": [
        "3ddac99d4dc6a036fac59d8f0bdc664ef619fb04"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 23:38:47 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 11:40:56 2011 -0700"
      },
      "message": "Spill possibly reference holding registers for runtime calls.\n\nLive references may be in registers when we crawl a stack for GC during\na runtime call. Whilst an exception won\u0027t occur we need to save the\ncallee save registers into the frame so the stack crawl can find their\nvalues. Create variants of the callee save method to save just the\nregisters that are necessary.\n\nChange-Id: I6fa479bffcbc333fe846f9bd3ef2e626e0209ed9\n"
    },
    {
      "commit": "33a129cb771f7e8850b085d6158e5c8bf1e1da32",
      "tree": "16a857d3c3a1cde47519a906edf964711540d597",
      "parents": [
        "7f1caabe2936b5b6e34d5740607f5f5d63356fea"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 06 16:53:20 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 06 17:00:27 2011 -0700"
      },
      "message": "Save callee-save registers on alloc helper calls\n\nThe allocations helpers may cause a gc, so we need to preserve\nall callee save registers that might contain a reference.\nDeleted obsolete unit tests.\n\nChange-Id: Ib14f4ca787af94e1d8e036bbb956ffc537eff226\n"
    },
    {
      "commit": "ce30293d222c864fa281da98bc896dd1c98a9a16",
      "tree": "b56c3a7f8be3349aa50c78675e6959e51344938d",
      "parents": [
        "20cde9033d51103f31e21436e88f80e1170c78ad"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Oct 04 14:32:18 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Oct 05 09:22:57 2011 -0700"
      },
      "message": "Compiler cleanup\n\n  o Added slow path for string resolution\n  o Removed dead throw internal and runtime error\n  o Restructured debug and optimization disable flags for make it easier\n    for command-line option support.\n  o Removed/converted #if 1/0 blocks\n\nChange-Id: I65fc561a55437b3f74d0dfff5af87f938008d70e\n"
    },
    {
      "commit": "b408de744566a5c5a80be1ba7f5c88407e816945",
      "tree": "fa282edb7134f16de6e3ff81181e6d9724039ab3",
      "parents": [
        "4377a7e93b47386de1e0c2e472a6e3e99d235331"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:35:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:51:27 2011 -0700"
      },
      "message": "Implement the \"unreasonable array allocation\" OutOfMemoryError.\n\nThis doesn\u0027t fix test 061 because we still need AllocWithGrowth, but at least\nit gets us far enough to need that.\n\nChange-Id: Ia7b4a1f91a31e25d439f36b17280ce21c9ed8933\n"
    },
    {
      "commit": "6c8867daab4af4667e0e816f6beafa7c5d13e043",
      "tree": "103d25d3a799042c1746d2f05567dda27d8ed38a",
      "parents": [
        "33f741eefef8f8012f6c190b39355f2e0430d535"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 03 16:34:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 03 16:34:05 2011 -0700"
      },
      "message": "Implement artThrowVerificationErrorFromCode.\n\nChange-Id: Ib7f2ad06f20bd0a83fbab573bb16a9d2f872826a\n"
    },
    {
      "commit": "2d831014d88e38c0c499ce8597dcdb17b9d4c4b9",
      "tree": "793b222f8005580af855692045f7fe2804dca8d4",
      "parents": [
        "5d1ac920fdaef5d4ec8f66bb734488cd9660b024"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 28 22:06:53 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Sep 29 18:39:13 2011 -0700"
      },
      "message": "Code refactoring: Split thread.cc into thread.cc and runtime_support.cc.\n\nChange-Id: I8484ee2993a2eb927ebba1f7b9db4709d16dad00\n"
    },
    {
      "commit": "15fdb8cfb5b2e3fc882113ec0648d492cebf852c",
      "tree": "a44ae1aab6788f95c704d21ef4704502b52c175d",
      "parents": [
        "d801cbcb56aabb0881733d52662337b895382790"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 25 15:45:07 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 25 17:23:51 2011 -0700"
      },
      "message": "Floating point callee save support in exception delivery.\n\nUntested until we promote floating point values in the compiler.\n\nChange-Id: I20fe66cb59e2f31b21043479dde898326aec668f\n"
    },
    {
      "commit": "c0c8dc8e677957d167066a2d06973126f108a6aa",
      "tree": "98242f7d64d09b85bee3c021e6d66a3cbcaf19b3",
      "parents": [
        "2a20cfd0b7fc81099f5de0da782ebcc1cb262792"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 24 18:15:59 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 25 11:57:24 2011 -0700"
      },
      "message": "Support for currently untested exceptions/errors.\n\nReplace place holder implementations of exception/error code with code\nthat is likely mostly correct. Testing and creating detail messages are\nTODO items for each of these exceptions/errors and warning are created\nto reflect this need.\n\nAs we don\u0027t currently generate code to throw these exceptions, they are\nuntested.\n\nChange-Id: I75876a9cca37892fa065eccdf34f9868b4142ec9\n"
    },
    {
      "commit": "21d9e8323124a832a21679ca83808bc9c68ed365",
      "tree": "d41c36c06524f913761f3b2e107d48d668feb660",
      "parents": [
        "31cc62d259b86844b505c3bfe15b44e372f705b8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 17:05:09 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 17:05:09 2011 -0700"
      },
      "message": "Exception support for object allocation.\n\nStrengthen asserts, no extra unit tests as expect good coverage on this\nalready.\n\nChange-Id: Ie8786932667b70d20c0cdf69b4b6b721b6244ded\n"
    },
    {
      "commit": "b886da8e3c26443ab4d2aa63268bd673c354c3d2",
      "tree": "26f01b0d92a79dea97fe80ccc580a7cbcd0178ac",
      "parents": [
        "e51a511ccee3f3c0120807321bcc160fcaa664be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 16:27:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 16:27:54 2011 -0700"
      },
      "message": "Support for exceptions from array allocation.\n\nAdds support for exceptions during array allocation and checked array\nallocation (used by filled-new-array). Adds more unit tests.\n\nChange-Id: I3438b257a1cf19538d8b72529097a74347ac3b99\n"
    },
    {
      "commit": "e51a511ccee3f3c0120807321bcc160fcaa664be",
      "tree": "24ae359ac6331afbfabcfb8b938bfad2e4d44ce6",
      "parents": [
        "382ece5707c7b7c61f44a01f57ac22df9a8197d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 14:16:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 23 15:24:10 2011 -0700"
      },
      "message": "Exception support for CanPutArrayElementFromCode.\n\nAlso a unit test.\n\nChange-Id: I6fb4b4180d36ea2d8447a9b4d5cf28cf410960cd\n"
    },
    {
      "commit": "932746a4f22951abcba7b7c4c94c27b1bf164272",
      "tree": "4a841e3990467b22c36c74cca1e7a952754e49e6",
      "parents": [
        "a0841a83323a82e3bed3d0b5f2e6ec3795f496be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 18:57:50 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 20:05:44 2011 -0700"
      },
      "message": "Stack overflow error and unit test.\n\nChange-Id: Ie7198569207b1b87c50d986df002c551ad5d7d3a\n"
    },
    {
      "commit": "cbba6ac9bf9a6c630a7aafae6d8767b5ddbb6fd5",
      "tree": "c0d4c56f7062c95100ea644fbf3385b9c09c8399",
      "parents": [
        "98fb41647a5664922a196fd1f6b343e6bad8e51e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 16:28:37 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 16:42:02 2011 -0700"
      },
      "message": "Implement stub for initialize static storage base.\n\nAlso fix a race in thread list.\n\nChange-Id: Ice35c2fa14e7a9a0585e89d558815ab99bbdd6b9\n"
    },
    {
      "commit": "ff1ed4770bf7ff024a807b9f909b1a26abb78341",
      "tree": "40cda83cda306f4ade883141d3e0a40fb0790100",
      "parents": [
        "49de87b5c118cc536f2bd68c4fd46fce3d3abcfc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 20 13:46:24 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 22 11:08:56 2011 -0700"
      },
      "message": "Class cast, fill array and interface exception support.\n\nThis change uses the deliver exception mechanism to implement support\nfor a number of runtime exceptions. It also tidies up code in the\ncompiler and allocates a singular callee save method in the image.\n\nAlso adds a fix for JNI internal test where we weren\u0027t passing\nThread::Current() and that this value is now being used in generated code.\n\nChange-Id: I57eefd9afe40e92fa3a7e737f1a2ed7e1094b5c1\n"
    },
    {
      "commit": "c1f45048b90a85018c6b063c31bc088dc3dd993d",
      "tree": "fe2a976af407f8a77828306e9000837009150480",
      "parents": [
        "ae7cbf45460b472dbd159ab565d55b2880703abb"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 21 16:03:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 21 20:03:23 2011 -0700"
      },
      "message": "Suspend check reworking (ready for rewiew)\n\nI hate burning a register, but the cost of suspend checks was just too high\nin our current environment.  There are things that can be done in future\nreleases to avoid the register burn, but for now it\u0027s worthwhile.\n\nThe general strategy is to reserve r4 as a suspend check counter.\nRather than poll the thread suspendPending counter, we instead simply\ndecrement the counter register.  When it rolls to zero, we check.  For\nnow I\u0027m just using the counter scheme on backwards branches - we always\npoll on returns (which is already heavyweight enough that the extra cost\nisn\u0027t especially noticable).\n\nI\u0027ve also added an optimization hint to the MIR in case we have enough\ntime to test and enable the existing loop analysis code that omits the\nsuspend check on smallish counted loops.\n\nChange-Id: I82d8bad5882a4cf2ccff590942e2d1520d58969d\n"
    },
    {
      "commit": "9651f425f7413772a7b5352da2b04eb7de7d416f",
      "tree": "bd72ec24dc9901a03c19cd93c72e80bbd3af0b89",
      "parents": [
        "845490bda68f7d025ea7f45775c847d2932e00dc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 19 20:26:07 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 19 20:58:22 2011 -0700"
      },
      "message": "Implement NPE, div by 0 and AIOBE.\n\nImplement runtime support for throwing NPE, divide by 0 and\nArrayIndexOutOfBounds excptions. Add simple unit tests.\n\nChange-Id: I69453c10b6692aa79512bcab1f68c5ab16c8c256\n"
    },
    {
      "commit": "ad42e1327fca837531e4feac8841de3960c4df45",
      "tree": "de7c955804ac46da7988638e9aa478899457c4f8",
      "parents": [
        "3a7b4f26387b3529899f3cf16cdd6f1e200ded80"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 17 20:23:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 17 20:23:33 2011 -0700"
      },
      "message": "Exception work clean up.\n\nChange-Id: Ide71ba25ea70b39651f80d9ff469019898a929e6\n"
    },
    {
      "commit": "67375acd9fec74cc2054554fe1ed0a7d213e1e47",
      "tree": "0ac0bc114bbd9f0eef75d5d12e062554122d52f4",
      "parents": [
        "f867b6f706818c886087f61b89d1e8f5fc4653cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 14 00:55:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 17 03:31:50 2011 -0700"
      },
      "message": "Support for exception throwing from JNI.\n\nThis change modifies the exception throwing JNI unit test to be\nrealistic and implements the missing exception throwing pieces on X86.\nIt also corrects some issues on ARM including methods with arguments\nLJII (such as compareAndSwapInt).\n\nChange-Id: I375f6efe2edeebb8007d7aa12c10b49742a8f119\n"
    },
    {
      "commit": "bdb0391258abc54bf77c676e36847d28a783bfe5",
      "tree": "e00cac49de8a85562716557c84532dd3fff08e5b",
      "parents": [
        "a5a97a2bc1dfed70869da34650a5a2a3a3a06ac4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 14 00:55:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 15 18:20:44 2011 -0700"
      },
      "message": "Support for exception throwing.\n\nThese changes start to add support for a long jump style of exception throw.\nA Context is added to build up the registers that will be loaded by the long\njump from callee saves that are on the stack. Throws are reworked slightly to\ngive the PC for the frame of the method being looked at, rather than the return\nPC (that previously led the trace\u0027s PC to be off by a frame). Callee save\nsupport is added to the JNI compiler which then no longer needs to spill\nincoming argument registers as it may reuse the callee saves.\n\nCurrently the code is lightly tested on ARM and doesn\u0027t support\nrestoring floating point callee save registers.\n\nAlso clean up some PIC TODOs.\n\nChange-Id: I9bcef4ab3bf4a9de57d7a5123fb3bb1707ca8921\n"
    },
    {
      "commit": "4a3164faefd255b1c1e911e7ad7c3d57749caaf6",
      "tree": "f9594eb97a19358ba3ba5b050c61c5234214ba3d",
      "parents": [
        "9baa4aefc370f48774b6104680193d9a7e4fb631"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Sep 03 11:25:10 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Sep 03 20:31:41 2011 -0700"
      },
      "message": "Codegen for invoke-super, invoke-interface\n\nCompleted fast \u0026 slow paths for invoke-super and the single path for invoke-interface.  Added test\nfor invoke-super, but invoke-interface is untested (needs runtime-support routines to be fleshed\nout).\n\nSome trickiness in the invoke-interface code-generation.  Because they are going to be\nglacially slow anyway, inline code has been minimized and all interesting work pushed\noff to TODO runtime support routines.  However, we can\u0027t simultaneously pass the arguments\nneeded by the final destination and the arguments needed by the runtime lookup helpers.  So,\nI\u0027ve added a trampoline to save the target args, load the args needed by the helpers, call\nthe lookup routines, restore the final target arguments and continue on the journey.\n\nMore detailed comments in the code.\n\nChange-Id: Ice2343798a91a37da982811fd1c6384f584a3c0b\n"
    },
    {
      "commit": "5433072f589b61413e042eddf76e8190a048f71d",
      "tree": "02ff83e20b1b0bc9dbbf387768d118a4d7aa6dbc",
      "parents": [
        "3ea4ec5629613013ad9b0d7a69abdb94491ac46f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 23 16:46:55 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 23 16:46:55 2011 -0700"
      },
      "message": "Added support for 64-bit shifts, fix const-wide\n\nChange-Id: I4823056d83652ecc7d3e391e905d480d73fab718\n"
    }
  ]
}
