)]}'
{
  "log": [
    {
      "commit": "a5a97a2bc1dfed70869da34650a5a2a3a3a06ac4",
      "tree": "d81a0521bdae29b2a1f8655dddc18d5fe07728cd",
      "parents": [
        "e23d93ca1631ac5598d0f373c11d954b23ff586b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 14:08:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 16:46:43 2011 -0700"
      },
      "message": "Compile time class initialization for classes without \u003cclinit\u003e\n\nChange-Id: I4f167253fbfa16ed8f51928c5891e7a48b68e526\n"
    },
    {
      "commit": "e23d93ca1631ac5598d0f373c11d954b23ff586b",
      "tree": "8c3cea9acad87908de3209bccbd725b903a0b96a",
      "parents": [
        "98eacac683b78e60799323e8c7d59e7214808639"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 14:48:43 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 14:48:43 2011 -0700"
      },
      "message": "Added method fields for register map. Populated by verifier.\n\nThe register map consists of 2 ByteArrays, 1 for the header and 1 for\nthe actual data.\n\nChange-Id: Ibd7455a2eff7572587dabff7dd67fd810ce21f84\n"
    },
    {
      "commit": "98eacac683b78e60799323e8c7d59e7214808639",
      "tree": "3be4dabf184c2e72fa54e367cfc996ae3ace13b8",
      "parents": [
        "8692721dd8a3679ca874c3d1be0cecb62ff148f6"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 14 16:11:53 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 13:41:42 2011 -0700"
      },
      "message": "Enabled verification in the compiler and some other verifier fixes.\n\nThe verifier still needs to be able to continue execution after it fails\nto resolve a class or method. The structure for that doesn\u0027t exist yet.\n\nChange-Id: Ie32f6f9971fed02b645ba715bc5164f86f70f1c6\n"
    },
    {
      "commit": "8692721dd8a3679ca874c3d1be0cecb62ff148f6",
      "tree": "abd3801c4b25dfd1ddade53285609808be4b2ae3",
      "parents": [
        "161928613d3f097108319de60494fab1aab8d48a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 11:31:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 11:39:41 2011 -0700"
      },
      "message": "Fix ClassLinker::LinkInterfaceMethods bug\n\nAlso:\n- Expanded class_linker_test with additional vtable and iftable coverage\n- Added -fkeep-inline-functions where it works on host for debugging\n- Added disabled test for running command line Fibonacci with oatexec\n\nChange-Id: Ie295551e42493c7cca05684e71e56bf55bd362a4\n"
    },
    {
      "commit": "161928613d3f097108319de60494fab1aab8d48a",
      "tree": "4a77aeca94c70e008ff7e1921e0104df9cb1ce92",
      "parents": [
        "93868217589caa3302a3886f55b99447db78e093"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 12 17:50:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 10:04:31 2011 -0700"
      },
      "message": "Add oat file generation and tests to build\n\n- Currently builds boot.oat for host and target\n  and target oat files for art tests.\n- Added cross compilation support via --strip-prefix option to dex2oat\n- Reduced output to prevent build log spam (Compiler::verbose_)\n- Added image roots for recovering important pointers on image load\n- Redid JNI stub creation and made the stub array an image root\n- Fixed JNI stub test by making JNI stub array executable\n- Fixed JNI UnregisterNative to having it reinstall the JNI stub\n- Fixed ARM JNI stub to generate PIC code (with irogers)\n- Fixed JniCompiler to generate PIC code (with irogers)\n- Fixed FindNativeMethod to handle recursive calls\n- Finished checkFieldType to use Object::InstanceOf\n- Fixed thread unsafe access to ClassLinker::{dex_files_,dex_caches_}\n- Added ResolvedMethod variant for use with Method* for context\n- Fixed ImageWriter to call FixupMethod\n- Fixed ImageWriter to rewrite JNI stub references\n- Improved error reporting on lack of ANDROID_DATA dir or art-cache dir\n- Fixed Runtime::Start to InitLibraries before creating thread peer\n- Implemented Space::IsCondemned to skip spaces loaded from images\n- Implemented artFindInterfaceMethodInCache,\n  allowing interface invocation from managed code\n\nChange-Id: I603e97fa0ac44508ae05a2e47c1cdb4481678d7b\n"
    },
    {
      "commit": "93868217589caa3302a3886f55b99447db78e093",
      "tree": "5cfda8ef2ef49f5574da7dc245f2ba9648666d54",
      "parents": [
        "7ede61eceed2f8da14a4fff05c57c748c160d57f",
        "367ce0b7b8241354ae484e7e041707464729b5cd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 23:37:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 23:37:00 2011 -0700"
      },
      "message": "Merge \"Fix invoke-interface bug.\" into dalvik-dev"
    },
    {
      "commit": "367ce0b7b8241354ae484e7e041707464729b5cd",
      "tree": "bf056843f75bb289f6a54d7b31e2e8c10495188b",
      "parents": [
        "43a364291dcdfe08e530e9568748359735dd7442"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 23:19:50 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 23:19:50 2011 -0700"
      },
      "message": "Fix invoke-interface bug.\n\ngenInvokeInterface relies on the helper routine to do its null check\nof \"this\", so it must load it as part of the regular argument loading\nsequence.  Previously, that was being ommitted.\n\nChange-Id: I99b325c2c2a284c2bfe6b48839ea561199b66b55\n"
    },
    {
      "commit": "7ede61eceed2f8da14a4fff05c57c748c160d57f",
      "tree": "f3fc2ac910aaf0ad0295d914e48da820b5bbffd6",
      "parents": [
        "8d768a954b101a9532f980253ac46be2c53aba11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 18:18:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 18:18:06 2011 -0700"
      },
      "message": "Implement VMRuntime.\n\n(Some of this forwards to unimplemented stuff in Heap.)\n\nChange-Id: I01e51d5673e61ddfdbfa2098310122502c3afcf1\n"
    },
    {
      "commit": "8d768a954b101a9532f980253ac46be2c53aba11",
      "tree": "ba6fa0be68a2289d5de3eb6c4de6fe93f6cd858a",
      "parents": [
        "43a364291dcdfe08e530e9568748359735dd7442"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "message": "Thread suspension.\n\nIncludes SuspendAll/ResumeAll, and uses them in Heap and SignalCatcher.\n\nChange-Id: Ie39b868ca5961f5016f367acade5071392bb723e\n"
    },
    {
      "commit": "43a364291dcdfe08e530e9568748359735dd7442",
      "tree": "1141a3f0f91c527dfe28796e88f166d2bc0ed7fd",
      "parents": [
        "303b01ed0d36017371e29b1f1e209dd19896ac9e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 14:00:13 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 15:40:34 2011 -0700"
      },
      "message": "Fix null check elimination\n\nThe existing null check elimination mechanism suffered from the same\nlimitation as the SSA renaming: it took shortcuts that were valid in\na trace compilation world, but not in a method compilation world.\n\nThis CL replaces the old mechanism, and additionally takes advantage\nof some the fact that \"this\" is always non-null, as are objects returned\nfrom OP_NEW_* (thanks Ian!).\n\nTwo test cases added.  The one for ensuring that unnecessary null checks\nare elminated requires manual inspection.  The other - that we don\u0027t\neliminate a necessary null check - is disabled until exceptions are working.\n\nChange-Id: I2a9b72741f56617bf609e4d7c20244796c988f28\n"
    },
    {
      "commit": "303b01ed0d36017371e29b1f1e209dd19896ac9e",
      "tree": "4ddc4250e3871e5e9bac0c2e1763c746d6f3f7b2",
      "parents": [
        "c0efedb7584070b84e4f18f691580b8c79aff036"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 14 00:46:13 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 14 12:45:59 2011 -0700"
      },
      "message": "Add unit test for exercising AbstractMethodErrorStub code.\n\nChange-Id: I6021459a75681c92a40931f591852e974f1ca1a6\n"
    },
    {
      "commit": "c0efedb7584070b84e4f18f691580b8c79aff036",
      "tree": "ae6908f4013334fd7e7c816d199e2255b31a775b",
      "parents": [
        "c486c11a1c71ca9c118d57152427b741229cda49",
        "5ee7a8b56dee896245e0f4ae5215f8b7376c1787"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 11:37:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 11:37:06 2011 -0700"
      },
      "message": "Merge \"Implement sun.misc.Unsafe and fix the jfieldID/jmethodID leak.\" into dalvik-dev"
    },
    {
      "commit": "5ee7a8b56dee896245e0f4ae5215f8b7376c1787",
      "tree": "da49e925c8a0833e6afc31e1e6558290ae9bc6ce",
      "parents": [
        "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 16:40:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 11:36:28 2011 -0700"
      },
      "message": "Implement sun.misc.Unsafe and fix the jfieldID/jmethodID leak.\n\nChange-Id: I2997e19d9ae5e332a6731e7e10ebeff32bff085a\n"
    },
    {
      "commit": "c486c11a1c71ca9c118d57152427b741229cda49",
      "tree": "5575e00693a65ea2c3a6087989011fd977cf028f",
      "parents": [
        "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 13 16:43:52 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 13 20:31:46 2011 -0700"
      },
      "message": "Generating stub code that throws AbstractMethodError exception when hit.\n\nChange-Id: Ib440c0cb6e7f820fb1b73113763ebd2b7d64cdba\n"
    },
    {
      "commit": "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9",
      "tree": "2e8b9d3a2ddd6e987162c48f0b0fb50577d3e7fd",
      "parents": [
        "f0cde549bed96e16401a347a4511b59130c61e84"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "message": "A few more trivial write barrier calls.\n\nChange-Id: I4b0f3c4347eed9a2e0a494ae1382065c026d5c40\n"
    },
    {
      "commit": "f0cde549bed96e16401a347a4511b59130c61e84",
      "tree": "a5c91481513ea75897d0f64ae9bb660923f42a94",
      "parents": [
        "5ea047b386c5dac78eda62305d14dedf7b5611a8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 13 14:55:02 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 13 15:13:44 2011 -0700"
      },
      "message": "SSA renaming fix \u0026 invalid opcode fix\n\nThe old SSA renaming mechanism was able to take some shortcuts because\nof the limited CFG shapes it encountered.  Shortcut replaced and previous\nworkaround code removed.\n\nAlso fixes a regression introduced by the stack bounds checking change\nwhich sometimes resulted in an (opcode \u003c 0x200) assert failure, and\nremoves an optimization flag and associated code that no longer applicable.\n\nChange-Id: I617e9e5347dfd3a7e8f44a9772647bf4530631d6\n"
    },
    {
      "commit": "5ea047b386c5dac78eda62305d14dedf7b5611a8",
      "tree": "67f105b78df9d734a463b1194af11bf37ec6fe48",
      "parents": [
        "1d3f114124b140629a7d22fa5cfa20ab8fc96934"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 14:38:18 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 14:38:18 2011 -0700"
      },
      "message": "Support 64-bit volatiles and reference/pointer volatiles.\n\nChange-Id: I62c0751747767c02d6c57afd0fce3db6c8b02510\n"
    },
    {
      "commit": "1d3f114124b140629a7d22fa5cfa20ab8fc96934",
      "tree": "a4e8eb3d22aa2991a73dea85da1d31fda6114c91",
      "parents": [
        "93e74e8d879270071c3aa163f8495ada8d21f42f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 12:00:00 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 13:27:51 2011 -0700"
      },
      "message": "Support 32-bit volatiles.\n\nChange-Id: If40ead8e13986d589ac1d1637034e25fc4108189\n"
    },
    {
      "commit": "93e74e8d879270071c3aa163f8495ada8d21f42f",
      "tree": "6efbb3203ab055168a613df128f7742edb3c0e29",
      "parents": [
        "c74255fffb035001304c9a058a2e730a5a1a9604"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 11:07:03 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 11:34:52 2011 -0700"
      },
      "message": "More of the thread infrastructure.\n\nWe can now run managed code on multiple threads.\n\nChange-Id: Ia4ce9c94602773db238c967c15194a6db780d12f\n"
    },
    {
      "commit": "c74255fffb035001304c9a058a2e730a5a1a9604",
      "tree": "a2ebae8c3170928768fdbdbdd6ab6d05f7bc8636",
      "parents": [
        "d369bb76dee0df2d2a106e9bf7f4e6446ed6deaa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 22:47:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 12 16:23:08 2011 -0700"
      },
      "message": "Interning image strings\n\nChange-Id: I7e93b3975fe43d91d00b8185b65e8e0fd67ff6f4\n"
    },
    {
      "commit": "d369bb76dee0df2d2a106e9bf7f4e6446ed6deaa",
      "tree": "fbcfe2341a78a860b97649f719406709a8c87341",
      "parents": [
        "aaa208006d7c8cc0f381c4aa9b525be24066c495"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 14:41:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 15:10:49 2011 -0700"
      },
      "message": "Various things.\n\nThis patch:\n\n1. adds good-enough implementations for a couple of Class native methods we\nneed.\n\n2. removes a fixed TODO from image_test.\n\n3. adds missing null checks to the Thread native methods, and forwards\nThread.nativeCreate to Thread::Create.\n\n4. stops jni_compiler from overwriting already-registered native methods\nwith the dynamic lookup stub.\n\n5. adds workarounds to Thread::CreatePeer so we can cope better without\ncode, attempts to initialize thread groups correctly, dumps thread state\nfrom the managed peer (where one exists), and implements Thread::DumpStack\nfor debugging (and SIGQUIT dumps).\n\nChange-Id: I3281226dd22ec852dca5165748fc75a254904ac0\n"
    },
    {
      "commit": "aaa208006d7c8cc0f381c4aa9b525be24066c495",
      "tree": "7a19bb527abaa56a98462d2c212ebe043b9435d2",
      "parents": [
        "31384c59bb4b387f29f2b6d4d3db886c29b81170"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 11 21:47:37 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 12 10:53:58 2011 -0700"
      },
      "message": "Implement Throwable::nativeFillInStackTrace and nativeGetStackTrace.\n\nRefactor stack trace into compact internal form which is then used to\ncompute larger and more verbose StackTraceElement[] form. Fix some\npotential problems with GC.\n\nChange-Id: I4a4308c1ec5b82fd95b649d5ec0504b9607e688f\n"
    },
    {
      "commit": "31384c59bb4b387f29f2b6d4d3db886c29b81170",
      "tree": "e6143162d188dd8f038e66edf1164f78b37922f8",
      "parents": [
        "ec5adf351879cb6235faf2c6c068c2553d85a7d2"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 06 15:27:45 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Sep 12 10:50:34 2011 -0700"
      },
      "message": "Generating stub code for registering a jni function at runtime.\n\nOn ARM and x86. Added a unit test.\n\nChange-Id: I6b1ee09ad18295108f406ce21d73555796ecbba6\n"
    },
    {
      "commit": "ec5adf351879cb6235faf2c6c068c2553d85a7d2",
      "tree": "f3f8e9ab69690e729a523188468d7150ede27bf7",
      "parents": [
        "005ab2eb9e9ab4762c00e73c7028de2850bd5108"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 11 15:25:43 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 11 18:14:46 2011 -0700"
      },
      "message": "Mark top of managed stack on helper transitions\n\nTo assist with unwind from a helper function, store current SP prior\nto helper call in Thread.  NOTE: we may wish to push this into a\ntrampoline to reduce code expansion.  NOTE #2:  Because any helper\nfunction which can throw will be non-leaf, it will spill lr at the saved\naddress - 4 (the word immediately below caller\u0027s Method*).  To identify\nthe callsite, load the spilled lr, clear the low bit, subtract 2, and use\nthat address in the native \u003c-\u003e dalvik mapping to identify the callsite.\n\nAlso in this CL are a ralloc fix and some extra SSA logging.\n\nChange-Id: Idd442f0c55413a5146c24709b1db1150604f4554\n"
    },
    {
      "commit": "005ab2eb9e9ab4762c00e73c7028de2850bd5108",
      "tree": "a23c5792b8120afec5fc08f836e029aff4024629",
      "parents": [
        "b153906f2cd770ae460a480d3c9eb7ad421ff0ae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 17:15:31 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 17:25:18 2011 -0700"
      },
      "message": "It\u0027s not an error to reenter InitializeClass.\n\nOsConstants.\u003cclinit\u003e calls a native method that uses JNI to set fields.\nThis necessarily calls GetStaticFieldID, which entails a call to\nClassLinker::EnsureInitialized.\n\nChange-Id: I8b3e2bdd927fd72c19fbee68f0ba511ad53887c0\n"
    },
    {
      "commit": "b153906f2cd770ae460a480d3c9eb7ad421ff0ae",
      "tree": "127c9d02cc53646798982f85aab86a9ada709f66",
      "parents": [
        "61ae414dc086a0437701ab80c1260611a88af04a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 16:14:31 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 16:14:31 2011 -0700"
      },
      "message": "Use the right dex cache in the SGET/SPUT fast paths.\n\nOtherwise we get the wrong types.\n\nChange-Id: Ibd5278e0a94c3cb96b9c2f862b0ee6dcfd0bd15e\n"
    },
    {
      "commit": "2bb97f9191df2fece8d138a9b78e2ec7d532877e",
      "tree": "9c1f14e8830289b554bef191b959fb3335f56353",
      "parents": [
        "a2e443106c1d5c7ffdb3bf42e98c0bf5c83b4ddc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 15:43:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 15:43:37 2011 -0700"
      },
      "message": "Fix debugging output for unresolved fields.\n\nChange-Id: I539396004457e63981bc4f5f5b08e4a2365952ce\n"
    },
    {
      "commit": "a2e443106c1d5c7ffdb3bf42e98c0bf5c83b4ddc",
      "tree": "054e64030682bfd6cf4881812dc9d0c54aeb9d64",
      "parents": [
        "e4f7e1d6d5749fb3a62182cbf078b39b38d219c3",
        "8daa0929f08a3080ea64dbd4e997e72f411e6fc9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 14:07:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 11 14:07:57 2011 -0700"
      },
      "message": "Merge \"More threads work.\" into dalvik-dev"
    },
    {
      "commit": "8daa0929f08a3080ea64dbd4e997e72f411e6fc9",
      "tree": "cecee23131d5e0357c17c44bcccc7ddcfb31b925",
      "parents": [
        "4b620ffb1b4d0c96a94bb3afe314f35d53990ec6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 13:46:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 14:01:57 2011 -0700"
      },
      "message": "More threads work.\n\nAdds stubs (and sometimes implementations) for dalvik.system.VMStack and\njava.lang.Thread native methods. There was a bug in the dalvik\nthread priority setting code, where the current thread and the passed-in\nthread were confused.\n\nI\u0027ve also pulled Mutex and ThreadList out into their own files, and\nmoved some functionality around (with the aim of having more stuff\nprivate, especially locks).\n\nChange-Id: Ieb0f22669cac3df44ca34f7868f8e7d4dfa09ab6\n"
    },
    {
      "commit": "e4f7e1d6d5749fb3a62182cbf078b39b38d219c3",
      "tree": "052089dc0ee31e07f28db69e00e255ce337da315",
      "parents": [
        "4b620ffb1b4d0c96a94bb3afe314f35d53990ec6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 13:21:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 13:45:45 2011 -0700"
      },
      "message": "Add MANAGED to class definition for classes mirrored beween C++ and managed code\n\nThe MANAGED attribute causes the classes to be packed to avoid platform specific padding.\nMotivated by the recent change to StringClass where the target had an extra trailing word.\n\nChange-Id: I4a8f11845169e61c024914c04623713ced9a9e66\n"
    },
    {
      "commit": "4b620ffb1b4d0c96a94bb3afe314f35d53990ec6",
      "tree": "47cc36e7921d3dabbcd44d9f5a763199c67bf2c3",
      "parents": [
        "c396efc1baec875160afe34a3e65c46cce2bd72f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 01:11:01 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 12:04:34 2011 -0700"
      },
      "message": "Finish moving state to managed heap\n\nChange-Id: I8a3b0e353b30268a05d6ed8ea0a6a4bead100660\n"
    },
    {
      "commit": "c396efc1baec875160afe34a3e65c46cce2bd72f",
      "tree": "ef07aec980e23bb17c20ad3e1f0c6c6d4b665db8",
      "parents": [
        "d3932bb7ce2b4ac6a808cf6bc7d0fc1cd7863a80"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 11 09:36:41 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 11 09:36:41 2011 -0700"
      },
      "message": "Build fix: move target-indepent code out of __arm__\n\nF2L and D2L are target independent, so the function pointer\ninitialization should be outside of the arm-only section.\n\nChange-Id: I979b39d25a7d49c47e4fbbf6c0d5e50a460c2e43\n"
    },
    {
      "commit": "d3932bb7ce2b4ac6a808cf6bc7d0fc1cd7863a80",
      "tree": "dbeafb93283d486433b6e07848837636d05e46de",
      "parents": [
        "7957d54c4424beed94fee35f790617a44b9f785e",
        "5ade1d255ef1b5022321ac20493208703b34d2b1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 11 09:17:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 11 09:17:18 2011 -0700"
      },
      "message": "Merge \"Complete compiler portion of exception handling\" into dalvik-dev"
    },
    {
      "commit": "5ade1d255ef1b5022321ac20493208703b34d2b1",
      "tree": "60098d280b1b5be925d431654cba4b14d5756eec",
      "parents": [
        "1240dade91d6c4bbf4e367ca608fcdc15348da45"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 09 14:44:52 2011 -0700"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Sep 10 15:21:01 2011 -0700"
      },
      "message": "Complete compiler portion of exception handling\n\nWill still need much testing once the runtime portions are in place.\n\nChange-Id: I90fc7c1fd89bfae89dfd19a6e422024b6b5454ec\n"
    },
    {
      "commit": "7957d54c4424beed94fee35f790617a44b9f785e",
      "tree": "3cc01441cf5677df85a98bd0b108ca03a43918e0",
      "parents": [
        "1240dade91d6c4bbf4e367ca608fcdc15348da45"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 17:16:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 17:16:01 2011 -0700"
      },
      "message": "Move the expected value to the front in our helpers, for clarity.\n\nChange-Id: Ifc6a3fdf2367cd2ba5959ac8fadc7c27cca14bd5\n"
    },
    {
      "commit": "1240dade91d6c4bbf4e367ca608fcdc15348da45",
      "tree": "d44767871d0febadc9773df9839c16977cde91be",
      "parents": [
        "2d7404799fa4ca5d2dc925b3d411c642ff3cb4aa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 16:24:50 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 16:52:46 2011 -0700"
      },
      "message": "Test conversion of floats and doubles to strings.\n\nThere was some confusion about what Method::HasCode meant, and we weren\u0027t\nquite ready to compile all methods _and_ be able to invoke them. We were\nalso missing a couple of native methods in Throwable that we need if we\u0027ve\ncompiled all Throwable\u0027s code (because the next time we ask ClassLinker to\ndo anything, it\u0027ll try to throw NoClassDefFoundException from one of the\nClassLoaders, and that will try to run a Throwable constructor, which will\nend up trying to call these native methods).\n\nChange-Id: If4783f3c866aaa72413d7b7810ef2541d418ae33\n"
    },
    {
      "commit": "2d7404799fa4ca5d2dc925b3d411c642ff3cb4aa",
      "tree": "1aa32161b3f43e5f2db7322b137a3cb9b390371a",
      "parents": [
        "18ff70843a829ec3f5c873b2244f667e6db2545f",
        "2ed67398cdd94cbb11d7409f3e7264f07b69de01"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 15:11:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 15:11:00 2011 -0700"
      },
      "message": "Merge \"Move Method shorty to managed heap\" into dalvik-dev"
    },
    {
      "commit": "2ed67398cdd94cbb11d7409f3e7264f07b69de01",
      "tree": "413d571a7ba4add63a2d4a71ace407e1de62dcb5",
      "parents": [
        "dbc0525b23653a425fcd7532d04eecc32d138b9d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 14:53:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 14:53:28 2011 -0700"
      },
      "message": "Move Method shorty to managed heap\n\nChange-Id: Iafd05502b498c823063d0603915a92db8c95f060\n"
    },
    {
      "commit": "18ff70843a829ec3f5c873b2244f667e6db2545f",
      "tree": "abe12c5868823dfa6455590baf351ad78d5c87a5",
      "parents": [
        "cefd1878e09fb0fb519a175545a99eb8c4a375b2",
        "0e073f7b9386a461b470d30415a96480ab1b76af"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 09 14:21:17 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 14:21:17 2011 -0700"
      },
      "message": "Merge \"Make CommonTest.compiler_ a UniquePtr\" into dalvik-dev"
    },
    {
      "commit": "cefd1878e09fb0fb519a175545a99eb8c4a375b2",
      "tree": "6a1624e0cc03a93efdaf575a24bbc0214fa0e243",
      "parents": [
        "449b4bdf90b527ef7a42faaf087494538e62363c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 09 09:59:52 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 09 12:30:27 2011 -0700"
      },
      "message": "Add stack overflow check\n\nChange-Id: I67fcb5ad4bda304879ce05561b03aa7cd46e9990\n"
    },
    {
      "commit": "449b4bdf90b527ef7a42faaf087494538e62363c",
      "tree": "1fb2ea7c95ce4cf06cf3c1c18d972a3b8a4821b4",
      "parents": [
        "dbc0525b23653a425fcd7532d04eecc32d138b9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 12:01:38 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 12:01:38 2011 -0700"
      },
      "message": "Take into account that our stacks grow down.\n\nAnd lose the term \"high water mark\", since it confused everyone who\nlooked at the previous change. The netural \"stack end\" seems like our\nleast worst choice.\n\nChange-Id: Ic9587c1ed72b671249904ac8688b7ddd38a99648\n"
    },
    {
      "commit": "0e073f7b9386a461b470d30415a96480ab1b76af",
      "tree": "894997452038b78246301da71ae88b6a9ac663f5",
      "parents": [
        "630ddde46e52f5fbeba61227000152b0a99131a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 09 10:45:46 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 09 10:45:46 2011 -0700"
      },
      "message": "Make CommonTest.compiler_ a UniquePtr\n\nChange-Id: I80e8b0108ea9da7cdd352f42715abe48edf8bf15\n"
    },
    {
      "commit": "dbc0525b23653a425fcd7532d04eecc32d138b9d",
      "tree": "ea38ad6aecf8986c67e7d47cfa22d7dea3f079ec",
      "parents": [
        "630ddde46e52f5fbeba61227000152b0a99131a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 01:59:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 10:45:02 2011 -0700"
      },
      "message": "Make LinkFields ordering more stable for easier maintenance\n\nThis is prepatory for moving remaining malloc heap storage to the managed heap.\n\nAdded offset tests for static fields of class instances known to C++ for boot strapping.\nFound bug in MethodClass.\n\nChange-Id: I267bbbf9192d648668e8958e9eddc3eac54bb52e\n"
    },
    {
      "commit": "630ddde46e52f5fbeba61227000152b0a99131a4",
      "tree": "f61e65f18d277b26689809aace5d0f8ac579df4a",
      "parents": [
        "2c8f653c98d658419f464b6147c10e11a664d2e6",
        "be759c63c6bb58b76ac71cad2c5a736bd31f374d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 22:47:17 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 22:47:17 2011 -0700"
      },
      "message": "Merge \"Add a heap HWM to the Thread*, for compiled code.\" into dalvik-dev"
    },
    {
      "commit": "2c8f653c98d658419f464b6147c10e11a664d2e6",
      "tree": "479eb3bb75cefbae633c5663193675d4ea6bb328",
      "parents": [
        "92b3b5623ec8b65f3e099c076e247bb8273692f8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 17:16:34 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 08 22:22:27 2011 -0700"
      },
      "message": "Support for cross compilation.\n\nRefactor architecture specific files into arm and x86 name spaces. Make\nassemblers and calling conventions use the factory pattern and an\ninstruction set specifier.\n\nChange-Id: I20cd7aecacc1ae3d418221d98bbe1d69be9162a7\n"
    },
    {
      "commit": "be759c63c6bb58b76ac71cad2c5a736bd31f374d",
      "tree": "60c5ab8fdb9d47bb0db5bda996aaac21caa4b1f3",
      "parents": [
        "92b3b5623ec8b65f3e099c076e247bb8273692f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 19:38:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 19:50:39 2011 -0700"
      },
      "message": "Add a heap HWM to the Thread*, for compiled code.\n\nAlso fix a bug in thread detach, and implement the thread exit callback.\n\nDestroy our pthread_mutex_t instances, and check for success. (This will\ncatch us deleting locked Mutex instances.)\n\nChange-Id: I26cf8117b825234f6c790e0cf70b2c025a743f84\n"
    },
    {
      "commit": "92b3b5623ec8b65f3e099c076e247bb8273692f8",
      "tree": "94f85f0a8d33884b41227a1a560a755deccfffa2",
      "parents": [
        "15041f433341f111665943ecfb9ca88c77d5c19a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 16:32:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 18:11:55 2011 -0700"
      },
      "message": "Add locking to the heap.\n\nNow tsan is happy with us too, at least on the host.\n\nChange-Id: Ib4657f56be2014de832dff8886b63843a40ea788\n"
    },
    {
      "commit": "15041f433341f111665943ecfb9ca88c77d5c19a",
      "tree": "0587bef3a3a10acfc99e8586b0368be5dd10ef74",
      "parents": [
        "75bbd552bfe56e782473f669b7228e86189e243c",
        "d1f0fdedff1dac7249e1ed61ddc52a09265c138f"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 08 17:57:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 17:57:10 2011 -0700"
      },
      "message": "Merge \"Verifier now generates register maps, though nothing uses them yet.\" into dalvik-dev"
    },
    {
      "commit": "75bbd552bfe56e782473f669b7228e86189e243c",
      "tree": "dd05387120749a2165442c538b3f2c0e28209a83",
      "parents": [
        "8ba4fa861d75aaa765d00336b877c41291bb36f2",
        "0d966cff87464544a264efdbfba6c379474d5928"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 17:57:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 17:57:05 2011 -0700"
      },
      "message": "Merge \"Add suspend check \u0026 stub\" into dalvik-dev"
    },
    {
      "commit": "0d966cff87464544a264efdbfba6c379474d5928",
      "tree": "74ce88ebfdb902c90700b20b6b4e82290b77e70b",
      "parents": [
        "34cd9e58431504c36d0cb2a8fd0f3fac16dcb406"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 17:34:58 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 17:54:29 2011 -0700"
      },
      "message": "Add suspend check \u0026 stub\n\nChange-Id: I017653026ca95166cbc4b6b94b5da1fef2597804\n"
    },
    {
      "commit": "d1f0fdedff1dac7249e1ed61ddc52a09265c138f",
      "tree": "c75051ccfa60b9d11a7ddfc104736b713c10e630",
      "parents": [
        "693267ad474039981e9be20a592ac2e4e3bd742e"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 08 17:25:33 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 08 17:54:06 2011 -0700"
      },
      "message": "Verifier now generates register maps, though nothing uses them yet.\n\nThe code to generate the maps is enabled for testing, but currently\nnothing is done with them. Will work out what to do with them later.\n\nChange-Id: Ifa5b7a9dd1233813d4f4040cacfb83e9b4a5330b\n"
    },
    {
      "commit": "8ba4fa861d75aaa765d00336b877c41291bb36f2",
      "tree": "a1e2211069e09fd2a60a066daa15d5e74bc951db",
      "parents": [
        "34cd9e58431504c36d0cb2a8fd0f3fac16dcb406",
        "7540ff4b6ad0ff5d8c5f60658b66155caf3a7cbc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 08 17:32:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 17:32:34 2011 -0700"
      },
      "message": "Merge \"Small change to make CompilerTest.CompileDexLibCore pass\" into dalvik-dev"
    },
    {
      "commit": "7540ff4b6ad0ff5d8c5f60658b66155caf3a7cbc",
      "tree": "a3a1c5df402f076a8485b3b31150d00f48abd0cd",
      "parents": [
        "693267ad474039981e9be20a592ac2e4e3bd742e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 16:38:46 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 08 17:10:58 2011 -0700"
      },
      "message": "Small change to make CompilerTest.CompileDexLibCore pass\n\nChange-Id: Id5989a369acec41faae4bbd949b8979962384b2c\n"
    },
    {
      "commit": "34cd9e58431504c36d0cb2a8fd0f3fac16dcb406",
      "tree": "a0f2966c88787aa9b44c385b5ced02c59a512307",
      "parents": [
        "693267ad474039981e9be20a592ac2e4e3bd742e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 14:31:52 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 16:45:16 2011 -0700"
      },
      "message": "Add run-time resolution paths for iget/iput.\n\nChange-Id: I1bd26286a39d057aebbb0d847bc58ecd656af458\n"
    },
    {
      "commit": "693267ad474039981e9be20a592ac2e4e3bd742e",
      "tree": "87a5bcfc0fd528e14f34f3e4212718100b58748e",
      "parents": [
        "5fe594f576225dd7d333835e39c448a71ea9b433"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 06 09:25:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 08 15:05:14 2011 -0700"
      },
      "message": "Fix GarbageCollector to work with VERIFY_OBJECT_ENABLED\n\nThere were two problems with the GC:\n1.) roots were being missed for most of the C++ fields\n2.) Heap::RecordFree(Object) was not being called, only Space::Free\n\nTo solve #1, added all C++ shadow fields to libcore.\nThis involed updating dalvik to cope with the new sizes and offsets.\nThis had the positive side effect of allowing a lot of special cases\nin the object scanning and image writing.\n\nTo solve #2, added a call to the now public Heap::RecordFree from MarkSweep\n\nGiven the now better working GC:\n- Reenabled HeapTest.GarbageCollectClassLinkerInit which is now passing.\n- ImageWriter now GC\u0027s before writing an image to avoid garbage.\n\nChange-Id: Ie7d1cc89e0bcf314cb37f0cabcb8593bf6e4d4be\n"
    },
    {
      "commit": "5fe594f576225dd7d333835e39c448a71ea9b433",
      "tree": "f9b6203abaf07df1421f6e7cadcbb2c307cef5b2",
      "parents": [
        "4ef765227a0098b6f4dfe47d2d7a6f084cec9560"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 12:33:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 14:26:18 2011 -0700"
      },
      "message": "A bit further along the track of multiple threads.\n\nThis also makes valgrind happy, and tsan mostly happy. (The heap, it turns out,\ndoesn\u0027t have a lock yet.)\n\nThe DexVerifier changes are just to make valgrind happy, and the code a little\nless unidiomatic.\n\nChange-Id: Ic5d436b4863b9d7088eb0b8fe9d32308919899d8\n"
    },
    {
      "commit": "4ef765227a0098b6f4dfe47d2d7a6f084cec9560",
      "tree": "ccb19f4a5e238ec6ecd4fc62f515107c138ba8a2",
      "parents": [
        "2a475e7b93d754e0a7525bb5c7059386307ea63a"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 10:00:32 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 13:54:16 2011 -0700"
      },
      "message": "Transmit mapping table to runtime\n\nPass the \u003cnative offset,dalvik offset\u003e mapping table to the\nruntime.  Also update the MonitorEnter/Exit stubs to optionally\ntake the thread pointer.\n\nChange-Id: Ie1345fbafc6c0477deed44297bba1c566e6301f6\n"
    },
    {
      "commit": "2a475e7b93d754e0a7525bb5c7059386307ea63a",
      "tree": "000c5f4483de6c4e90ba5bcdee5f616c1e499b50",
      "parents": [
        "a475f392df7a66211056a8dc57a2aff92b0b8ceb"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 07 17:19:17 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 08 07:57:25 2011 -0700"
      },
      "message": "Check-cast, instance-of, misc fixes\n\nSupport for check-cast and instanceof (largely untested).  Added a bunch of\nhelper stubs, a debugging option to show the method name if we try to branch\nto an uncompiled method, new tests and a missing call to reset the compiler\u0027s\narena storage.\n\nChange-Id: I933ad1fbdbca110f92c9201cae2353bf4862a8ac\n"
    },
    {
      "commit": "a475f392df7a66211056a8dc57a2aff92b0b8ceb",
      "tree": "9615f26607cb75e7e171e55d9cc28ec38debb1ab",
      "parents": [
        "5dbddeee1cb4e0962c7267db0588b563bf45526f",
        "02b48d1dae0c3adc01ef6668226fb648fb52990a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 17:34:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 17:34:35 2011 -0700"
      },
      "message": "Merge \"Sketch out detaching threads (with partial implementation).\" into dalvik-dev"
    },
    {
      "commit": "02b48d1dae0c3adc01ef6668226fb648fb52990a",
      "tree": "c06c4986e1d1c65fbc39225fe330e301f803af24",
      "parents": [
        "6108953a145c1affcadc1e0a91b17e647ee52a02"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 17:15:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 17:15:51 2011 -0700"
      },
      "message": "Sketch out detaching threads (with partial implementation).\n\nChange-Id: Iafe5f91c8170d4f90155f509ba9e2e3d921af66f\n"
    },
    {
      "commit": "5dbddeee1cb4e0962c7267db0588b563bf45526f",
      "tree": "72ea085f32727295b987199ccea907a9ca731680",
      "parents": [
        "6108953a145c1affcadc1e0a91b17e647ee52a02"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 07 16:38:26 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 07 16:58:24 2011 -0700"
      },
      "message": "Added tests for interfaces that extend other interfaces.\n\nExercises IsAssignableFrom and FindInterfaceMethod. Also made\nClass::Implements private again and switched to using IsAssignableFrom.\n\nChange-Id: Iea195a2cc124a87ebb3d87d778a7edcd25984b46\n"
    },
    {
      "commit": "6108953a145c1affcadc1e0a91b17e647ee52a02",
      "tree": "c815fcda11d2f47dc64f1fbb7ed1e73ec567be0d",
      "parents": [
        "bdb76512685ed6ce33b640b13da9628e4770db1a",
        "d3a729707671111ddd6a1aebbf8f986ce477642e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 15:33:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 15:33:26 2011 -0700"
      },
      "message": "Merge \"Don\u0027t try to run Thumb 2 code on x86 hosts.\" into dalvik-dev"
    },
    {
      "commit": "d3a729707671111ddd6a1aebbf8f986ce477642e",
      "tree": "dd627105404acc64cc9d7f263e7a3cfd601f60ff",
      "parents": [
        "7015ed5319762f2ddbaa0e2a2dec69c4e46440cd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 15:31:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 15:31:59 2011 -0700"
      },
      "message": "Don\u0027t try to run Thumb 2 code on x86 hosts.\n\nChange-Id: I57c772540706326c77d414a007b55116c1c48ff2\n"
    },
    {
      "commit": "bdb76512685ed6ce33b640b13da9628e4770db1a",
      "tree": "a6e5c2e893bc944fc32d963e9a029c0c7dbd0f6e",
      "parents": [
        "7015ed5319762f2ddbaa0e2a2dec69c4e46440cd"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 07 11:43:16 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 07 15:27:18 2011 -0700"
      },
      "message": "Added second pass which does code flow checking to verifier.\n\nRan this through libcore and it finds no errors, but I still need to\ncreate tests to make sure it catches errors when it should. Also, it\u0027s\nstill missing 2 pieces, replacement of failing opcodes and generation of\nthe register map.\n\nChange-Id: I0f4c4c20751b5b030ca44c23e1d1c2e133404e0c\n"
    },
    {
      "commit": "7015ed5319762f2ddbaa0e2a2dec69c4e46440cd",
      "tree": "bf693ec944441fc9dc0788c74f5e38cd77045934",
      "parents": [
        "4ff5dad41ffdb14a74b9ba6bd7f74698e79eee05",
        "dcc247493fd8fb243e335c3ec08e5e625896a47c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 14:31:45 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 14:31:45 2011 -0700"
      },
      "message": "Merge \"A little bit more of the threads implementation.\" into dalvik-dev"
    },
    {
      "commit": "dcc247493fd8fb243e335c3ec08e5e625896a47c",
      "tree": "5eedb27fb6a295a1daec4cee276ba05c28abe483",
      "parents": [
        "f5ecf06388960bc1424ed0a8652c78e345d82106"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 14:02:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 14:02:44 2011 -0700"
      },
      "message": "A little bit more of the threads implementation.\n\nThe most important change here is understanding that Thread\u0027s id_ field\nwas unrelated to java.lang.Thread\u0027s id field.\n\nChange-Id: I832b92145332e1ded63a7824033dae684eeacf28\n"
    },
    {
      "commit": "4ff5dad41ffdb14a74b9ba6bd7f74698e79eee05",
      "tree": "7fc026990664220ab9e84150a6d625cb89cfaec5",
      "parents": [
        "c83b29da4c2052e2299bf0480065ea2d4c6cdac1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 07 13:56:27 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 07 13:56:58 2011 -0700"
      },
      "message": "Weaken JNI asserts on return spill location when return is void\n\nChange-Id: I9aa9457824f1ecd1299966bb361512d233981c4e\n"
    },
    {
      "commit": "c83b29da4c2052e2299bf0480065ea2d4c6cdac1",
      "tree": "53810d043b2e55ce024958e61cd1fa3afb163d37",
      "parents": [
        "98e0e5eb4792dd71ef696b8601c93b527193b0d3",
        "0c7f26d54ddb70dbc60aaaa6a6e9f011e402018f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 07 13:33:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 13:33:53 2011 -0700"
      },
      "message": "Merge \"Fixes for register promotion; enable fast path\" into dalvik-dev"
    },
    {
      "commit": "98e0e5eb4792dd71ef696b8601c93b527193b0d3",
      "tree": "c6748b31acadf1b627935fcaf0bf7578c6e85aba",
      "parents": [
        "f5ecf06388960bc1424ed0a8652c78e345d82106",
        "7a99c11d220ec68c208b507570e3a78c2c18a7a1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 07 13:24:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 13:24:34 2011 -0700"
      },
      "message": "Merge \"Fix various JNI compiler bugs/unimplementeds.\" into dalvik-dev"
    },
    {
      "commit": "7a99c11d220ec68c208b507570e3a78c2c18a7a1",
      "tree": "39b4bd767b7f1cef1ba45000f5da7e1d834780aa",
      "parents": [
        "69b15fb098162f19a4c20e6dccdcead04d9c77f0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 07 12:48:27 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 07 13:08:48 2011 -0700"
      },
      "message": "Fix various JNI compiler bugs/unimplementeds.\n\nFor both x86 and arm we were under computing the outgoing argument size.\nFor ARM the managed double/long passing had been assumed to be following AAPCS,\nhowever, currently we split long/doubles across R1_R2 and R3 and the stack.\nAdd support for this in the managed register and jni compiler code.\nAdd test and various other clean ups to jni compiler code.\n\nChange-Id: I4129076d052a8bce42304f5331b71aa3ac50210f\n"
    },
    {
      "commit": "0c7f26d54ddb70dbc60aaaa6a6e9f011e402018f",
      "tree": "ebe5eb3c9f97386ff93b5b79f434d0de687f0c65",
      "parents": [
        "109bd6a38d0cd7c4b7797a9f2db8324c797d1368"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 07 12:28:51 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 07 12:28:51 2011 -0700"
      },
      "message": "Fixes for register promotion; enable fast path\n\nHad an off-by-one error in the range argument loading (only mattered when\nregister promotion is enabled - for range args we do a memory copy and\nmust ensure that all promoted values are flushed to memory before the\ncopy.  Also reworked and removed some asserts for sitations that are\nlegal now that we\u0027re promoting.  Enabled fast path code to exercise it\na bit.\n\nChange-Id: Id1acb3dad01d5d1077661150e98e51fd4243b6f1\n"
    },
    {
      "commit": "f5ecf06388960bc1424ed0a8652c78e345d82106",
      "tree": "6f6caaf3b5e77ff01ab9201fd2616c4721da43d4",
      "parents": [
        "69b15fb098162f19a4c20e6dccdcead04d9c77f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 06 17:37:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 10:05:02 2011 -0700"
      },
      "message": "Invoke \u003cclinit\u003e where necessary.\n\nThis lets us run Long.toString and friends for integral types, though\nwe\u0027ll need a libcore hack to avoid ThreadLocals for the time being.\n\nChange-Id: I04bba5914f1b7d00e4917922e65b9c27302a59ff\n"
    },
    {
      "commit": "69b15fb098162f19a4c20e6dccdcead04d9c77f0",
      "tree": "84fdfc26f560fb618b652a0aff98347f875a2653",
      "parents": [
        "109bd6a38d0cd7c4b7797a9f2db8324c797d1368"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 12:25:21 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 06 15:28:47 2011 -0700"
      },
      "message": "Working dex2oat and oatexec\n\nadb shell dex2oatd --dex-file\u003d/system/framework/core.jar     --image\u003d/system/framework/boot.oat --base\u003d0x50000000 \"\u0027--method\u003dLjava/lang/System;logI(Ljava/lang/String;)V\u0027\" \"\u0027--method\u003dLjava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V\u0027\"\nadb shell dex2oatd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\nadb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld\n\n09-05 17:58:18.912  2385  2385 I System  : Hello, world!\n\nChange-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc\n"
    },
    {
      "commit": "109bd6a38d0cd7c4b7797a9f2db8324c797d1368",
      "tree": "52bfab2cb3767eb856ddca7de18fcd079b73838d",
      "parents": [
        "13f5a583d7120861170a3b93f60cb3adef2a31bf"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 06 13:58:41 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 06 14:20:50 2011 -0700"
      },
      "message": "Fix for argument passing bug\n\nThe code was using r1 as a temp when it was live.\n\nChange-Id: I79f42203eced2aff49980241c890629ecc3ff09a\n"
    },
    {
      "commit": "13f5a583d7120861170a3b93f60cb3adef2a31bf",
      "tree": "4b7970af2d111d371e09594d3bf84995e80bdae5",
      "parents": [
        "42ee14279065352a4b9a3e8028d02c567e847d05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 06 13:39:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 06 13:39:14 2011 -0700"
      },
      "message": "Add missing file from last commit.\n\nChange-Id: Ia2b35a812b6787f27ec0c2935cd637a177caa92e\n"
    },
    {
      "commit": "42ee14279065352a4b9a3e8028d02c567e847d05",
      "tree": "55b1ba08ff4202f13cfa0a0b303b62e48183805e",
      "parents": [
        "82f3e09e27284056a4007a6c38fce832d877f672"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 06 12:33:32 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 06 12:47:47 2011 -0700"
      },
      "message": "Log line-at-a-time to work around Android logging lossage.\n\nAlso deduplicate the two copies of gettid, and switch image_test over\nto using SignalCatcher\u0027s SIGQUIT dumping rather than rolling its own\nsubset.\n\nChange-Id: I8b70aaa3a3b9258c8258728c6a66e5dc4fa6399e\n"
    },
    {
      "commit": "82f3e09e27284056a4007a6c38fce832d877f672",
      "tree": "cca4e28ae4ba8071cc5529a6b96deed4c0adcea6",
      "parents": [
        "b9231c81fad1c9d85ea7e6db9120f872e3417380"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 05 22:54:45 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 05 22:54:45 2011 -0700"
      },
      "message": "Minor test tweaks.\n\nChange-Id: I8b7163de28e7e356e5da1d30bf887cdb949baac6\n"
    },
    {
      "commit": "b9231c81fad1c9d85ea7e6db9120f872e3417380",
      "tree": "e831abaff485ebc0efa708748542ee2f6941052c",
      "parents": [
        "7d2b14197bb5ebbe3cd8532705caf4f83c8d339f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 05 22:13:19 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 05 22:31:13 2011 -0700"
      },
      "message": "Test arg passing for arraycopy.\n\nChange-Id: Id0a6b6043b9604aa3bb077af0ed858be9bfa5407\n"
    },
    {
      "commit": "7d2b14197bb5ebbe3cd8532705caf4f83c8d339f",
      "tree": "14f2cec208a5ce0c5922cf011a20710f128ddb5e",
      "parents": [
        "6a0f7f50223087006a2845b784b12923abbdd8f1"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Sep 05 19:29:47 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Sep 05 19:29:47 2011 -0700"
      },
      "message": "Fix the upcall\u0027s off-by-1 bug.\n\nChange-Id: I1405b887e34473a2c453889a05a22b17ed27c571\n"
    },
    {
      "commit": "6a0f7f50223087006a2845b784b12923abbdd8f1",
      "tree": "c5e0b75c44aaa4be5b627838c84936aaf97def0c",
      "parents": [
        "e9a72f6a1a84f4d9af0b07dd289b89e45ffb32d5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 05 16:14:20 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 05 16:14:20 2011 -0700"
      },
      "message": "Fix bug in invoke-super slow path\n\nAlso re-enabled some SystemMethods tests, now that we can compile\nthem.\n\nChange-Id: Ie91aabd0eb015656d4dc546b4698c967b73c6ba8\n"
    },
    {
      "commit": "e9a72f6a1a84f4d9af0b07dd289b89e45ffb32d5",
      "tree": "0a709a3694d0a3fd11878d39b6422e5e997c8c94",
      "parents": [
        "7715c68b5f137ff5ffa4f2e1fee0a96fa6cfffb4"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 04 17:59:07 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 05 13:38:41 2011 -0700"
      },
      "message": "Try/Catch analysis; various workarounds\n\nFixed a couple of codegen bugs.  Added a temporary workaround until\nSSA renaming problem is fixed.  By enabling the \"CompileDexLibCore\"\ntest in compiler_test.cc and disabling the jni_compiler, we appear to\nbe successfully compiling 17,641 methods of libcore (note: of those,\n4 exhibit the SSA problem).\n\nAlso turned off most of the compiler logging, and disabled the fast\npath for invoke virtual (which seems to be broken).\n\nChange-Id: I0ecf460cba209f885209efbee62e9f80bffbf666\n"
    },
    {
      "commit": "7715c68b5f137ff5ffa4f2e1fee0a96fa6cfffb4",
      "tree": "b1925f7af14759500a417b74da6d0bbd83c28437",
      "parents": [
        "a8f3fe90a4329631ea78a6c2956350e56c3d0884"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Sep 05 04:04:36 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Sep 05 04:04:36 2011 -0700"
      },
      "message": "Fix the calling convention bug where we didn\u0027t account for Method*.\n\nChange-Id: Ic54f0a3e15377d7f161fa3d719eb762f969ef729\n"
    },
    {
      "commit": "a8f3fe90a4329631ea78a6c2956350e56c3d0884",
      "tree": "d41c461f11a6e75ee1893a159272ffb70e252e7f",
      "parents": [
        "aa762fe078d10e5024968686f3265440a4d88c38",
        "a59d1793b89d0fd62c7544c94da4b6e5dac95ad5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 20:05:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 04 20:05:14 2011 -0700"
      },
      "message": "Merge \"Work around two problems.\" into dalvik-dev"
    },
    {
      "commit": "a59d1793b89d0fd62c7544c94da4b6e5dac95ad5",
      "tree": "d268871ef320a36c59206fc0521166849b5dafd6",
      "parents": [
        "0f4c41d75c821162184501cd4b510a93f6eb580f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 18:42:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 18:42:35 2011 -0700"
      },
      "message": "Work around two problems.\n\nThe code generation for the invoke-virtual fast path is broken, and we\u0027re\nnot ready for a moving collector yet.\n\nChange-Id: I1fee82c821cee53325181386da0d462beacca204\n"
    },
    {
      "commit": "aa762fe078d10e5024968686f3265440a4d88c38",
      "tree": "f8ca63ba57669b314110b14c0b6866bc0dafbcc6",
      "parents": [
        "0f4c41d75c821162184501cd4b510a93f6eb580f",
        "9b269d281d16798b0c24027c32ec6507f71b2787"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 04 15:22:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 04 15:22:35 2011 -0700"
      },
      "message": "Merge \"Fix bug in long arguments for JNI on x86\" into dalvik-dev"
    },
    {
      "commit": "9b269d281d16798b0c24027c32ec6507f71b2787",
      "tree": "52f493786b74f81fc6e660d64dea2631824251b6",
      "parents": [
        "1da522de18ac6e4c2913c3233529e9dd115059f8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 04 14:06:05 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 04 15:08:39 2011 -0700"
      },
      "message": "Fix bug in long arguments for JNI on x86\n\nAlso add new unit test.\nChange-Id: I226501dbfec6e207318d8063b5daf53b7b606ee4\n"
    },
    {
      "commit": "0f4c41d75c821162184501cd4b510a93f6eb580f",
      "tree": "01afed2e082c398cd655e31485215ed82ef591c0",
      "parents": [
        "1da522de18ac6e4c2913c3233529e9dd115059f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 14:58:03 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 15:03:48 2011 -0700"
      },
      "message": "Various fixes.\n\nCHECK_xx arguments should be the \"right\" way round, not backwards like\nASSERT_xx and EXPECT_xx.\n\nUse /mnt/sdcard/ rather than /sdcard/ to bypass FUSE and avoid getting\nintermittent mkdir(2) \"Device or resource busy\" failures.\n\nBetter diagnostics when methods not found by test helpers.\n\nRemove the whitelist from oatCompileMethod.\n\nLeave evidence in the log of what we\u0027ve compiled and where we put it.\n\nDisable card marking by generated code until we have a cards to mark.\n\nDistinguish between CanPutArrayElementFromCode and CanPutArrayElement.\nImplement both.\n\nAdd a new test to see how much of the basic System and String/StringBuilder\nfacilities are working.\n\nChange-Id: Ie24f2859e404ab912e6cc77d170ceb4df5ecdf19\n"
    },
    {
      "commit": "1da522de18ac6e4c2913c3233529e9dd115059f8",
      "tree": "d64473583896cb02f6d5bad52cbac940059bdefa",
      "parents": [
        "193a44d9637b51724274b1de384245776e264a46"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 04 11:22:20 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 04 12:46:26 2011 -0700"
      },
      "message": "Complete static field accesses; clear TODO\u0027s\n\nThis adds the fast path for static field accesses.  Miscellaneous\nchanges include adding dummy helper for filled array allocation,\nelimination of redunant arg1/r1 load, deleting TODO\u0027s that I\u0027m not\ngoing to do, and altered compiler_test to use System.out.println\ninstead of System.out.printf.\n\nChange-Id: I560aa6093c98f1d288d64f346c8fd9ab7f180994\n"
    },
    {
      "commit": "193a44d9637b51724274b1de384245776e264a46",
      "tree": "198fd6ce98eb1dd2e67e2ea38248b7d3c5abba8f",
      "parents": [
        "5500cb92a68b87ee1c28977ec0b7734b6b5c1a2f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 12:01:42 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 12:06:58 2011 -0700"
      },
      "message": "Make InitializeStaticStorageFromCode handle requests for uninitialized storage from \u003cclinit\u003e\n\nChange-Id: I8562ad4fdb33c02c575ddc8986e49ee37c566cfd\n"
    },
    {
      "commit": "5500cb92a68b87ee1c28977ec0b7734b6b5c1a2f",
      "tree": "ca7d8c09169b7a03995e571554d523ad9e6da2ca",
      "parents": [
        "7f40ffcb953870fb0df7646c447ffdc7b3ef0b2c",
        "848a4b339936cec230512705c9d5eeed55ca74ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 11:35:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 04 11:35:32 2011 -0700"
      },
      "message": "Merge \"Fix ClassLinker::InitializeStaticStorageFromCode\" into dalvik-dev"
    },
    {
      "commit": "848a4b339936cec230512705c9d5eeed55ca74ca",
      "tree": "ad460a6c8cb702eeaf13818a238d2ba53fe66d18",
      "parents": [
        "4a3164faefd255b1c1e911e7ad7c3d57749caaf6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 11:29:27 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 04 11:29:30 2011 -0700"
      },
      "message": "Fix ClassLinker::InitializeStaticStorageFromCode\n\nPreviously the code computed the storage and returned the pointer to\nit, but it forgot to set the value into the table for future\ncallers. Added a test to confirm the correct behavior.\n\nChange-Id: I48717a3d4926f5ddc0ad09d065f75d031eb5b8fb\n"
    },
    {
      "commit": "7f40ffcb953870fb0df7646c447ffdc7b3ef0b2c",
      "tree": "eb00446683fb046e7ba5b5f97b0b4be161c0ad2b",
      "parents": [
        "4a3164faefd255b1c1e911e7ad7c3d57749caaf6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 10:50:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 04 10:50:01 2011 -0700"
      },
      "message": "Fix the LDT code to be -O2 safe and valgrind clean.\n\nChange-Id: Iad987f828a8d8932a9f7212c71eddd3c943f6311\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": "9baa4aefc370f48774b6104680193d9a7e4fb631",
      "tree": "26ed5735022c29f77d6b025c357674ecf50b27c8",
      "parents": [
        "e9ea8d1f002dd86976f0e1493ab8aa23a66c0494"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 01 21:14:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 13:25:31 2011 -0700"
      },
      "message": "Remove use of MemMap for code allocation.\n\nIn preparation of moving to an executable code space.\n\nChange-Id: I6cb6fec93c66005f8020d718fe3c1c5aa1c85356\n"
    },
    {
      "commit": "e9ea8d1f002dd86976f0e1493ab8aa23a66c0494",
      "tree": "07ba3c3c34f4ed67567065c4642839abda4da287",
      "parents": [
        "558788e60554ff5c110fb90cc46ee1ecef3ec85a"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Sep 03 01:48:06 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Sep 03 01:48:06 2011 -0700"
      },
      "message": "Replaced Method::NumReferenceArgsBefore() with itr_refs already.\n\nRemove this unused method.\n\nChange-Id: I09f2bffa18553ec4d1afddab18ee808ed066f83b\n"
    },
    {
      "commit": "558788e60554ff5c110fb90cc46ee1ecef3ec85a",
      "tree": "b4ce080b9fc04fe2f4baefa3e716f3e47158808b",
      "parents": [
        "668512afd0d9b3772a0abc589208b729ee16bc61"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Sep 01 02:39:11 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Sep 02 19:05:26 2011 -0700"
      },
      "message": "Testing the decoding of JObject.\n\nChange-Id: Ie539275592fbb7b648f9ce5e4a619aecc576768c\n"
    },
    {
      "commit": "668512afd0d9b3772a0abc589208b729ee16bc61",
      "tree": "f9743f1e22227aac31955fe6335a88191eb4a845",
      "parents": [
        "93620f65a41af2a5708249845452a603ca13b807"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Sep 01 14:18:34 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Sep 02 19:00:33 2011 -0700"
      },
      "message": "Decoding references. Otherwise, buggy code works only on stack refs.\n\nNow, we handle not only SIRT (stack stuff), but because now we call\nDecodeJObject(), we can also handle Globals, Global Weak, and Local.\n\nChange-Id: Ibaf2f6ff81765bda6c14491b35ea088a5bf2bb27\n"
    },
    {
      "commit": "561227c80077bbb4147f778043f1a836af6b9248",
      "tree": "ebce6fd50c988843de3e92f15dfae911d9ae1a73",
      "parents": [
        "3e465b1a72d89f7c30f18efb90dc688d33d46c16"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 02 15:28:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 02 18:30:37 2011 -0700"
      },
      "message": "Complete direct, static \u0026 virtual invoke\n\nReworked direct/static invoke to use code_and_method_ structure.  Removed\nslow/fast path distinction for direct/static (because there is only\na single path).  Added fast and reworked slow path for virtual invokes.\n\nChange-Id: I037aee26b63244d03ac2bd8720d8c55e256b9b4d\n"
    },
    {
      "commit": "3e465b1a72d89f7c30f18efb90dc688d33d46c16",
      "tree": "2bac1709132fd261d54abdb3601f64065ea210b7",
      "parents": [
        "0db460b881a3fdaa63d581a1dc39e417d682faaa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 18:26:12 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 18:26:12 2011 -0700"
      },
      "message": "Get the test speed back to where it was.\n\n(This patch actually has an active ingredient, unlike my last screwup.)\n\nChange-Id: Ic9f48a1c7c62ea024c51dc57e245a7d4df068db0\n"
    },
    {
      "commit": "0db460b881a3fdaa63d581a1dc39e417d682faaa",
      "tree": "367d1431634a9a8418a99034fc38af36f491c281",
      "parents": [
        "9b81cf3cbd222363c087807406fd54d27ca57cc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 17:44:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 17:44:35 2011 -0700"
      },
      "message": "Make our tests only 2x slower than they were this morning...\n\n...by disabling the expensive heap checks that made us 6x slower.\n\nChange-Id: I049db7ab256214b79d67586e1f70bbf7a1936608\n"
    }
  ],
  "next": "d92bec457dc6c506c80e9da6b8e0c958266b5cdc"
}
