)]}'
{
  "log": [
    {
      "commit": "fa147e22a73c6df166b08a2f71f9c9b52b09d17c",
      "tree": "d50b1c6b89de4fcc4473f2aa2defe3bbc0f8289c",
      "parents": [
        "4fe0ef28ed58502a3652e827f5931df0b45cf39c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "message": "Numerous fixes to MIPS. Basic oatexec works.\n\n- Fixed reversed base and destination reg in genConstString\n- Changed compiler to use T9 to hold address to jump to\n- Fixed compilation of instruction getting current PC\n- Prevented T9 from being used as a compiler temp\n- Fixed loadBaseDispBody for long form single loads\n- Fixed stack setup for SaveAll callee methods to save rSELF \u0026 rSUSPEND\n- Added .cpload directive to assembly to regenerate $gp when overwritten\n- Fixed passing of extra arguments on the stack to account for space\n    reserved for $a0-$a3\n- Fixed resolution trampoline to properly setup and restore stack\n- Created mips stubs for interface trampoline and unresolved direct\n    method trampoline\n\nChange-Id: I63a3fd0366bdfabdebebf58ec4b8bc9443cec355\n"
    },
    {
      "commit": "a6389411aaec94222c1c5c7ace7ad47343e6bada",
      "tree": "033bf04e409f5636db1a5ec788e6752bc4060889",
      "parents": [
        "bac4334bb222e24fb3a080b69de0262a39e397c2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 21:35:03 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 21:35:03 2012 -0700"
      },
      "message": "Fix regression in target run-test 069.\n.\n\nChange-Id: I428b6b8c5ade8abad1e8b049f5caf5ddb953963c\n"
    },
    {
      "commit": "137e88f798857321f4007631fdf052d2830ec2c4",
      "tree": "7ed6a166328adbc5109fbb5b07a1cdc4e3bbb739",
      "parents": [
        "7469ebf3888b8037421cb6834f37f946646265ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 08 17:46:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 09 14:16:35 2012 -0700"
      },
      "message": "Fast path interface dispatch.\n\nInterface dispatch when the method we\u0027re dispatching against is known\ncurrently goes slow path. This change makes the load of the interface\nmethod either a load of a constant or from the resolve methods table. It\nalso makes the null check on the \"this\" pointer inline.\n\nChange-Id: I69571a062d3d693bee2dec6e46a456e0f74411cd\n"
    },
    {
      "commit": "50b35e2fd1a68cd1240e4a9d9f363e11764957d1",
      "tree": "4f3c58b7b293380f19e4f33357cb352e3330772e",
      "parents": [
        "8e9a1497f0d7da4d55f6e7ed8a7d96ba6db7222d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 10:09:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 11:07:39 2012 -0700"
      },
      "message": "Explicitly pass Thread::Current to MutexLock and Alloc.\n\nChange-Id: I8b75bc0617915465f102815b32306aa7760dcae4\n"
    },
    {
      "commit": "1f5393447b9f45be7918042d9ee7b521376de866",
      "tree": "1793cb0ae00b38a63f8cfd3a25b6cb0ee4edca16",
      "parents": [
        "870ea4772199f8d4cbd9a269f9093620ee50a59c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 21:09:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 09:27:04 2012 -0700"
      },
      "message": "Make PopSirt inlinable, pass self to SirtRef.\n\nChange-Id: Ieb91526b1cb1f8644ceb3c5b99649f658f43bbc1\n"
    },
    {
      "commit": "870ea4772199f8d4cbd9a269f9093620ee50a59c",
      "tree": "7946a657bfd8363e7e985f08193fcac5b76c7059",
      "parents": [
        "eb569a9f67d5e4d3bf1919553f0050e3d729dcc3",
        "120f1c74a9768e958377b6c97897511b27ae58c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 17:31:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 17:31:02 2012 -0700"
      },
      "message": "Merge \"Fail threads attaching during runtime shutdown.\" into dalvik-dev"
    },
    {
      "commit": "120f1c74a9768e958377b6c97897511b27ae58c8",
      "tree": "fa1f90d88ea34d8ef9eec729d27c7a70956a6a09",
      "parents": [
        "cabc60e71a65fa17e5a99fba94fc61523fbeb478"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 28 17:17:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 17:29:26 2012 -0700"
      },
      "message": "Fail threads attaching during runtime shutdown.\n\nIntroduce counters to indicate that threads are being born. Don\u0027t allow\nthread birth to occur during runtime shutdown.\n\nBug: 7000936\n\nChange-Id: Ib0d78f78c0ff126a4b5d3b5a6f1a2ff8f5061ae9\n"
    },
    {
      "commit": "4f8f04ad94e68d2307a955d6bd72415fc0852725",
      "tree": "f4c7f58a5149667b5f8e3376064faa81f5b9842e",
      "parents": [
        "3e96a16c27c986275f60afe682d0b2a3064f45c9"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 02 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 03 13:34:43 2012 -0700"
      },
      "message": "Fix endianness of compiled code and stacks of stubs for MIPS.\n\nThe gtests now all work on MIPS.\n\nChange-Id: I2883ce002f23d75e700366014517c863fb626d09\n"
    },
    {
      "commit": "81d425b0b232962441616f8b14f73620bffef5e5",
      "tree": "cd1e46656269acf20e78817d675e56d9b9133e6c",
      "parents": [
        "bfaf917edbb1de8d158c3615e0da8ac3143d10c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 16:03:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 17:19:25 2012 -0700"
      },
      "message": "Pass self to lock methods.\n\nThis avoids frequent recomputation of\nThread::Current/pthread_getspecific.\n\nAlso add a futex based reader/writer mutex that is disabled.\n\nChange-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee\n"
    },
    {
      "commit": "0703060875166106af3d490c6c264611aea67ec8",
      "tree": "6e8c265b64a0ffac69f1072686f961d59060ec70",
      "parents": [
        "63818dc8b06af4a1e65c41b453f1a42166c22728"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "message": "Fixes to make jni_compiler_test work on MIPS.\n\nFixed the jni compiler in numerous ways:\n- Added NOP for delay slot of branches/jumps\n- Made calling convention match registers pushed by stubs\n- Fixes to assembly and added noreorder directive\n\nChange-Id: I32bc55985fbbc58b5b5358149766b8738b3ac955\n"
    },
    {
      "commit": "474b6da273c7ce6df50a4e51eb9929a77e1611c3",
      "tree": "b67074e7e4c16e01384c2f7d416f4e4ad3b3bd61",
      "parents": [
        "de1ef40bd5f344dbb0bdb68f555f45868f502ae6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 00:20:38 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 17:01:42 2012 -0700"
      },
      "message": "Move thread flags and state into 32bits.\n\nWe need to ensure that transitions to Runnable are atomic wrt to a\nthread modifying the suspend count. Currently this is achieved by\nholding the thread_suspend_count_lock_. This change creates a set of bit\nflags that summarize that the suspend_count_ is raised and also others\nflags that signify the managed code should go into a slow path.\n\nThe effect of this change are two-fold:\n1) transitions from suspended to runnable can CAS the thread state\nrather than holding the suspend_count_lock_. This will make JNI\ntransitions cheaper.\n2) the exception/suspend/interpreter poll needed for shadow frames can\nbe rolled into a single compare of the bit fields against 0.\n\nChange-Id: I589f84e3dca396c3db448bf32d814565acf3d11f\n"
    },
    {
      "commit": "66f19258f9728d4ffe026074d8fd429d639802fa",
      "tree": "fd94009774c6cbbb1528ea096e606133bd35f104",
      "parents": [
        "a5e1e3d153990845d80cb8d013157210f11a473c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 18 08:57:04 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 21 17:32:56 2012 -0700"
      },
      "message": "Change dex cache to be java object instead of array, add pointer to dex file in dex cache.\n\nGeneric clean up to facilitate having GDB macros for Pretty* helper functions.\n\nImproved cleanliness of DexCache since having it as an object array was not the best solution.\n\nFixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.\n\nRename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.\n\nRename done to have the C++ code be closer to the java code.\n\nChange-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9\n"
    },
    {
      "commit": "0c7abda482f53db3d153c073d1c7a145f84e0626",
      "tree": "837b89c75f0047cbcd16c9121739069a36b4f22a",
      "parents": [
        "ba0b9c55adce3f533845ab1b25c552589e5b4118"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 19 13:33:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 15:26:35 2012 -0700"
      },
      "message": "NativePcOffsetToReferenceMap\n\nRather than translate a native PC to a Dex PC and then to the reference\nbitmap, just go straight from the native PC to the reference bitmap.\nEncode the native PC offsets using a hash rather than linearly\nsearching.\n\nChange-Id: Iee1073d93c941c0a31f639e5f23cea9e9f747bee\n"
    },
    {
      "commit": "0183dd7297709ef0beb31e120fc34fdd12f61915",
      "tree": "046d4236a22175d3d983b3131635490a2db8c52c",
      "parents": [
        "221cf4435df4373a6c2d4a3cfc4abd76f1233c81"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 17 23:06:51 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 18 09:15:23 2012 -0700"
      },
      "message": "Sqrt intrinsic\n\nPerform math intrinsics on StrictMath when appropriate following Dalvik\nchange: https://android-review.googlesource.com/42932\n\nFilter package name of intrinsic methods to reduce number of\ncomparisons.\n\nChange-Id: Iff97c501d4386f76d3f2297406417fa3b76d0a8a\n"
    },
    {
      "commit": "8320f3867c02bae9bef6cdab267820cb7b412781",
      "tree": "7e2211068ccbd17da7e9c83d24b10fdd9db28c39",
      "parents": [
        "c7b83a0d8ac73bdfff751619ae2a34948e3534b7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 11 16:29:42 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 13 10:49:20 2012 -0700"
      },
      "message": "Prune useless entries from dex to pc map\n\nStep one of the change.  Limit entries in the table to native\ncode safepoint locations (which generally are the return PC\naddresses of any call that might trigger a stack walk and the\nstart addresses of all catch blocks).\n\nPreviously, the mapping_table described ranges.  No longer.  Any\nnative PC located within compiled Dex code that is found in a\nstack walk should have an exact match in the table.\n\nIn future CLs we\u0027ll add data compression (probably uLeb128) and\nmay add inflation on first use to a faster access map (instead of\nthe current linear search).\n\nNote that this CL introduces somewhat of a regression in the\ncapabilities of oat-dump.  Because the mapping table no longer\nassociates each native intruction with its Dex counter-part, the\nnative code disassembly no longer includes interspersed Dex\ndisassembly.\n\nNote also that as of this CL, the compiler is adopting the 100-char\nline length limit used in the rest of Art.  The 80-char limit\nshould still be used in any code that we expect to upstream to\nllvm.\n\nChange-Id: I1beca4d57c41e8161bf746bc62abbce08d5bcb4d\n"
    },
    {
      "commit": "324e190e9de0d81d39d88474e189acef9b10bcc8",
      "tree": "90c732aa100677ab2cacd68036ca283171a4de94",
      "parents": [
        "22f454c7d349c439c774c5d79b32514b190fd531"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 09 12:17:52 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 09 12:17:52 2012 -0700"
      },
      "message": "Switch from aeabi_lmul to custom assembly.\n\nSpotted a sizeable performance regression on an app with a hot long\nmultiply. aebi_lmul is noticably slower than the previous custom Dalvik\nassembly so switch to using that.\n\nChange-Id: Id829de69193506ba7ac8fdc8b78009351631b0fc\n"
    },
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "87e552db94588455c081efd87dbde0cd96d02942",
      "tree": "02fc47be772d65e3ba4f2453f5d330b7dd111d1a",
      "parents": [
        "c747cffa950b8398cb8844d47e2253214c855750"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 15:54:48 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 01 00:23:33 2012 -0700"
      },
      "message": "Make ICCE logic common, refactor throws.\n\nThere were 2 sets of ICCE logic in ClassLinker::ResolveMethod and\nMethod::CheckIncompatibleClassChange, merged into just 1 piece of logic\nin Method::CheckIncompatibleClassChange.\n\nMove Throw... routines into own file and make adding the dex location to\nthe detail message more thorough.\n\nChange-Id: I953dbfa3fed3767f35799b2f82b16637c437dbbe\n"
    },
    {
      "commit": "9a4f003f9a6da8e4c6ee279bd2a13aac37648183",
      "tree": "ce78afe7c842c8ff99d52c0a09bfe758d67d037f",
      "parents": [
        "cfb21d92796087963c092b69110a2e7ff7a03a55"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 16:17:40 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 31 10:49:06 2012 -0700"
      },
      "message": "Remove the THROW_VERIFICATION_ERROR op and supporting code.\n\nChange-Id: Idc40a2c379048c7e3d74f50b2bd765a507a417ce\n"
    },
    {
      "commit": "c0228b8f02c05ed58bea58490e0d8bdcaf8c5bb8",
      "tree": "afbfe1592284d1978ae619e0f9b5aae642b48197",
      "parents": [
        "08f753d5859936f8d3524e9e4faa6cee353873ea"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:15:05 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:29:36 2012 -0700"
      },
      "message": "Fixes to verifier and slowpaths for cts invoke tests.\n\nInstructions are never rewritten, so that has been removed from the\nverifier. Also, the slowpath now checks for access errors when it\ncan\u0027t properly resolve a method.\n\nChange-Id: Ie38eacec8eb092ba23502471a0b27ca8ce38fe68\n"
    },
    {
      "commit": "08f753d5859936f8d3524e9e4faa6cee353873ea",
      "tree": "5679a9ad8be6827e2a10de282cd28e3d000917de",
      "parents": [
        "b0b2be7688109cff548d2ddc8f02eecbad49ecd2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:35:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 11:34:56 2012 -0700"
      },
      "message": "Avoid compile time rewriting of dex code by verifier.\n\nCompile time rewriting of dex code leads to dead code that is causing\nissues with the LLVM compiler. Make instantiation and incompatible class\nchange errors be detected in slow path field and invoke logic so its\nsafe for the compile time verification just to softly fail the effected\nclasses.\n\nThis change places incompatible class change logic into the class\nlinkers ResolveMethod and consequently changes a number of APIs.\n\nChange-Id: Ifb25f09accea348d15180f6ff041e38dfe0d536e\n"
    },
    {
      "commit": "fc7120c0293b96218d55abee29882f101acbc79b",
      "tree": "330c7f5d020d3cbdd2cd201d9b55d2d04dc8297d",
      "parents": [
        "0ac41d58258a97c62d41c0137338a4c3b9ceb95d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 13:43:25 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 14:41:28 2012 -0700"
      },
      "message": "Fix JNI Compiler for x86 target\n\nChange-Id: Ia247de328d234c4a57ddd93f394cad2c63e48153\n"
    },
    {
      "commit": "0ac41d58258a97c62d41c0137338a4c3b9ceb95d",
      "tree": "936ab11f4e86eebe465a5a1f4b363880bef2b628",
      "parents": [
        "7fbee0731b14b5bf392a4254f5cd84685ab517da"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 13:07:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 13:07:54 2012 -0700"
      },
      "message": "Fix llvm build for mips.\n\nChange-Id: I733c7e4ef2392e0becd04501cae5f954886b0980\n"
    },
    {
      "commit": "7fbee0731b14b5bf392a4254f5cd84685ab517da",
      "tree": "b24cf6d9eed7935e3b26d63cf2292fd8c008005b",
      "parents": [
        "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 24 17:56:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 11:33:05 2012 -0700"
      },
      "message": "Preliminary changes to allow mips target to build.\n\nIt compiles, but it doesn\u0027t work yet.\n\nChange-Id: I2973a03bd956d8d398b9cfd1047e66fbf3ff439c\n"
    },
    {
      "commit": "1b09b094a85e03f6ef5f687f58bb91c433273ba1",
      "tree": "6b039e520ee3b73e6ba5fb23954b9e01ecc68fc9",
      "parents": [
        "931c278aed62d7a97b87cf1bb9cfdd189e77eb24"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "message": "Syntax clean up to make clang happy.\n\nChange-Id: I0984c395bbd1ee4b206eafd19915b6f68781dd16\n"
    },
    {
      "commit": "3d71d80626fdc0fe1f61c84bb52e9f7d96c95060",
      "tree": "b65d908c11f270e6f54e241f332b01aa27134d68",
      "parents": [
        "cd05a6274782c50a2b990c18b5f8d5ae5e44d509"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 03:47:03 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 04:01:19 2012 -0700"
      },
      "message": "Fix JNI compiler for portable path.\n\nChange-Id: Ic2cbfcf126137b1b72f3b51e7af5a9be87987737\n"
    },
    {
      "commit": "cd05a6274782c50a2b990c18b5f8d5ae5e44d509",
      "tree": "1a202f979454f8b6a1e4294776d52d20c526efc0",
      "parents": [
        "ef0a2ca1f719f64af59db08861edb73739bf5220"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Aug 15 00:02:05 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 04:01:15 2012 -0700"
      },
      "message": "Global lock levels for the LLVM side.\n\nChange-Id: Id2807c8775686bc38f79e13c097fadda2d96d042\n"
    },
    {
      "commit": "bce872c496710a18b71508315773f12051dedc83",
      "tree": "717297a3ba1ec4f843ed964256bd37b81770b6c0",
      "parents": [
        "c05f85a61fde3de5cc7d6f53dc504e23f74185d0",
        "865e6e01486e3d7d61b7d0d952b420e5912c8219"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 16:07:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 16:07:32 2012 -0700"
      },
      "message": "Merge \"Callee-save frame fix\" into dalvik-dev"
    },
    {
      "commit": "865e6e01486e3d7d61b7d0d952b420e5912c8219",
      "tree": "07cd2ba3dcd98ec4bff361f6dae4b6efebdc2e8d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 15:09:57 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 16:04:32 2012 -0700"
      },
      "message": "Callee-save frame fix\n\nPreviously, the callee-frame stubs tried to be a little too efficient\nin stack usage by re-using the storage allocated for the Method* to pass\nan argument.  Unfortunately, if the compiler decided to do a tail-call\noptimization on the called routine, it could end up re-using that same\nslot for outgoing arguments (thus clobbering the Method*, and breaking\na subsequent stack crawl).\n\nThis CL fixes the problem by not re-using the Method* slot (at the cost\nof a few extra instructions and 16 bytes of stack).\n\nChange-Id: Ibce43ed84f81a8e332c2e77674e355c338efaaf0\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "86e4671975752b112b2e8969ac6652c72c8e86c7",
      "tree": "44be48718a716ce58a7c087c33ddd264c7943450",
      "parents": [
        "46a23638436afdf17330870ef150f5b8eb66410c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 08 17:30:59 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 10 09:52:15 2012 -0700"
      },
      "message": "Implemented inline of String indexOf and compareTo on x86.\n\nChange-Id: Ia141d4900e9ab9dd563e718af0d10dcd445794cb\n"
    },
    {
      "commit": "1eb16c161c1c49153a0da60c5eea19e2543b49d6",
      "tree": "08ecb7f7bc1520e69c2356269d351195811e2e4a",
      "parents": [
        "467ef4c9031f78129ca4658054d4057f8b9b5f2a",
        "703f2cd1f4d1eb5ab5c9792ca2de9ffb39378203"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 23 23:01:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 23 23:01:44 2012 -0700"
      },
      "message": "am 703f2cd1: Numerous fixes to enable PromoteRegs, though it\\\u0027s still broken.\n\n* commit \u0027703f2cd1f4d1eb5ab5c9792ca2de9ffb39378203\u0027:\n  Numerous fixes to enable PromoteRegs, though it\u0027s still broken.\n"
    },
    {
      "commit": "a92f971e55fa68d93d06294e0100674ceac6ec4c",
      "tree": "f0f66ebac3399cf93471cd0ab2bc2132a380461f",
      "parents": [
        "4407e61aa4cd75e6f31919cfca6a544d18b88c53"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 23 10:56:42 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 23 15:14:32 2012 -0700"
      },
      "message": "Additional log output for artInvokeCommon code \u003d\u003d NULL.\n\nMotivated by an error regarding a possibly corrupted dex file.\n\nChange-Id: I70f8e15151d0c1f00ea2d289a1b43cd88a199290\n"
    },
    {
      "commit": "703f2cd1f4d1eb5ab5c9792ca2de9ffb39378203",
      "tree": "652ceef30d52a13854c14bb0a6f586e96421f625",
      "parents": [
        "e6e0651c7f0480e18d648200f8958c3463e82a2f"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jul 13 17:25:52 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jul 20 17:21:18 2012 -0700"
      },
      "message": "Numerous fixes to enable PromoteRegs, though it\u0027s still broken.\n\n- Fixed ThrowNullPointerFromCode launchpad to load the array length\n  directly into the necessary arg reg without clobbering the array\n  pointer, since that value may be live afterwards.\n\n- genArrayPut use a temporary reg for bytes if the source reg is \u003e\u003d 4,\n  since x86 can\u0027t express this.\n\n- Fixed the order that core regs are spilled and unspilled.\n\n- Correctly emit instructions when base \u003d\u003d rBP and disp \u003d\u003d 0.\n\n- Added checks to the compiler to ensure that byte opcodes aren\u0027t used\n  on registers that can\u0027t be byte accessed.\n\n- Fixed generation of a number of ops which use byte opcodes, including\n  floating point comparison, int-to-byte, and and-int/lit16.\n\n- Added rBP, rSI, and rDI to spill registers for the x86 jni compiler.\n\n- Various fixes and additions to the x86 disassembler.\n\nChange-Id: I365fe7dec5cc64d181248fd58e90789f100b45e7\n"
    },
    {
      "commit": "caf7654a0e6c76c7489970b1a246fccf220f9982",
      "tree": "bdf74befb18407a3cb5ec4bd406059314b0434a7",
      "parents": [
        "5d96a7168dd3e2a4acf1a947ef12efa8f82b95c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 28 16:08:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 28 18:53:55 2012 -0700"
      },
      "message": "Fix posting exceptions when a debugger is attached, fix UpdateDebugger, fully implement ThreadGroupReference.Children.\n\nPosting exceptions and UpdateDebugger were broken by the recent stack-walking\nrewrite.\n\ndalvikvm never did ThreadGroupReference.Children correctly; it only admitted\nthat \"system\" is the parent of \"main\".\n\nChange-Id: I386f2fa5e01fba56cb2a1af4f136dbf31da0ff07\n"
    },
    {
      "commit": "ca190666fb11820153f74274c495ba1f913d8a69",
      "tree": "cc813b9fd3b0ad38cec0e6952bcbbbbce78494f9",
      "parents": [
        "1fb3bd3559eb6fc34f7ba429adf9bb15c05939b0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:45:57 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 19:50:52 2012 -0700"
      },
      "message": "Fix initializer lists to be Google C++ style.\n\nChange-Id: Iada52ea5cf95492684033993b3299042bdaf6cee\n"
    },
    {
      "commit": "598c513a2737d872e22ea8bcedec61b92deff357",
      "tree": "fdc1a975c3aeb2451a6081fe71b008e0ab49ea54",
      "parents": [
        "271769a39b900a5f9f752cea318980e96367b55b"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sat Apr 28 22:00:44 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Jun 26 18:25:40 2012 -0700"
      },
      "message": "Add CompiledCode for method and invoke stub.\n\nCompiledCode is the base class of CompiledMethod and\nCompiledInvokeStub with a code array and an\ninstruction set field.\n\nChange-Id: I4eca9b9b682b14732c8fa80d44587a7e621ab54d\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "a21039c3ae2b20e44ceb2735251c04d0aac89afd",
      "tree": "66b6fa437e7e4286b50bdef224500f9049633701",
      "parents": [
        "3d9d49fa2d025a041f57ea306ea551ef990177db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 12:09:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 13:04:41 2012 -0700"
      },
      "message": "Fix a bunch more lint.\n\n(If you ignore the compilers, we\u0027ve got relatively little lint now. Fits on\na single screen.)\n\nChange-Id: I51389002894d4fd8cf46f79d2bac57079322a030\n"
    },
    {
      "commit": "748474146da0c6484fa3dca0a700f612d47550c3",
      "tree": "58837d0fa82d4099eb4b82b2fd3d2bbf4294e4aa",
      "parents": [
        "92e3134cd84c134f167175288671a1e6838c908f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 18:10:21 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 09:14:27 2012 -0700"
      },
      "message": "Fix a bunch of lint.\n\nThere are still about 1800 lint warnings, so don\u0027t get too excited...\n\nChange-Id: I2394bd6e750b94060231378b3a7a88b87f70c757\n"
    },
    {
      "commit": "3f6635a2c84d645002f651c312d53f8348646c1f",
      "tree": "e46caa5d1199aca6f6b3c1cbd5f0e706606682c3",
      "parents": [
        "c553b95527b78c1fcf9b719a87d8875f71280f71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 13:37:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 14:26:32 2012 -0700"
      },
      "message": "Improve JniAbort (and JNI tests).\n\nThis has been on my to-do list for a while, but it actually bit people\nin the ass yesterday. This change enables us to write a lot more (and\nbetter) tests, but for now I\u0027ve just improved the tests that already\nexisted.\n\nChange-Id: I04a18656de60b47e5a6b5777204c144209d1448e\n"
    },
    {
      "commit": "6cf23884730574ca364b357e823259f4993e6908",
      "tree": "50ad618096847b2dfe423ece38246891870c84ce",
      "parents": [
        "cee4d0c1c2faacf0eae748a24cc7e455e067d977"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 15:42:07 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 15:42:07 2012 -0700"
      },
      "message": "Simplify the default stack size handling.\n\nThe extra 16KB was just silly. We only need a notion of \"default stack size\"\nif there\u0027s an explicit command-line override.\n\nChange-Id: Ia63e00047a420546656ac8d2dad46789994157a3\n"
    },
    {
      "commit": "cee4d0c1c2faacf0eae748a24cc7e455e067d977",
      "tree": "b76b6bad3427bdf1cae95d321fc77845fc4ae6a0",
      "parents": [
        "e5f01223ae03b89767dc7881d75dca061121ee36"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 15 14:42:01 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 15 15:30:37 2012 -0700"
      },
      "message": "Jni compiler should zero extend boolean and char return values.\n\nThis mostly fixes the emulator. It seems like there\u0027s some final issues\nin browser.\n\nChange-Id: I9a82db3c243a0994465106bf21ac6596af5bdf5a\n"
    },
    {
      "commit": "1395b1e06c1d0ff5155b0c5d113ad3bd6f163c07",
      "tree": "65e1aa9f24ac5d4d3469832756b4f92981d40176",
      "parents": [
        "1c678be1960b48a8df82ec2d1f9a0bd4c8f0ea95"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 13 18:05:13 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 14 15:01:01 2012 -0700"
      },
      "message": "Patches to x86 compilation to fix vm tests on emulator.\n\nnot-int and not-long were unimplemented previously.\n\ncmp-long would return the wrong value with Long.MIN_VALUE.\n\nrem-double and rem-float now use a c helper. This is because fprem may\nnot fully compute the result on the first invocation and would need to\nbe looped to completion.\n\nChange-Id: Idf5f6349a63b19d395a3d89434b5b35c430ae3d3\n"
    },
    {
      "commit": "a168c83a1d247094e9efb1244b0f73a5f1e1ed97",
      "tree": "d0fb5a91a00227eda6b430fd64f2a1bff5271723",
      "parents": [
        "289be85116aaf7c48413858b5d0448868b4e61f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "message": "Convince tsan that the card table isn\u0027t a problem.\n\nAlso move the #include \u003csys/mman.h\u003e into \"mem_map.h\", since it\u0027s\ncurrently not possible to make any use of the latter without the\nformer. If we care about the pollution, we should offer our own\nconstants as part of our API.\n\nChange-Id: I01ec451d23c1d8afb8cb8a6660af8d9723faf5f5\n"
    },
    {
      "commit": "fd2ec5473d9c63b15dbc28c8a5996c83120cb8ae",
      "tree": "afaf2523cbb7a82548de599075d216c8eaa66624",
      "parents": [
        "526643e38c344701d96068f351548a393c67b6be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 02 15:08:57 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 10:28:42 2012 -0700"
      },
      "message": "Fix compilation issues with new gcc\n\n(cherry picked from commit efad79fa4121e20ab613e31bde44cc3120f23832)\n\nConflicts:\n\n\tsrc/compiler/codegen/mips/Mips32/Factory.cc\n\tsrc/compiler/codegen/x86/X86/Factory.cc\n\nChange-Id: I5e0e9dc48ba76092cccc70b25668978a08a5449b\n"
    },
    {
      "commit": "a4f94740f9d66b21f4bcd3a225c434aa29cfa323",
      "tree": "88e3834418ac3e12d2c270fed3a370bda2643d0b",
      "parents": [
        "214d307f3d5bbfe6254ae9e96d504d3e665baa2c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 29 16:28:38 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 29 16:28:38 2012 -0700"
      },
      "message": "Finish cleanup of class/field/method caching.\n\nChange-Id: I289ae724cbd98487429275837d23b7b2d7096156\n"
    },
    {
      "commit": "eac766769e3114a078c188ea26776a81f0edb3cf",
      "tree": "4b9b8dfc89725173431817baba4455c013e40577",
      "parents": [
        "3f9ace8d90bfc48c8d7bf35af66de8ce8238de7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 12:04:43 2012 -0700"
      },
      "message": "DO NOT MERGE Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nConflicts:\n\n\tsrc/native/java_lang_Runtime.cc -- nativeExit lost an argument in dalvik-dev\n\n(cherry picked from commit 7756d5473fa27ce7e6ac7c31770eef7030431da4)\n\nChange-Id: I6184fc20c2a9ec16c4b053584a4d1c3b64452d0f\n"
    },
    {
      "commit": "21ba27fc8d31b831a19b90bf570550b46ac9e8cd",
      "tree": "36374d6b672f24bcfa62a02df94bf999ceb4b5e4",
      "parents": [
        "58136caeec7cb677bb83c2eafd1f4bab5afd96c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 24 15:55:35 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 24 15:55:35 2012 -0700"
      },
      "message": "Ensure only valid CPU registers are encoded as byte registers.\n\nChange-Id: I748286812c1ce3678afe82b87b06501643f36d3e\n"
    },
    {
      "commit": "58136caeec7cb677bb83c2eafd1f4bab5afd96c8",
      "tree": "64216223683b2f20a2d2bc81fa0ee53dbbe5f5a8",
      "parents": [
        "5d05c75cfb4b3de1d07459c35bb1bce102900762"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu May 24 13:40:11 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu May 24 14:11:24 2012 -0700"
      },
      "message": "Fix the jni compiler\u0027s handling of byte and short return values in x86.\n\ngcc uses byte/short operations to populate return values of these types,\nso the sign extension is lost. The jni compiler needs to manually sign\nextend the values again since they\u0027re treated like words in the system.\n\nWith this change, all the run_test tests are working.\n\nChange-Id: If691087ebd79b0d608e44ff8273ed25d46dd6b4a\n"
    },
    {
      "commit": "5d05c75cfb4b3de1d07459c35bb1bce102900762",
      "tree": "5430c99ef635104032f5c6025237e93253bbe942",
      "parents": [
        "4ac4a806a9a81dc34216148efa4262be4e54211c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed May 23 10:57:48 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu May 24 10:17:51 2012 -0700"
      },
      "message": "Fix x86 proxy\u0027s arg2 offset and handling of floating point returns.\n\nThe offset of arg2 now includes the space for the LR on the stack. Also,\n%xmm0 is filled with the return value in case the return type is float\nor double.\n\nChange-Id: Icaafbddca14a290b0828eb5b9784a39bfa323e85\n"
    },
    {
      "commit": "d66a87583bebcd5f89906aeaae9f8fb104ef2ac9",
      "tree": "f36e1538cef8d95581a29db458e07f492f3abd75",
      "parents": [
        "3e778f7ee62fe75912379531022a09230c25f5f8"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue May 22 15:30:16 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue May 22 15:30:16 2012 -0700"
      },
      "message": "Fix x86 slowpath getters and implement proxy.\n\nThe slowpath getters were using %eax to tell if an exception occurred,\ninstead of checking Thread-\u003eexception_. Also, proxy is implemented, and\nrun-test 004 works.\n\nChange-Id: I0473635e093566a86d7deb54e715074373ff6d4b\n"
    },
    {
      "commit": "3e778f7ee62fe75912379531022a09230c25f5f8",
      "tree": "21f4d107a64d9e3de938609c0febef2bf75d8d9a",
      "parents": [
        "37f7775b92398d87e48bc306f9d10a1b563dcdd5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 15:29:52 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 17:24:56 2012 -0700"
      },
      "message": "Fix JNI stubs for synchronized native methods with double/long arguments in low registers.\n\nChange-Id: I3639f7a7a9564630ae01651119fcad237a5e675d\n"
    },
    {
      "commit": "deafc8f6558e3ceae5963528f240a9f1545a6f32",
      "tree": "cdf4ecd7add1f5e9b93cde3b2934e30c332b3d87",
      "parents": [
        "20b5c6c9d6fdd0b4192d467086a097a28d7b3a0a",
        "bf2739d3b58ee5b2f190007499f1fbfd0b3441ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 14:41:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 21 14:41:13 2012 -0700"
      },
      "message": "Merge \"Improve ARM assembler assertions.\" into ics-mr1-plus-art"
    },
    {
      "commit": "bf2739d3b58ee5b2f190007499f1fbfd0b3441ce",
      "tree": "674dad928253222a1de6d2ba305eab73b54ad741",
      "parents": [
        "84a5bb4556d8974d3aa1c436af36e48d622b4045"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 14:30:16 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 21 14:40:50 2012 -0700"
      },
      "message": "Improve ARM assembler assertions.\n\nChange-Id: Ibe012da3ffe6bc8352cb6be6636f0315a6734f6e\n"
    },
    {
      "commit": "20b5c6c9d6fdd0b4192d467086a097a28d7b3a0a",
      "tree": "9647b70389f8b462e426f03287a562f048bf5fc3",
      "parents": [
        "1ff4cd7c1ec698845145edd1e9d0ba767ce45de1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon May 21 14:15:18 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon May 21 14:15:18 2012 -0700"
      },
      "message": "x86 trampoline macro missing a stack pop for exception case.\n\nThis fixes 003-omnibus, though there are still failures in run-test.\n\nChange-Id: I5a44b4731979aa4aa7537696ebb2d75d4dfef62b\n"
    },
    {
      "commit": "1ff4cd7c1ec698845145edd1e9d0ba767ce45de1",
      "tree": "4cfc9289804e5cdb956a5dbc5fd0b0ed420d49db",
      "parents": [
        "4a337d61b8478f1b540f7f063050733594274094"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon May 21 11:17:48 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon May 21 11:17:48 2012 -0700"
      },
      "message": "Fix LITERALs in x86 slow path field setters/getters for mac build.\n\nThey should be LITERAL, not MACRO_LITERAL.\n\nChange-Id: Idcab16fd678fbd98eaf3adec17a6a90887a28c6e\n"
    },
    {
      "commit": "9dbb23e997f84d7c6c909b246e3faca50a912336",
      "tree": "2867b3aafbf243a62d1b1bea528cfc42bfdf9f37",
      "parents": [
        "4886871695c6c4f7cc0719121256e3a8acc67e68"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri May 18 17:03:57 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri May 18 17:03:57 2012 -0700"
      },
      "message": "Implement slow paths for getting/setting instance/static fields.\n\nChange-Id: I1e07237b7144791234c4f7daaca02826610da917\n"
    },
    {
      "commit": "292188d514c9826971308a18fcc5a66261729f3b",
      "tree": "40417b04b3599c5bdef8fbbc7387f371d2b1601d",
      "parents": [
        "84a5bb4556d8974d3aa1c436af36e48d622b4045"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu May 17 15:45:04 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri May 18 10:34:48 2012 -0700"
      },
      "message": "More x86 fixes for floating point operations.\n\n- Fixed encoding for cvtss2sd and cvtsd2ss (they were swapped).\n\n- Implemented neg-float and neg-double in assembly.\n\n- Fixed float-to-int and double-to-int to return 0 if given NaN.\n\n- Created helpers for rem-float and rem-double.\n\nChange-Id: I456fcc1252a63dbb96c8280562e601f4efa3a5df\n"
    },
    {
      "commit": "aaa5edcf2deb1bddcbf5fb27820ad2240ac5b4f2",
      "tree": "c2d0f408237ad5a30bfd67819e5c9a72cc3ac45e",
      "parents": [
        "983f2e411aee6b1d09e6da30e059b782b2699909"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "message": "Improve reflection IllegalArgumentException detail messages.\n\nAlso add a missing InstanceOf check that was causing CheckJNI to kill us\nif someone tried to pass an inappropriate reference type through\nMethod.invoke. (Amusingly, CheckJNI produced pretty much the exact detail\nmessage that Method.invoke should have.)\n\nPlus a new test for this stuff.\n\nBug: 6504175\nChange-Id: Ice95eecbdba5a0927c6eaf68e56d6500dc52ad2e\n"
    },
    {
      "commit": "41005ddb5576b8630a1084fbb3979ffa602c0599",
      "tree": "af8d74573cc3a98c959566233d12bdb15251910c",
      "parents": [
        "c3f8fa57268740f95a3c25e605bcab638b18d7b9"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed May 09 17:58:52 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue May 15 15:44:18 2012 -0700"
      },
      "message": "Fix x86 type conversions. test-art-host-oat passes.\n\n- test-art-host-oat enabled in test builds.\n\n- Created inline versions of float-to-int and double-to-int.\n\n- Fixed calls to helper functions for long-to-float/double and\n  float/double-to-long.\n\n- Removed storePair and replaced its use with storeBaseDispWide (fixes\n  iput-wide and aput-wide with doubles).\n\n- Renamed helper functions to have art_ prefix.\n\n- Fixed move-exception to store the result back.\n\n- Fixed floating point comparison when the destination reg is the same as\n  a source. The typing would get confused since the source is floating\n  point, but the result is int, and a clobber is needed to overwrite the\n  expected result type. A similar thing happens in float/double-to-int.\n\nChange-Id: I0a876072254411aa42d6acadb8723be030727219\n"
    },
    {
      "commit": "7834cbd5d8a0e61db14339910d2223a3e59d7efc",
      "tree": "9b3d08603051c47f603f3633a4c6827ac43d88a4",
      "parents": [
        "e4c2ccceb57114d6745b74f18d8748591692b532"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 14 18:25:16 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 14 18:25:16 2012 -0700"
      },
      "message": "Consistently use __asm__ rather than asm.\n\nFor grepability.\n\nChange-Id: Iae46e1684695eb42cfc1267b744d0442acbbfe25\n"
    },
    {
      "commit": "5121e0b9699c8cd5e89ee323e30074b984b7b436",
      "tree": "1f90b4280860a5a07d72266e7e23feb577269001",
      "parents": [
        "af0cdef6a3ea06a4ae3fb012e4f7a9c56d661508"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue May 08 18:23:38 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue May 08 18:23:38 2012 -0700"
      },
      "message": "Fix x86 long right shifting and int-to-float/double.\n\nRight shifting a long by 32 bits or more now works correctly.\n\nAlso, uses a normal register for the src of int-to-float and\nint-to-double instead of an fp reg.\n\nChange-Id: Idaf8a398f50314eb4fc302acfbaeddfce25380b1\n"
    },
    {
      "commit": "644d5310d7759f6d531a2c4220b1e2cc8f3b72d3",
      "tree": "0fe8476932cb8b9aa87a7adc60ebf9bc03e2b4ff",
      "parents": [
        "145d491d1a30b291eb3ea608507a04451237f327"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu May 03 19:04:49 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon May 07 10:48:00 2012 -0700"
      },
      "message": "Fixes to x86 compilation.\n\n- div-long and rem-long were calling the wrong helper methods.\n- genCmpFP was grabbing new src and destination registers instead of\n  using the ones it was passed. Also, it wasn\u0027t writing its result back.\n- gave mul-long its own assembly helper method to help it marshall its\n  sources properly.\n- fixed assembly of shifts for longs.\n- updated IntMath\u0027s testFloatCompare to exit on the first error.\n\nChange-Id: Iacecf07d3c7135d865728c18551c7989e7e0276b\n"
    },
    {
      "commit": "19c350a9197411d427b71b7ab15b18417701de10",
      "tree": "057337f29c4cb3ab6ea2521a5f9e959cdb84c1ce",
      "parents": [
        "736df0253aa65ebccb29ddb6443c31b7730ca3e5"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 01 19:21:32 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed May 02 04:19:59 2012 -0700"
      },
      "message": "Move payload data structures to dex_instruction.h.\n\nChange-Id: Ib46aab7bac70b008bf8569e3e9e30caa31320255\n"
    },
    {
      "commit": "af778e627aa41ec6c176cba537062b95d4d960b6",
      "tree": "7d4ea0e32db6d40f6ea5821dcddb934f51afccec",
      "parents": [
        "67fe3f50e0c713e88c2cff8a36e5c91d47109c70"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 01 18:45:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 01 21:46:44 2012 -0700"
      },
      "message": "Add an explicit type for the dex \"payload\" data.\n\nChange-Id: Ie5ed81c8ea0bed2a4bb6f5f6d5fd238b28236e8e\n"
    },
    {
      "commit": "9b49689cc20c6b84cfcb049a8093f11e65ee8522",
      "tree": "8395f98db16959fbec4385fbe9c852cfc9450a84",
      "parents": [
        "799ef4f839564561fd91907b49e3a587c9a77a41"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 22 19:13:34 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Apr 22 21:00:35 2012 -0700"
      },
      "message": "Fix 032 test: For stub, align X86 stack to 16 bytes.\n\nThis will fix test 032.\n\nChange-Id: Ibb063a3eb8b9378b29320aca73754fcd2a77a67e\n"
    },
    {
      "commit": "e2f0911dfc7cec7c48ad0dea50f2028ae0f1fd0f",
      "tree": "2db792385c360eb9419fb2ec81b9f108f68440e5",
      "parents": [
        "05fe3b630e9ae50837ae88ba09581bd281aa184a"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sat Apr 21 00:30:24 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 15:12:14 2012 -0700"
      },
      "message": "Implement ARM trampoline for llvm compiler.\n\nChange-Id: Id851c4e98d08c2b5b2527860d045d7bed1a9797e\n"
    },
    {
      "commit": "05fe3b630e9ae50837ae88ba09581bd281aa184a",
      "tree": "22064a582abbd4aa491c0b43a499cd0470b74ec9",
      "parents": [
        "706e9b62e1bac8a774466937ab32fcd655f5b723"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sat Apr 21 00:28:54 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 15:11:36 2012 -0700"
      },
      "message": "Implement X86 trampoline for llvm compiler.\n\nChange-Id: I0c6ec3a59eaebd5e28ca8e95f2711a31b79b9279\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "174651dea03956e160a2cff0d842954823c49134",
      "tree": "cee1f154612afe918a0640ee8aa33644b604c039",
      "parents": [
        "640529bdc78deaeb8d1f3e95da90f9eb5ce9806d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 19 15:27:22 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 19 16:01:28 2012 -0700"
      },
      "message": "Fixed x86 division and modulus and merged their entry points.\n\nAlso enabled compilation of fill-array-data instructions in x86\n(untested), and improved x86 disassembly.\n\nChange-Id: Ia3d8d0766080d01f1c228f9283085024cadd528b\n"
    },
    {
      "commit": "40b8857fbd8e1b9067af95b35746f823fea146b0",
      "tree": "593832c2595961624406868d57fbe91ecd550660",
      "parents": [
        "c88b2e7fed3e1acab47a73859cab3efe1d4e692e",
        "e87c7bc954810b71c9e2c9f6edaa856f2a53787c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 10:23:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 10:23:26 2012 -0700"
      },
      "message": "Merge \"Implement the x86 initialize-type...from-code entry points.\" into ics-mr1-plus-art"
    },
    {
      "commit": "c88b2e7fed3e1acab47a73859cab3efe1d4e692e",
      "tree": "dd93326b58ca2b3c129bf1742c58eec284c008f9",
      "parents": [
        "91f27442787b01e30f9e60d9a9b9b26a77e07bc1",
        "65c6cf362a10f47598780af2e17d4f4b59968b1b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 10:22:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 10:22:19 2012 -0700"
      },
      "message": "Merge \"Wire up D2I and F2I for x86, and implement a trivial Lmul.\" into ics-mr1-plus-art"
    },
    {
      "commit": "65c6cf362a10f47598780af2e17d4f4b59968b1b",
      "tree": "ff31899ea72c07f2235598bd9f9baed20b2ca09d",
      "parents": [
        "54a3e919ef3c8788e39a21696944d00826c25af3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:44:17 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:44:17 2012 -0700"
      },
      "message": "Wire up D2I and F2I for x86, and implement a trivial Lmul.\n\nChange-Id: I6a8b84a7691392eb87af066fb4835191512ae832\n"
    },
    {
      "commit": "e87c7bc954810b71c9e2c9f6edaa856f2a53787c",
      "tree": "08a2da1f6e76e0a61e6ca513b72cc2e8f3c3273b",
      "parents": [
        "54a3e919ef3c8788e39a21696944d00826c25af3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:42:34 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:42:34 2012 -0700"
      },
      "message": "Implement the x86 initialize-type...from-code entry points.\n\nChange-Id: If7449be25e5b34c7980d2de3827a27a3bc32e2dd\n"
    },
    {
      "commit": "8a1ea9f2707a34483faa0e49cdbf8653e0e8bb6d",
      "tree": "7e4c56f81577881ea8e2b6e30a4f4fc6972df947",
      "parents": [
        "54a3e919ef3c8788e39a21696944d00826c25af3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:41:17 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:41:17 2012 -0700"
      },
      "message": "Fix a comment copy \u0026 paste typo.\n\nChange-Id: I1205c6a157ed006302cd82d5d314b6161e640227\n"
    },
    {
      "commit": "3ea0f42467790809fcfc9fc861605d465808090f",
      "tree": "a82b6c09bdc3819fc2da571a631401b5973888f2",
      "parents": [
        "4047efcc2fd4147a044a799400851a3bc470b738"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 17:01:43 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 17:01:43 2012 -0700"
      },
      "message": "Make failures caused by unimplemented entry points much clearer.\n\nBefore:\n\n  F 32344 32344 runtime_linux.cc:183] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n  F 32344 32344 runtime_linux.cc:183] Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr (nil)\n  F 32344 32344 libartd.so:-1] \t#00 ??+0x3adc15 [0x5592ac15]\n  F 32344 32344 libartd.so:-1] \t#01 ??+0x3ae5b9 [0x5592b5b9]\n  F 32344 32344 ??:-1] \t#02 [0x55573410]\n  F 32344 32344 libartd.so:-1] \t#03 ??+0x24cb86 [0x557c9b86]\n  F 32344 32344 libartd.so:-1] \t#04 ??+0x24d0c3 [0x557ca0c3]\n  F 32344 32344 libartd.so:-1] \t#05 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]\n  F 32344 32344 libartd.so:-1] \t#06 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]\n  F 32344 32344 oatexecd:-1] \t#07 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]\n  F 32344 32344 oatexecd:-1] \t#08 ?? [0x8073c35]\n  F 32344 32344 oatexecd:-1] \t#09 ?? [0x8073fd7]\n  F 32344 32344 libc.so.6:-1] \t#10 __libc_start_main()+0xe6 [0x55afcbd6]\n  F 32344 32344 oatexecd:-1] \t#11 ?? [0x8071fc1]\n\nAfter:\n\n  F  5527  5527 thread.cc:81] void art::UnimplementedEntryPoint() unimplemented\n  F  5527  5527 runtime.cc:160] Runtime aborting...\n  F  5527  5527 runtime.cc:160] \"main\" prio\u003d5 tid\u003d1 Runnable\n  F  5527  5527 runtime.cc:160]   | group\u003d\"main\" sCount\u003d0 dsCount\u003d0 obj\u003d0x6121e928 self\u003d0x8c0c618\n  F  5527  5527 runtime.cc:160]   | sysTid\u003d5527 nice\u003d0 sched\u003d0/0 cgrp\u003ddefault handle\u003d1439185696\n  F  5527  5527 runtime.cc:160]   | schedstat\u003d( 66360090 54151 15 ) utm\u003d6 stm\u003d0 core\u003d20 HZ\u003d100\n  F  5527  5527 runtime.cc:160]   at java.lang.Math.ceil(Native method)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.longDigitGenerator(RealToString.java:269)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.convertDouble(RealToString.java:111)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.doubleToString(RealToString.java:59)\n  F  5527  5527 runtime.cc:160]   at java.lang.Double.toString(Double.java:317)\n  F  5527  5527 runtime.cc:160]   at java.lang.String.valueOf(String.java:1676)\n  F  5527  5527 runtime.cc:160]   at java.io.PrintStream.println(PrintStream.java:479)\n  F  5527  5527 runtime.cc:160]   at ReflectionTest.testFieldReflection(ReflectionTest.java:40)\n  F  5527  5527 runtime.cc:160]   at ReflectionTest.main(ReflectionTest.java:269)\n  F  5527  5527 runtime.cc:160]\n  F  5527  5527 libartd.so:-1] \t#00 ??+0x3adcb5 [0x5592acb5]\n  F  5527  5527 libartd.so:-1] \t#01 art::Runtime::Abort(char const*, int)+0x99 [0x558a1439]\n  F  5527  5527 libartd.so:-1] \t#02 art::LogMessage::~LogMessage()+0x3d0 [0x557dc060]\n  F  5527  5527 libartd.so:-1] \t#03 ??+0x33f644 [0x558bc644]\n  F  5527  5527 ??:-1] \t#04 [0x60735b9a]\n  F  5527  5527 libartd.so:-1] \t#05 ??+0x24cb86 [0x557c9b86]\n  F  5527  5527 libartd.so:-1] \t#06 ??+0x24d0c3 [0x557ca0c3]\n  F  5527  5527 libartd.so:-1] \t#07 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]\n  F  5527  5527 libartd.so:-1] \t#08 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]\n  F  5527  5527 oatexecd:-1] \t#09 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]\n  F  5527  5527 oatexecd:-1] \t#10 ?? [0x8073c35]\n  F  5527  5527 oatexecd:-1] \t#11 ?? [0x8073fd7]\n  F  5527  5527 libc.so.6:-1] \t#12 __libc_start_main()+0xe6 [0x55afcbd6]\n  F  5527  5527 oatexecd:-1] \t#13 ?? [0x8071fc1]\n\nChange-Id: Id55f10f910ace94de3c985fabfd9a0fe15c3c8bf\n"
    },
    {
      "commit": "776ac1fa61237db645adb4370a4aab888530caf4",
      "tree": "fbdfe1dec5f1c890d479f700f2b11549d5574119",
      "parents": [
        "42f302c1da4cf1abf935d7aee29ece8d90441e0c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 13 23:36:36 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:38:06 2012 -0700"
      },
      "message": "Separate out more of LLVM build. Move verifier.\n\nMove the verifier to its own directory and break out major components.\nAvoid compiling unused files as part of the LLVM build, increase the use\nof unimplemented for LLVM.\n\nChange-Id: Icd3b1708363fb70ae99417d06ef8669d60446533\n"
    },
    {
      "commit": "42d10e5b728117739694a0918b3d13f19afe4497",
      "tree": "7cbdfe504e5a0fab06266037ae187ea3394d77af",
      "parents": [
        "2272f7bb20d963d01c4b7e07bf89237f5284a717"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 12 16:57:06 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 12 16:57:06 2012 -0700"
      },
      "message": "For float_to_int routines, fix int64_t. Also, Long -\u003e Int.\n\nChange-Id: I789dd887b611f0061686df063e552ab383cac44c\n"
    },
    {
      "commit": "a47468765b3c314b4b76959e3976af4f012bc533",
      "tree": "db7c38d2b2f0aa080e56f7211de1292fb278c1f6",
      "parents": [
        "4cacde827074c2d116aca47d50c2fd92d681ae8a"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Apr 11 23:48:55 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 12 11:16:33 2012 -0700"
      },
      "message": "Fix 041. Float to int.\n\nChange-Id: I916f2a27c4bf515b4f8163f8f9da03425b61ff4b\n"
    },
    {
      "commit": "f24d3cedd395690f6904aaac80f84a100420f7a3",
      "tree": "1867ff0b6f3bebb4f611eaf72b05b14843c55d93",
      "parents": [
        "14fe6aea00598ba5d40d3e5bfa62f26a1c8cfdff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "message": "Enforce the use of accessors on JValue so we can ensure sign extension.\n\nChange-Id: I34810af7661d8674c84707afe5cfdf9e2c233f8b\n"
    },
    {
      "commit": "e2645d3e2db211bfd75775a2185c135ff387161a",
      "tree": "623fdeb19171df63c01d0a36f75ecf6ec53dde8e",
      "parents": [
        "4b952e74b4b2efa15cecedfc643c212eaeac2cc7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 14:42:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 15:32:48 2012 -0700"
      },
      "message": "Fix bug in protected field access.\n\nChange-Id: I38b094e54025d26950c0d8c8bb79d2de81d28428\n"
    },
    {
      "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": "754caaab12e1288b3be98417ca17c3931bb69ea8",
      "tree": "d8191b8f0f322c89b2b0ad1de9e61a6919776a59",
      "parents": [
        "b92bcabcbb28f69fe99e1c2f2e5559ab2c47aa60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 10:57:36 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 15:12:28 2012 -0700"
      },
      "message": "Keep runtime_support_x86.S working on the Mac.\n\n(cherry picked from commit 14f98a1818354e1730e11083eb13dabf6b919ebe)\n\nChange-Id: I97a3dc8f4c05e967f11fd8d199faefb8f59af28c\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": "d36c52ea6bc22883ef381f6da1ac05ef7524f63a",
      "tree": "cc184142b857a666d4aca5d049852f123fa80dae",
      "parents": [
        "82914b6164fd0109531391975389e4f0ff6832c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 16:29:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 19:45:49 2012 -0700"
      },
      "message": "Check for null array assignments inline. Tidy asm macros.\n\nTidy/fix array object stores to not pass incremented register to card\nmark. Fix x86 register allocator clobbers. Clean runtime support\nassembler macros to be more macrotized. Extra X86 shift assert.\nAdd X86 thread suspension down call.\n\nChange-Id: Ida765dcba32404519fe7eb478f5628d46caf41f7\n"
    },
    {
      "commit": "34e069606d6f1698cd3c33b39e72b79ae27e1c7b",
      "tree": "0feb7e9bde6cfe01c0df3ef2d8de3210570f7ce2",
      "parents": [
        "e62934d85fbc2d935afdad57eeade39ecbd7440a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "message": "Remove the useless \"suspend count already zero\" message for new threads.\n\nWe can actually detect the expected case of this warning ourselves, and\nnot emit it. Then we can upgrade the WARNING to a FATAL.\n\nI also tripped over the fact that the operator\u003c\u003c for Thread::State was out\nof date, so I\u0027ve moved the Thread enums up to namespace scope so the script\ncan automatically generate correct operator\u003c\u003c implementations for us. (All\nthe high-numbered thread states have been off by one for a couple of weeks.)\n\nChange-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633\n"
    },
    {
      "commit": "b264f081424642b06b0bbe7102781895d41faa9d",
      "tree": "5ee2b94e5905ff69d3f138ebbecb7abe2a44149f",
      "parents": [
        "b77799df950bf486abe3780185bc4932a3b47bad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 06 17:10:10 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 09:55:00 2012 -0700"
      },
      "message": "Implement native method return value and upcall argument type checking.\n\nAlso clean up the CheckJNI testing a bit. I still need to do some work so that\nJniAbort catches more of the detail, but this is a step forward.\n\nChange-Id: Ibf5e32867d56123cff902ebf602406b731f567d2\n"
    },
    {
      "commit": "141d62275f207bf68c55f583fb206fe586d857cf",
      "tree": "6263e12c9194e966d452658f54612fc7b3b7e410",
      "parents": [
        "f3388e6ef460384a87c85bff72c961ebcd11ce0a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 05 12:23:06 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 05 18:11:20 2012 -0700"
      },
      "message": "More X86 fixes.\n\nFix bugs in a few long entrypoints and with object validation being\nenabled.\n\nChange-Id: I18884fbbe6829b584b9fc92e338549577f925f14\n"
    },
    {
      "commit": "ea94421d5b8420857680fcddaa14345bf83cea68",
      "tree": "85612a17e0ff3689f7dc0724500bc2fb410cfc00",
      "parents": [
        "5478c2d993d3ebafb37c2e783ce942d1a1e2bea0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 13:11:53 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 13:11:53 2012 -0700"
      },
      "message": "Fix the Mac build again.\n\nMac OS\u0027 ancient fork of gas(1) requires us to differentiate between\nliterals used in macros and literals used elsewhere.\n\nChange-Id: I602c7d9ca6e00e20e16dfc4ad2a5521c3e265a07\n"
    },
    {
      "commit": "9c750f9b6283f62b3e6a93c0c6b2838abde5000e",
      "tree": "ba9d030321e0528a18159e74e23a6b65218b2555",
      "parents": [
        "c8eeb9b283d5053c1b1092363320646dc7c0deab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 12:07:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 12:07:59 2012 -0700"
      },
      "message": "Ensure we don\u0027t AddLocalReference a bogus value when returning to native code from an upcall that threw.\n\nAlso add a few missing CHECKs.\n\nChange-Id: Icf29506b258a2177b5e80c75cd2710761431ba4b\n"
    },
    {
      "commit": "55bd45f4ea40b9a0af323f813d07f23d7a8ed397",
      "tree": "f315fc79924662e612c6825b6d9b20ba2178853e",
      "parents": [
        "5e284224e5525ee0a8494a73d84c8ef86e022a0a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 04 17:31:20 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 04 18:23:36 2012 -0700"
      },
      "message": "More X86 fixes.\n\nSupport for long divides and sparse switches.\n\nChange-Id: I07cdf6a9a2e4c6156cc70a429bf58f22e0e45ef1\n"
    },
    {
      "commit": "5e284224e5525ee0a8494a73d84c8ef86e022a0a",
      "tree": "154f86939f556dd98851ab0d5eaef73ca84f745d",
      "parents": [
        "20a7a072c86042a537fb7da4f53e743b236c280c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 13:38:03 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 13:38:03 2012 -0700"
      },
      "message": "Fix more of the x86 assembler for the Mac.\n\nThe LITERAL macro only works inside [gas] macros. You _must_ use it in a [gas]\nmacro, but must _not_ use it outside of a [gas] macro.\n\nAlso, today\u0027s changes added function definitions that didn\u0027t go via any of the\nexisting macros, which were hiding the details of Mac OS name mangling. I\u0027ve\nadded a new DEFINE_FUNCTION macro to hide this for regular functions.\n\nThis builds and links on Mac OS and Linux.\n\nChange-Id: Ifb775c85d4ecc4952f5338866487d897ce6f0a6a\n"
    },
    {
      "commit": "20a7a072c86042a537fb7da4f53e743b236c280c",
      "tree": "3ae8da65e4b5d7f322d2afd97fb0a2e8148a75b9",
      "parents": [
        "ef67aec56cfc8b43239027f8ddc331162eb103a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 12:54:00 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 12:54:00 2012 -0700"
      },
      "message": "Really fix the x86 assembler for Mac OS\u0027 as(1).\n\nTested on Mac OS rather than Linux this time...\n\nChange-Id: Ic51692937eafc8ccbeb4c58da2cc48d289fb187f\n"
    },
    {
      "commit": "899214c7b94b2f21d2fee2b77e2482ea6b18c0d1",
      "tree": "55d719853657a614cd47aceb8f539fb62bd95154",
      "parents": [
        "9abca492f4630ffbe89498bf73bf89f943753ed6",
        "adc078a61329fa86bc93532f7827302b99c0b41d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 12:00:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 12:00:59 2012 -0700"
      },
      "message": "Merge \"Fix Mac OS build breakage.\" into ics-mr1-plus-art"
    },
    {
      "commit": "adc078a61329fa86bc93532f7827302b99c0b41d",
      "tree": "ddf7362b481b12910b8ac6bf0f64faceea5c1f36",
      "parents": [
        "94347f2c6be1e0f7532b5e8f9831496d63f9db48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 11:39:05 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 11:39:05 2012 -0700"
      },
      "message": "Fix Mac OS build breakage.\n\nThe usual name mangling difference.\n\nChange-Id: Icaed39ac251ca4db25322f6bee91088c00437282\n"
    },
    {
      "commit": "9abca492f4630ffbe89498bf73bf89f943753ed6",
      "tree": "1d5f6df412114e58b108ae76be927cb313b6a4f2",
      "parents": [
        "99d067610dca2aab62b2a6b5578f5e5815811b2a",
        "0791adc2249366c50684935a4c42ba5e58bc3746"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 04 11:27:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:27:39 2012 -0700"
      },
      "message": "Merge \"Fix method tracing and allow alloc counting during tracing.\" into ics-mr1-plus-art"
    },
    {
      "commit": "0791adc2249366c50684935a4c42ba5e58bc3746",
      "tree": "bc667e81a3528952ad144da7e181189eb9804727",
      "parents": [
        "540a5b768bf5f76bd71ebf66612fb2298899480f"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 04 11:14:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 04 11:26:11 2012 -0700"
      },
      "message": "Fix method tracing and allow alloc counting during tracing.\n\nForcing alignment on art_trace_exit_from_code was preventing the LR of\nprofiled frames from matching. Also, the merge of the different types of\nstalk walks introduced a small bug.\n\nThe metrod tracer now also supports the TRACE_COUNT_ALLOCS flag to count\nallocations during method tracing.\n\nChange-Id: Ief9e4612471a134a90eabf15432135162b633b92\n"
    }
  ],
  "next": "7caad77632ae121c9f64c488e3f8f710e2c4813d"
}
