)]}'
{
  "log": [
    {
      "commit": "5bb8601175bbb9cd761c715f4ba04f84d65e913b",
      "tree": "441c62e467b6c7a355d9ad65ea88a923abbb409b",
      "parents": [
        "933abf8ce64e522b1c45b191b796bf2208a760d9"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Apr 11 05:57:28 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 11 11:01:21 2012 -0700"
      },
      "message": "Fix 044-proxy. Implement proxy for now, working on x86 and ARM.\n\nAlready added a TODO to do the assembly code for x86 and ARM for proxy.\nUse LLVM .ll for multi-architecture now.\n\nChange-Id: Ibdeeee113dcf284592e9d7769d3044438cb1e453\n"
    },
    {
      "commit": "b92bcabcbb28f69fe99e1c2f2e5559ab2c47aa60",
      "tree": "40c39c168b520afb6b62d3659c2a06c282e7f844",
      "parents": [
        "05c87bea99bbabc36d0db569af735f9459ad8f1a"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 08 00:09:51 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 10 14:57:01 2012 -0700"
      },
      "message": "Fix run-test on host.\n\nChange-Id: I44ebb4cdc2f5966be51a063e3c7256ab3016c404\n"
    },
    {
      "commit": "9e5f5c1dc6cc6551db082fdcf484a145bfb684fd",
      "tree": "532222b9ea20b7bfd689adbb022d9206f13d556e",
      "parents": [
        "a0f746b20d7587281df825689e36ab52af3d3149"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Apr 10 13:51:45 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 10 09:14:39 2012 -0700"
      },
      "message": "Implement throw-verification-error opcode in LLVM-based compiler.\n\nChange-Id: I3b902e593f380d7524c8a2d94800d0323364c613\n"
    },
    {
      "commit": "3f9137d85b3c2c0800fb26e3415ace1a6b7cc4de",
      "tree": "7b2c72c1ccf3512fb52fc48ecfb84f9c5c680a82",
      "parents": [
        "6ac6a365a9bdb00e85b46eb8fadfb0cebf653cba"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 08 15:59:19 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 10 04:49:44 2012 -0700"
      },
      "message": "Fix NPE message in LLVM.\n\nChange-Id: Ie65060d065d747a6c9ad22c61d5fb29f6cf3c249\n"
    },
    {
      "commit": "0045a290e6b79a274250e3112880c04bde437d4a",
      "tree": "a125d556b6c817218b14f6f3f72079b83d0032c4",
      "parents": [
        "d23f5206cf72ca3fb53ac3049649bb7d018232bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 21:08:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 22:38:22 2012 -0700"
      },
      "message": "Avoid a case of eager initialization.\n\nDon\u0027t mark as initialized classes that contain static field\ninitialization.\n\nChange-Id: Iedcabbdf355e8861eb7731650eee1467f68ae0cd\n"
    },
    {
      "commit": "0f3c55331439970e01af67f80ac117c473bc04cf",
      "tree": "cfa28ad2a58af1ffddb0a2ce90443ad4606743c3",
      "parents": [
        "273cf36d199cf73de3cf61a559ad27c9d23f9825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "message": "Kill constants.h and fix some copyright headers.\n\nChange-Id: I51c04d731d6de035328781d8ac134ad6fcf49897\n"
    },
    {
      "commit": "57b86d47b66322693a070185fadfb43cb9c12eab",
      "tree": "81d53304a63a660a683917a19f7dd83723a397ad",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 27 16:05:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 11:51:44 2012 -0700"
      },
      "message": "Refactor runtime support.\n\nChange-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df\n"
    },
    {
      "commit": "5b21308bfa0f4d25a3fd2f5346e51bd66d4722e8",
      "tree": "5deea0c751a373d7536dc65510c7f8f9d1642a46",
      "parents": [
        "9b2ba2ee9fafe46a08473657a2387fd20ab49a35"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 20 04:26:01 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:08:41 2012 -0700"
      },
      "message": "Implement for AME for the LLVM version. Fix the compiler_test.\n\nAME (Abstract Method Error) processing is different for LLVM version,\nbecause we uses return-style exception handling. We have our LLVM version\nof runtime support in runtime_support_llvm.cc, but we have to share this\none: ThrowAbstractMethodErrorFromCode() because it\u0027s called from the\nstub/assembly code for AME exception. Those tricky assembly code\nshouldn\u0027t be duplicated to 2 versions. Instead, we try to just limit\nto return processing. Only differ in the DeliverException case in\nThrowAbstractMethodErrorFromCode().\n\nI.e., LLVM is using return-style and no need for long-jump delivery.\n\nCompiler_test passes now.\n\n(cherry picked from commit c33262b21ece4072cc229511ba9d878981fc5d3c)\n\nChange-Id: If959d100a9e157cbc3618770f6ff1118dce066f5\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "d5347e08172d6d462c703c0f5e1ce9ef070ec69d",
      "tree": "1d1a72647ac7e2f8ee58c08dbd652500c19bdf5f",
      "parents": [
        "942df41c03ddb9f7b47a34fcfc4414d8b8ca8ce1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 22 17:25:05 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 26 10:47:57 2012 -0700"
      },
      "message": "Split VERIFY_ERROR_GENERIC into VERIFY_ERROR_BAD_CLASS_HARD/SOFT.\n\nThe verifier was suppressing compilation of some classes that were able\nto verify at runtime. Now VERIFY_ERROR_BAD_CLASS_HARD is used for\nstructural errors to prevent compilation, and\nVERIFY_ERROR_BAD_CLASS_HARD is used for all other verify errors.\n\n(cherry picked from commit da4dc735b9650f63e13b85c9775416006717d27c)\n\nChange-Id: I339639fa94af30f93be12f1ab9d4ef4cec6767e6\n"
    },
    {
      "commit": "441d9126a8682da29f0ea3fa0040b7e0c63025be",
      "tree": "9d856632c8d19394d5f0561b1ce3199c8ecba099",
      "parents": [
        "a035e838be7df28c354b75cfa30296c4d0da0b8b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 21 17:29:10 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 17:15:47 2012 -0700"
      },
      "message": "Class getField/Method returns NULL if type/args are unresolved.\n\nThese changes check that a field\u0027s type is resolved before returning it\nthrough getDeclaredField, and that a method\u0027s return type and argument\ntypes are resolved before returning it through getDeclaredMethods. This\nfixes test failures in libcore MissingClassesTest.\n\n(cherry picked from commit 1ae431a01516b6c91f031aff37c756b7e4f63dd1)\n\nChange-Id: I6bd5601a975e677be6438b1efcb1b1f1ecde900c\n"
    },
    {
      "commit": "250455229aa0cc07bbd18174efe510bd52631a99",
      "tree": "1499cfc216d6092057a4c4bf996c2ce1a2c360ca",
      "parents": [
        "eb5701498830a406e957d11481296eb11734e850"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 13 19:34:37 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 16:49:39 2012 -0700"
      },
      "message": "Added option to allow verification of objects on the stack.\n\nCurrently it\u0027s defined out by VERIFY_OBJECT_ENABLED. Also made various\nfixes to allow heap object verification to work again.\n\n(cherry picked from commit d4983495782be8d54c9c1f0266dc52395b947724)\n\nChange-Id: Icd625e1e0dc240c0ad1d10e2c58c7d5d63fec030\n"
    },
    {
      "commit": "634eb2eb14f87753519d0ef2c5f256e55888f378",
      "tree": "798e5596e1229248b6b297eb51542078ce86c1f9",
      "parents": [
        "8fb932e9410dbd1791dc2b56b67e977607793e05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 16:06:28 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 16:06:28 2012 -0700"
      },
      "message": "Add some extra debugging/diagnostic support.\n\nCHECK that we don\u0027t bring a class back from a \"permanent\" error status in the\noat file at runtime.\n\nCHECK that runtime_support.cc doesn\u0027t hand out 0 as an address for its caller\nto branch to.\n\nAlso remove some accidentally left in debugging output.\n\nAlso fix a few comment typos.\n\nChange-Id: Ibf4224940e9013184888c7854e675b17e0500ac9\n"
    },
    {
      "commit": "051c9fc1de07bbc265af38cf60f061394163c68f",
      "tree": "55e45440cadf3f379655310378a74985aae7abbc",
      "parents": [
        "f24132c3320cca583e69edbc19491f82c1c7466a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 12:24:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 12:24:55 2012 -0700"
      },
      "message": "Fix ProxyTest.\n\nOne of our failing CTS tests was because we weren\u0027t implement \"strict\" mode. I\nadded a CHECK here the other day while touching all callers, which conveniently\nmade us abort in that case, pointing to the error. Throwing instead gives us\nthe behavior we want.\n\nChange-Id: Ia93900dd5157685f5142cd9662088c1417299c09\n"
    },
    {
      "commit": "2ed3b9536ccfd7c7321cc18650820b093b22d6c9",
      "tree": "c0e211414d0fed674ed2d1fbb340433b49adb57b",
      "parents": [
        "e9dc4c0beae58d7d6d4cf43140c233251e06bbb7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 11:49:39 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 12:34:56 2012 -0700"
      },
      "message": "Implement direct apk -\u003e boot calling\n\nAlso sharpen super calls.\n\nChange-Id: Ie4d3ab2cbf2961a06ec86762a53132f49a4ed922\n"
    },
    {
      "commit": "dbac3090ace708eb27c707d4b72efc48c069129c",
      "tree": "2b811b40af24ce849d327643f05b4244ca2449fb",
      "parents": [
        "5efa670d6a8cf6ad3771b9fb7d4c10598ad78f9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 18:00:30 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 18:00:30 2012 -0700"
      },
      "message": "Ensure that BoxPrimitive only sees clean data...\n\n...rather than forcing it to zero irrelevant bits itself.\n\nChange-Id: Ibbd28db08b68fac84704a911a6f927f7d9343055\n"
    },
    {
      "commit": "1bac54ffa933fbe9b92b62437577f2f4583eff1a",
      "tree": "a27134343ed3cd45a286c3a68b9a4469e70f13e7",
      "parents": [
        "96970cdab3e28511322ce37fa578f6eff8931d72"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "message": "Fix all our unused parameter warnings so we let GCC report them.\n\nThere were a couple of genuine bugs here (fixed), plus there\u0027s a missing\nfeature in trace.cc that I\u0027ve just added a TODO for.\n\nAlso note that I haven\u0027t touched the compilers; this warning is still\nexplicitly disabled for that code. I\u0027ll do that when there\u0027s less going\non in those directories.\n\nChange-Id: Ic3570bf82411a07c7530bfaf1995ac995b9fc00f\n"
    },
    {
      "commit": "88c5c355fc3d881f905564911d746b2313d5fc89",
      "tree": "d5b11b85131064cb6200465e674060933f48ebd7",
      "parents": [
        "141b0c75986949da0adbf9c07ad92bc675f1bfed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 18:49:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 21:14:57 2012 -0700"
      },
      "message": "Make CheckJNI and JNI workarounds mutually exclusive...\n\n...in the opposite direction; needing workarounds turns off CheckJNI.\nThis isn\u0027t necessarily a good idea, but I like the cleanup parts of\nthis change.\n\nChange-Id: I708235ea3e5cc35ef90b01dd810e097e3ff9dd26\n"
    },
    {
      "commit": "98d39884f64d13aada5e716bb38e2f069c7ad0a7",
      "tree": "a4b110f88872719da560e8c3708bd5f597c3e6e0",
      "parents": [
        "f7d9ad39541dd09030e26d54d3b73a076f90cc74"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 15 01:42:12 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 15 01:51:33 2012 -0700"
      },
      "message": "Add detail message to null pointer exceptions.\n\nRemove redundant location of NPE in detail message of throw NPE for\nmethod access as the information is available via the stack.\n\nChange-Id: Iee3400c21a0348f6c4e7530b990bc546a80a513c\n"
    },
    {
      "commit": "b600b3f8360f535913fedc91aef7c8e5abaca48a",
      "tree": "b8f4fdca44a70caec314b210372d678ad9501dbf",
      "parents": [
        "002b915276064dbe2ce9caf7474d3032301d8d7c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 14 13:57:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 14 13:57:24 2012 -0700"
      },
      "message": "Fix/improve exception detail messages for unboxing.\n\nThis fixes libcore/luni/src/test/java/libcore/java/lang/reflect/MethodTest.java\nfailures.\n\nChange-Id: Idf6aae169bd72f0534d4094170536e6b2515ca07\n"
    },
    {
      "commit": "0ece7b950dc5821e79c930acf31fb7e73c570849",
      "tree": "ce4006468c5ea8b068055b5f770b058477e35a25",
      "parents": [
        "e663a5b5b218deae32de739d89f888ceeeba65df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 18:14:40 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Mar 10 09:51:21 2012 -0800"
      },
      "message": "Remove an unnecessary \"art\" prefix on functions in the art namespace.\n\nChange-Id: I160bc78ef9000364f657a9972dd8c648ca2f53aa\n"
    },
    {
      "commit": "d20db02db57625150058f1face0efad610ec7b25",
      "tree": "927844094f0e38b688fde1f7fd695ceff8f07bec",
      "parents": [
        "b3cd1229e6904365ca0ca2a7bbc4701ad1908154"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 16:12:53 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 16:12:53 2012 -0800"
      },
      "message": "Re-remove the code that the preceding commit removed.\n\ncommit a433b2e8 just removed this code.\n\nChange-Id: I9561b40c659ca62527e4dbfce33249ed34731b6a\n"
    },
    {
      "commit": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "ddbd01ac1660d57416879d5a576482f1048dde64",
      "tree": "0fb4767de9915243addbdb712563e1ac330da0d2",
      "parents": [
        "0b440ef78eae4f1c8558dca549e9c94a84f42639"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 14:42:12 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 15:04:58 2012 -0800"
      },
      "message": "Move compiler-specific code out of runtime_support_common.\n\nHelpers or utilities such as FindFieldFast are still in\nruntime_support_common. But LLVM has different stacks, no callee-saves\nand different exception mechanisms. Those won\u0027t belong to\nruntime_support_common.\n\nChange-Id: Ibc43d7d53316941481a6a21815ddefdc1e6bdde6\n"
    },
    {
      "commit": "a433b2e8edf91c8124abd8eb5b3bd558a40fc987",
      "tree": "d0c6b2cd101ed66897193ac03f4738d6a7473da3",
      "parents": [
        "f5a9d80f6afaf714c1afeaf2e869ff194aa2556a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 09 08:40:33 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 09 08:59:48 2012 -0800"
      },
      "message": "Tidy MIPS floating point helpers.\n\nFix initialization bug in thread.cc.\n\nChange-Id: Ibdc81d6f5c8b1a245044bf901003179167a5d4f1\n"
    },
    {
      "commit": "f5a9d80f6afaf714c1afeaf2e869ff194aa2556a",
      "tree": "11e1164eb4fcd8c9a04e96c69e4b0e133562c9de",
      "parents": [
        "399ed3f4bb92eb69b739c4c5d9dcf2d4c78696b2"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 01:31:09 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 01:31:09 2012 -0800"
      },
      "message": "Fix build: Move a 2-line function to runtime_support_common\n\nChange-Id: I59df076e148b571d253df2aa3bb852fc032c9714\n"
    },
    {
      "commit": "399ed3f4bb92eb69b739c4c5d9dcf2d4c78696b2",
      "tree": "2a7136e079f2d7d93519b3f63184a952b3362939",
      "parents": [
        "4d3c07f0bbfd07815f2ac848ad2b08979b9bee4d"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 08 01:27:04 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Mar 09 00:17:21 2012 -0800"
      },
      "message": "Add object-space related runtime support.\n\nChange-Id: Ieac2be41efcb57923de6f1dedad94fab0803812d\n"
    },
    {
      "commit": "b0ee9d705a51b3de188be1f8a28e00574d8eabae",
      "tree": "6106b897dabfd4a0fd7a13b6c38205df63844c0b",
      "parents": [
        "d8af8bd46c13347ca15558999db4da85dbc31818"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Mar 07 16:39:26 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Mar 07 23:56:54 2012 -0800"
      },
      "message": "Add runtime_support_common.\n\nAddressed the issue that we shouldn\u0027t maintain 2 copies of almost the\nsame code.\n\nChange-Id: I212656f65e6c47e1167a193c1024100ae97f0028\n"
    },
    {
      "commit": "adb8c67f6d87a160d4e3a8afea7cb93f6c14568b",
      "tree": "93b265743b7fd7a831803f6bc84e2aa8ce338156",
      "parents": [
        "731b2abfccd8704d129e3b8e46a086660161fef3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 06 16:49:32 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 06 17:21:07 2012 -0800"
      },
      "message": "Move the compiler away from libdex.\n\nChange-Id: I0c5fdc38d94f1199023cfc6aab3060b927ad2383\n"
    },
    {
      "commit": "fb6adba0d5d5505610fbd325e7911db700a2f1e8",
      "tree": "84ad8f9cc55a2ae87f80c05927126af7e75604d7",
      "parents": [
        "123e8a7fdf69b40603f7df95f08d62c69ee1c07e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 04 21:51:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 05 08:56:55 2012 -0800"
      },
      "message": "Sharpen virtual calls to final methods.\n\nAlso remove unused instance resolution stub.\n\nChange-Id: I2abb988d107e98ac0148fb81464b22622a468382\n"
    },
    {
      "commit": "a8a9c3490776ab897a15bebd31119c94ede5c19a",
      "tree": "71f4bea1ffafb679209f18aee242ca41c3fd7ed2",
      "parents": [
        "a33cb99eeb65cb91ba29bfc31d7794b761781e74"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Mar 03 22:35:16 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Mar 04 23:04:23 2012 -0800"
      },
      "message": "Initial runtime support routines for ART LLVM.\n\nChange-Id: Id5bb87685e1a95444bdd7a676f68b378e1b88d3f\n"
    },
    {
      "commit": "11f9d2130e938511efceb6d2a4793cee7dfdde35",
      "tree": "cf6a63ad64a66c5ee225c789adc15ba4962d526c",
      "parents": [
        "e8267506ac2d64351e21ce90e8643b9247e1803c"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Mar 03 20:03:18 2012 -0800"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Mar 03 20:03:18 2012 -0800"
      },
      "message": "Mips portable floating point support\n\nFleshing out the portable floating point.\n\nChange-Id: Ie7a6dcb168a4eb2a61a52e6d747da4118d54f3aa\n"
    },
    {
      "commit": "a15e67d5ee5aa9615596cee2be42c2b2caf128c6",
      "tree": "cd126ce1e809688011385d521abf19c9c302d1b1",
      "parents": [
        "9b5ee8837b4864b6ac114e9fead17bdeb04c6d55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 13:51:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 15:21:27 2012 -0800"
      },
      "message": "Remove pad word from arrays\n\nThis change removes the 4 byte pad from all arrays except longs and\ndoubles. It saves 76kb from the boot image, and will also reduce the\nsize of arrays in the heap (and thereby reduce garbage collection).\n\nChange-Id: I3ff277d5bf14c57c0f7552215818e588ec6cc275\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "8cd6ddaeb78cc904e13bac88753654a04b2e15b8",
      "tree": "005ebbe14563bb3ec5bfc9837bf3fd4284427cec",
      "parents": [
        "a656a0f6fbcf2ba3f15cae54a773b9c636dd32c1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 10:15:34 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 23 15:55:20 2012 -0800"
      },
      "message": "Numerous fixes to compiler and verifier for cts vm-tests.\n\nClassNotFoundExceptions in ResolveType are converted to\nNoClassDefFoundErrors.\n\nCompiler checks for puts into final fields.\n\nMethod resolution searches direct methods if an appropriate virtual\nmethod can\u0027t be found.\n\nInvocations of \u003cclinit\u003e are rejected by the verifier.\n\nInvoke-super and invoke-virtual can\u0027t be used on private methods.\n\nUsing invoke-interface on non-interface methods and not using\ninvoke-interface on interface methods leads do an error.\n\nChange-Id: Ia589f1ffccf91b62812ee34c8c5fae1aaf3798c6\n"
    },
    {
      "commit": "45651fde99f52546e71241bb0e8a10d16a9f216a",
      "tree": "c796792c4b07027cfef0b519c4acafa307136257",
      "parents": [
        "3e2e1a2380e7b2ce402640ea4f6a177c06bd19a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 15:48:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 15:48:20 2012 -0800"
      },
      "message": "Fix various debugger method invocation bugs.\n\n(Also fix DexFile to admit that string lengths are always non-negative.)\n\nChange-Id: I2d01ef2411b5c7e594527790daf3e0aaa3a1b67f\n"
    },
    {
      "commit": "60db5ab3a2e480db9236325a14cb5a867881d8bb",
      "tree": "c4a514941c2d41b82581d2c3d83ecb742e575231",
      "parents": [
        "6a91799974e992e915facb9d9372dc8847a09a64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 17:02:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 18:15:35 2012 -0800"
      },
      "message": "SIRT work around JNI support for legacy apps\n\nLegacy apps may be broken and expect a jobject to equal an Object*. This\nis a work around to support outgoing SIRT arguments being converted to\nbe Object*s. It steals the unused GC map pointer on native methods.\n\nChange-Id: I8fb3701b0cdf15be9e8f9b722e47386505482666\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\n"
    },
    {
      "commit": "91bf6cd47174f5c17265320f7a350722720390a5",
      "tree": "f4823c09793162e00b2fdd43990e12f2837d7562",
      "parents": [
        "f05d0dd011d3dbcf78bf35d0771f67371f5f6b58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "message": "More debugger support.\n\nThis wires up method-entry events and fixes a bug in exception events.\n\nChange-Id: Ia7c46786a8073434fbb4546615072622f301ef84\n"
    },
    {
      "commit": "16f93671923979733cb46fc6f053c8f65754d5eb",
      "tree": "1bcb06e29786c5c93e0dc588b4ad6e8e94de0034",
      "parents": [
        "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 12:29:06 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 14:39:26 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods, address Proxy issue\n\nChange-Id: Iab8c7edb954d241bd5a92260db07696b9559155f\n"
    },
    {
      "commit": "b5d6a4983732387dd9fe9f0024d19a766819755d",
      "tree": "c7945cf6ebf6ebe0438421758884abb7ad240046",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "message": "Revert \"Remove dexCacheResolvedMethods from Method/Constructor\"\n\nThis reverts commit 42882d1ae5a297b037f560a6ec190be1a584579d"
    },
    {
      "commit": "42882d1ae5a297b037f560a6ec190be1a584579d",
      "tree": "b702812d71828f757872b5cd1b915f2baf74a251",
      "parents": [
        "60f83e3274739317d8c3a1b069cebc6bf1e40f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 19:18:37 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 22:00:50 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods from Method/Constructor\n\nThis short-cut is no longer directly accessed via compiled code.\n\nAlso fix compiler_test which requires isFinalizable to be explicitly\ncompiled when Object.\u003cinit\u003e is handled in managed code.\n\nChange-Id: I028cf0fc8fa25a44df4adacc7c686ade413a5a42\n"
    },
    {
      "commit": "f3773f0913f8b76eee2088bfd999aaca6a50e750",
      "tree": "d9c2f8ce0736a6260d96586cbb3fcdb75430d4b2",
      "parents": [
        "a32a6fd4a781262dff4fec102da053d16b7ef6c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:45:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:56:22 2012 -0800"
      },
      "message": "Move finalizer registration into managed code\n\nAlso move Object.getClass into managed code.\n\nChange-Id: If32674ac496116aaa82c461d8e6196e27fa7b591\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "44b412bb795fa6999129b2bc16f5eec1ea97e8f8",
      "tree": "bf2a45463f46c506130f319b1a176b49db4d5252",
      "parents": [
        "959f8ed11ef9493a89b90a1f9a82a811dbc7ae0e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Feb 04 08:50:53 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Feb 07 18:19:52 2012 -0800"
      },
      "message": "Codegen support for debugger\n\nAdd the ability to generate code with support for debugging.\nThis involves generating a callout to an equivalent of the\nold \"updateDebugger()\" before each Dalvik opcode, method\nentry and method exit.\n\nThe added code is fairly compact - 8 bytes per Dalvik opcode,\nplus 4 additional bytes per safe point.\n\nI dislike the idea of always making this call, so I\u0027m reusing\nthe dedicated register rSUSPEND to hold the address of the callout.\nrSUSPEND is normally used to reduce the frequency of full suspend\nchecks, but when debugging this isn\u0027t necessary - allowing\nus to resuse this register to hold the address of the callout.\nIf it is non-null we make the callout, otherwise we continue.  I refresh\nthis register from a slot in the Thread structure on method entry\nand also following the return of taken suspend checks.  In this way,\nthe debugger has the ability to control updates on a per-thread basis,\nand the performance penalty is greatly reduced for threads that don\u0027t\nhave any pending debugger requests.  Once the debugger attaches,\nit would suspend all threads, walk through the thread list, set\nthread-\u003epUpdateDebuggerFromCode to art_update_debugger and then\nturn everything loose.\n\nOne thing I\u0027m not doing, though, is debugger updates before and after\ncalls to native methods.  This is something that will have to be done\nby the stubs, because I don\u0027t know which invokes are native.  Oh, and\nthere will also need to be an artUpdateDebugger call on the exception\npath.\n\nI\u0027m passing the DalvikPC to the stub, and am using special\ncodes (-1 and -2) to denote method entry and exit.  The stub\nrecovers the current Method* and Thread* and passes them on to\nartUpdateDebugger().\n\nWhen we\u0027re compiling in this special mode, all optimizations which\nmight result in code motion or suppressed load/store of a Dalvik\nregister are turned off.  No register promotion is done, so everything\nwill be in its home location.\n\nChange-Id: Iaf66f4d0d094a1699269d0a1ad1ed33e7613aef8\n"
    },
    {
      "commit": "1e4092589f1400915e6213014da103aab8728ef6",
      "tree": "ba718e9e853e18a61aab003ce3f6a880b86fa365",
      "parents": [
        "53a77a5d06ce865d0524bf3a0dd9b586caa9bede"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "message": "Fix Mac build and make -jN use a total of N threads, not N+1.\n\nChange-Id: I41dc613e76d6ac85a21b3286b1a555dcc79bae95\n"
    },
    {
      "commit": "53a77a5d06ce865d0524bf3a0dd9b586caa9bede",
      "tree": "dbdf636acdb6bf8f67333fb15b54f279183c66c4",
      "parents": [
        "1bddec3a6521f16df37499754000a3b1787a52e9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:47:45 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:49:41 2012 -0800"
      },
      "message": "Remove Method\u0027s dex_cache_resolved_fields_\n\nWe no longer generate code to access dex_cache_resolved_fields_ and the\nslow paths can access the dex cache with extra indirections. Removing\nthe field saves image space.\n\nThis change also requires Change I2e16e99d\n\nChange-Id: Ic64df15f3982a2655942d7cd5157eb497f70af7d\n"
    },
    {
      "commit": "1bddec3a6521f16df37499754000a3b1787a52e9",
      "tree": "f605d0f642f2a62012d0f5a1bd0351afbaa8fa5a",
      "parents": [
        "223f20fa939c386c695977263780dea2195093db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Feb 04 12:27:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Feb 05 03:02:00 2012 -0800"
      },
      "message": "Add access check slow paths to field accesses\n\nThis check makes the verifier, compiler and runtime agree with who\nshould perform access checks and fixes compliance for these\ninstructions.\n\nIntroduce new \"fast\" sget/sput that just get the static storage base\nfrom a method\u0027s declaring class when the static field is within the same\nclass. Saves a load and branch in the common case.\n\nFold gen routines for wide and not wide together.\n\nFix bug where sub-classes could appear intialized in the image but their\nparents were only verified.\n\nExtra debug output for test case 075.\n\nChange-Id: I934da3624ed8fa8e026b2c95d936d04b1af022ef\n"
    },
    {
      "commit": "d4135901d12fd6073603aa6fd96e587dada70cb4",
      "tree": "e527dcea253d9c17d2cbf2a4db1fef7bbd76c813",
      "parents": [
        "5523ee070b005576c6f889415205d49ea77cf243"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:05:08 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:32:33 2012 -0800"
      },
      "message": "Check instantiability at runtime when inconclusive at compile time\n\nChange-Id: I40e4a3da05936fee77e074d5dc4d0fec1a1c5526\n"
    },
    {
      "commit": "0eb7d7e2a0c2767b5fd86bd52436c618fd4c3120",
      "tree": "a446a35a4dfc5d258bb2817b92319b2f8ea84b20",
      "parents": [
        "09cc2d39b3073ab0c613a9f660983e781693d958"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 21:12:32 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 21:14:59 2012 -0800"
      },
      "message": "Implement array allocation with access checks.\n\nChange-Id: I0b2c0274087f3f7ed5b0b71c441e5d7e5a25f819\n"
    },
    {
      "commit": "f3778f66879fa038a7c9ebe46d5bc4167ddef7d8",
      "tree": "50499b6687d784cdcf571f5b6c5885d5f75be334",
      "parents": [
        "aa56b7287426ffc476843ad2ffab9eb70709e4ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 14:14:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 15:14:55 2012 -0800"
      },
      "message": "Fix test 046.\n\nLooks like a recent change put us on an untested code path, and we need\nto start distinguishing callers\u0027 intentions. We can also remove some\nunnecessary duplication.\n\nChange-Id: I950139e6fdc8656b89d8e1520e8b50f681c7f7b2\n"
    },
    {
      "commit": "ad6c9c3dbf7541340f22ccbb333f08556ad7e000",
      "tree": "dc11a1165c0f145cf3e6b5edc16bea8b57ba62fe",
      "parents": [
        "d1029981c8ec2341f76376c8d8e15d72dda4c45f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 19 17:39:12 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 20 14:04:02 2012 -0800"
      },
      "message": "Mac build fixes.\n\nThis gets us pretty close. There are a few problems with libraries we depend\non (system/core/liblog and external/icu4c) that I have workarounds for, and\na problem with gtest that I haven\u0027t yet worked around that prevents us from\nlinking any of the tests. But this at least gives us a Mac dex2oat binary.\n\nChange-Id: Iac39a6c2963c3d37ab2165d7d1a70e303ba22c45\n"
    },
    {
      "commit": "d3127d6fec57bba65cf7c8809d467d3a772080b2",
      "tree": "13d6fcd714d53d7c70f8c839239837af6a896b60",
      "parents": [
        "6368967dc8a06835891b2e8925a45ee1af4e880e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 13:42:26 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 13:42:26 2012 -0800"
      },
      "message": "Emit the same detail message as dalvik for ArrayStoreException from code.\n\nChange-Id: Ib61f7333ee574bcf334994c98249f5b752135ba9\n"
    },
    {
      "commit": "bdfb1a5cd8a4132023a9333458cde52ccad500a8",
      "tree": "13afda4b6862b36ddfbcff43cef3b8388235d769",
      "parents": [
        "63efec135fa63c00dd7360afb319bee875c5d5e7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 12 14:05:22 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 12 14:05:22 2012 -0800"
      },
      "message": "Fix 084-class-init\n\nDon\u0027t update the code and direct methods table for classes that are\nstill initializing as a 2nd thread may need to wait for class\ninitialization.\nFix the return value of EnsureInitialized when the class initializer\nthrows an exception.\n\nChange-Id: I571d983f1a4025b5bcdd51b817d252ef131a6e97\n"
    },
    {
      "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": "34c77ad4fc67de52463544b78a35b86d15b496e4",
      "tree": "583a249e4c6d49473b4ecc6b9ac70273f5b0deac",
      "parents": [
        "ef94857c7a33c467c55ac45a6aeb064eb4b8b7c7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 13:01:32 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 14:01:54 2012 -0800"
      },
      "message": "Add stress-test mode for  ResolveMethodFromCode\n\nTo force call to artResolveMethodFromCode prior to each virtual or\nsuper invoke, add (1 \u003c\u003c kDebugExerciseResolveMethod) bit to the\ncompiler\u0027s debug flags.\n\nChange-Id: If14e4bcc8073c8ac7a7a8d0d92bc49444528f77e\n"
    },
    {
      "commit": "2692b573a56cd63a3c8c8aa1636e3766b6d8c9c4",
      "tree": "16d422b8b2d3ae8e20baa34090b7b5b2aa687cd8",
      "parents": [
        "db7d5e96d3e4090e69fac7b4ec1fc1bdcc0b436c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 16 15:42:28 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 19 10:36:47 2011 -0800"
      },
      "message": "Changed tracer to use an instance to hold state instead of statics.\n\nChange-Id: I2fdcf5de7fbc745273b1a33cb409d13e72d24ab4\n"
    },
    {
      "commit": "a9ef3fd82bebc6370fc3ddbb094988feb6c83022",
      "tree": "3832d0b31fdf28b6f67e4a16148a461ba299727b",
      "parents": [
        "dbf05b722af99ba2fd2f4c4fc7eb6c3e9880e5d1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 13 18:33:43 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 15 13:10:04 2011 -0800"
      },
      "message": "Updates to tracer to log events.\n\nThe tracer can now generates traces for ddms or output to a logfile.\nAlso includes bugfixes to allow stack walking to work properly when\ntracing.\n\nChange-Id: I8894272d9a678eeb1d376734f7822daf2ab298e4\n"
    },
    {
      "commit": "c2b4447ae9c0c1e77595620acac6508999df6698",
      "tree": "20192c2044d004b364a7f8aa6c9cd3a272e3e706",
      "parents": [
        "fbef9462e3bf2301dd5b337d351b6b70f7e31bc8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 21:17:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 06:45:50 2011 -0800"
      },
      "message": "Fix for test 044-proxy\n\nProxy implementation was incomplete following meta-data refactoring,\ncomplete this change.\n\nChange-Id: Ic0567bdef373dbae17031a30aabc779027173229\n"
    },
    {
      "commit": "573db4a2077380d81fa74ee2309162530db87a98",
      "tree": "d9aa3090b1fdb26e06b3ce9e03620c389d26186e",
      "parents": [
        "26fee74850cffaa3ab6b4f2dc42a0816e3c1b800"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 15:30:50 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 15:30:50 2011 -0800"
      },
      "message": "Fix VM test 077\n\nRecognize incompatible class changes in resolution of direct methods.\nRecognize incompatible changes to invokevirtual by rewriting in the\nverifier.\n\nChange-Id: Ie7d938bae39179d44ac3bedb575a3ccf73ac43b2\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": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "b2062cfb7266fc52b7f03f00d26f0883f04986ae",
      "tree": "886e0f675c5c9aadd4680b41d73abbd6e8e06163",
      "parents": [
        "5d4bdc29737a693027daaf6ed3f0792368eb4bae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 03 01:24:44 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 03 01:49:40 2011 -0700"
      },
      "message": "Avoid SetResolvedDirectMethod on failure to ResolveMethod\n\nChange-Id: I03b579a43ba4004b6441d5123f1ce402feb77624\n"
    },
    {
      "commit": "5d4bdc29737a693027daaf6ed3f0792368eb4bae",
      "tree": "6f1e9e59c2899488ab018d5cd8279641041f7634",
      "parents": [
        "5e863ddd72a70d33525f7403a695f7bc1c218938"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:15:43 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:56:53 2011 -0700"
      },
      "message": "Various runtime/JNI related fixes.\n\nNewObject returns NULL if exception is thrown in constructor.\nAllocate the peer then call constructor to ensure peer_ field is\ninitialized.\nChange thread state for AddFinalizer and pass current thread through for\nease.\n\nChange-Id: Ib578b6d44b08aef10fde5d8bc27cc6a2acbf6fae\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": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\n"
    },
    {
      "commit": "d81871cbbaa34c649e488f94f61a981db33123e5",
      "tree": "a3adf3b7469fee507a4d4c4491942fbd48b4483d",
      "parents": [
        "262bf46ddc91e5b4fbd367127ff21a1877d939f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 03 13:57:23 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 24 11:56:15 2011 -0700"
      },
      "message": "Verifier clean up.\n\nThis is the first part in trying to move to a more rigorous mode of\nasserting the validity of garbage collection maps.\nIn the bring over of the verifier from Dalvik a large class had been\ncreated where all of the Dalvik/Dex functions were static methods of\nthat class. This rewrite introduces 3 key classes, Verifier that\norchestrates the verification of a method, RegisterLine which describes\nthe types associated with registers for a particular PC and RegType\nwhich describes the current type of a register within a line. The\nfunctionality is brought over from Dalvik but cleaned up to not do\nthings like goto. Failing within the verifier is also cleaned up. By\nvirtue of having stateful objects the interfaces between different\naspects of the verifier are greatly simplified.\nTo save space, RegTypes are cached upto a maximum possible 2^16, and\ngiven an Id. As the number of RegTypes is typically small this means\nthat we have a full OO implementation but at a lower space cost than the\ncurrent convention that uses botched together enum values requiring\n32bits of storage in a RegisterLine rather than 16bits (ie half the\nspace requirement per register in a register line). To make use of\nthis space more rigorous monitor verification is brought back, and\nultimately I think we can work around bug 3215458 with richer RegTypes\nthat are aware of literal objects.\nThe code removes short cuts that had been added to Dalvik\u0027s verifier and\nappear illegitimate, it also fixes a large number of bugs in the\ndescription of the verifier.\nWhere possible the spaghetti of code is replaced with straight line\nif-then-elsif.. code that clearly follows the ordering semantics of the\nspecification. The code is also aiming toward having a more type\nrigorous description of the verification process, and when this isn\u0027t\npossible following the description convention of the specification.\n\nChange-Id: Id25b742018a2ad5ea95687973cca610d7e19513c\n"
    },
    {
      "commit": "6a4be3a6226cec645cf905dd352e44f7968a7fa4",
      "tree": "15c98c404db44f60850a94d9b3cff29ff16e1cd5",
      "parents": [
        "fb8a127fd2ca8eb6cbbc9d62b708c1fc2b3003a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 16:34:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 17:01:32 2011 -0700"
      },
      "message": "Fix calling conventions for UnresolvedDirectMethodTrampolineFromCode\n\nChange-Id: I1b35c33d89f0526c80bc8d21e064617d0eac6cd1\n"
    },
    {
      "commit": "1cb66f5f569a3c631d940d8bd10f7466e5e5ed29",
      "tree": "0d9410087fffcf7075d3b66d066365d6e872c3fb",
      "parents": [
        "94ce37a3919a0bdb8855a3d3264a50df1dbc41be"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Oct 18 14:00:10 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Oct 18 15:31:17 2011 -0700"
      },
      "message": "Update CodeAndDirectMethods\n\nUpdate the CodeAndDirectMethods table following a\ncall to the unresolved target stub.  Removes a previous\nchange that tried to do this in ResolveMethod.\n\nChange-Id: I078d3c006a54ca124f217b01b60d0bd813e189e4\n"
    },
    {
      "commit": "362f9bc807169bcfc8761dde067bbfb79b5ad0fd",
      "tree": "100689aa13a39913b43cb12780ba472897cd665a",
      "parents": [
        "fc86162ce2a3467acb690e18cc8bd9b3daafc606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 18:56:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:26:54 2011 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace warnings.\n\nChange-Id: I16b69d773e59b49e8e30227b5aa5cb1959a8930f\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": "b04f69f90d2594092bec5b294bbe7329d295bd66",
      "tree": "b0b0bb6c4db1da0dbe5ff4025013247cc7815b41",
      "parents": [
        "0691851db8fb542f4058dfb6e75faf3f9a9f5ff4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:40:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:41:31 2011 -0700"
      },
      "message": "Fix for test 069.\n\nCan\u0027t throw exception in fast interface lookup. Extra debugging that\nmethods look sane when creating native to managed records.\n\nChange-Id: If0b970c418db5ff075334af8359541a94e8680b7\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": "03a20ba67cfdc46f5ad8d77242a666a4cb0512f2",
      "tree": "c9ad51b063cdcc39b30503fee1a1bb4f755800dd",
      "parents": [
        "b278356581806fd2acd8b14a1b8fb7dc482bcf4e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 10:24:13 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 13 10:24:13 2011 -0700"
      },
      "message": "Implement DexFile_getClassNameList\n\nChange-Id: I9b48628e338a5346bc3ac21f3469e4e3d224a956\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": "14b1b249bdd21d674c9371dee34f8ae055f73ba2",
      "tree": "3937406ac34854fed63ae51971255251e6470cdd",
      "parents": [
        "3147a2347d4fd775d51ec0a558955332beb9d1fe"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 18:54:34 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 17:24:19 2011 -0700"
      },
      "message": "Fix handling of long arguments in unresolved and proxy stubs.\n\nChange-Id: I4561230971ed31ee9af0ec5007e0d09b30781779\n"
    },
    {
      "commit": "df9a78201872d72adde40355a7020610b795def9",
      "tree": "e73ece501cf9e67739938ac5ff7b5ebe73058413",
      "parents": [
        "ea2a11d5f20814f17985ae3d4defc8dd843f19b9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 16:53:22 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 16:53:22 2011 -0700"
      },
      "message": "Comment and minor clean up.\n\nChange-Id: I06b37258c5fa49a351545528f7a524ccfcb77d94\n"
    },
    {
      "commit": "ea2a11d5f20814f17985ae3d4defc8dd843f19b9",
      "tree": "45b16554af189aba0d83df7a310dd2d3bf2129ce",
      "parents": [
        "d958820ec84df7a698e7ba2b3ba5ab2d88f75e0a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 16:48:51 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 16:49:59 2011 -0700"
      },
      "message": "Determine direct method trampoline type from dispatch.\n\nChange-Id: I7a8e577ad3cf622df06a70a2d4f12505b5e8383e\n"
    },
    {
      "commit": "e79e6f9c2658c477cb4a1739818e15ad72421776",
      "tree": "369da23a60ba29ee6adfb55638604b7b171ed098",
      "parents": [
        "dfcdf1a0d2d8d75b4c701317e4a092498a8d1e9e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 15:35:34 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 15:35:34 2011 -0700"
      },
      "message": "Fix bugs in UnresolvedDirectMethodTrampolineFromCode.\n\nChange-Id: Ife26b464d3dd4d602d8b9269a64a4e2028b7daf6\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": "92827a5fc2598589b3717269cc09c33b8c53f30b",
      "tree": "e1bf729c78f160c54b9afdb87e999f4f97d5fdcd",
      "parents": [
        "6f495f2898a418f87e2a919e04fe23521bb0b9e9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 15:50:01 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 15:50:01 2011 -0700"
      },
      "message": "Setup AbstractMethodError and dlsym stub when loading from oat\n\nChange-Id: Ie97fa6eb3cfb7d0c6224aa6914f28a7b137ae056\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": "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": "1cb0a1dfc32531c79a968aeac26ccb5525862497",
      "tree": "61d0345bd2b9b951026c9ce18d51c2b2d6963255",
      "parents": [
        "40c47b50f6c37ff2af919a0d51f12d3e7cc794a3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 15:24:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 17:27:15 2011 -0700"
      },
      "message": "Support for resolving unknown direct/static methods.\n\nIf we can\u0027t resolve a method we don\u0027t know whether it is direct or\nstatic from the dex information (other than the invocation instruction).\nAdd support for a third type of resolution stub that can discover the\ntype of the method based on the calling method and PC of the invocation\ninstruction. Its still unimplemented to look up the instruction and\nfigure out if the type is static or not.\n\nChange-Id: I8b76e6ba2c946376e7fe287dbcca17bcaab0e133\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": "ad25ac568407ceb14334e8551dd1c4dd0fd6993c",
      "tree": "f1e2edb4b87d0b5ce35f94069db2f6cdb77db210",
      "parents": [
        "8c2f6414e1cff9a024a14369352f7ce112528b9e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 04 19:13:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 05 22:40:00 2011 -0700"
      },
      "message": "Static and direct resolution stub.\n\nEnsure that invoke static and direct go through a stub that causes\nresolution and initialization.\n\nChange-Id: I872900560322817d8f4378b04ac410d9ea0b3b17\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": "e1410a2e47f4fc94de4e4f300308ee857bf1120a",
      "tree": "fdda27f0251d65de1d40080ce56ab58353a8485b",
      "parents": [
        "8cbc8bc716d7a47019ad14403920c72547b2fb96"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 12:10:24 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 12:10:24 2011 -0700"
      },
      "message": "Fix the detail messages for NoSuchMethodErrors thrown from generated code.\n\nChange-Id: Ice525a5352fe66bf13d44752c59d3994b8bdfe97\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": "5cb5ad27944efb08d4556b3c0d362302e37e832b",
      "tree": "63334f19072ca2ba7179973f0ce62101ee89605d",
      "parents": [
        "d6fe38d96b6116bd53cf2cb14734af8d69e08661"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "message": "Fix exception throwing to support no detail message.\n\n(The empty string as a detail message is distinct from a NULL detail message,\nand is treated differently by Throwable.printStackTrace.)\n\nChange-Id: I8c65deac9f18c5782dcf6e72e4c37e6dd4174fe9\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"
    }
  ]
}
