)]}'
{
  "log": [
    {
      "commit": "e222ee0b794f941af4fb1b32fb8224e32942ea7b",
      "tree": "0b9f5fe6398663c9d871881cf7de28eca8bdfc6f",
      "parents": [
        "1aa246dec5abe212f699de1413a0c4a191ca364a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 14:41:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 15:24:45 2012 -0800"
      },
      "message": "Move stringpiece.h and stringprintf.h to base/.\n\nChange-Id: I7f71b4a12f99c5f81771146c66629ae5a947b229\n"
    },
    {
      "commit": "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461",
      "tree": "2350745da33df6fcb9fb0c9059e55ea5d5ea8f67",
      "parents": [
        "76b6167407c2b6f5d40ad895b2793a6b037f54b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:34:25 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:35:05 2012 -0800"
      },
      "message": "Move logging.h into base/logging.h.\n\nChange-Id: Id68f85f7c3a71b156cb40dec63f94d4fb827f279\n"
    },
    {
      "commit": "2bcb4a496b7aa00d996df3a070524f7568fb35a1",
      "tree": "8422ab8d65b7422008094b2eaadec0dad87b2df3",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 08 10:39:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 16 14:01:34 2012 -0800"
      },
      "message": "Add \"kind\" argument to Get/SetVReg.\n\nIn order to determine where a register is promoted its necessary to know\nthe kind of use of the register.\nExtend notion of precise-ness to numeric verifier register types.\nDump verifier output in oatdump.\nDump vregs with their location or constant value.\nIntroduce indenting ostream utility.\n\nChange-Id: Ia3d29497877976bc24465484743bca08236e1768\n"
    },
    {
      "commit": "b23a7729cf7855fa05345d03a4d84111d5ec7172",
      "tree": "5313e076b19387db3cbcac95225d3f098f19451d",
      "parents": [
        "137e88f798857321f4007631fdf052d2830ec2c4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 09 16:54:26 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 09 16:54:26 2012 -0700"
      },
      "message": "Dump maps inline in disassembled code.\n\nIn pursuit of Bug: 7250540, dump mapping and GC map tables inline such\nas:\n\n0x607333a8: f8dfe11c    ldr.w   lr, [pc, #284]  ; 0x6076416d\n0x607333ac: 1c05        mov     r5, r0\n0x607333ae: f8df0144    ldr.w   r0, [pc, #324]  ; 0x6003ba08\n0x607333b2: 9a0b        ldr     r2, [sp, #44]\n0x607333b4: f04f0b2f    orr     r11, pc, ThumbExpand(47)\n0x607333b8: 1c29        mov     r1, r5\n0x607333ba: 465b        mov     r3, r11\n0x607333bc: 2900        cmp     r1, #0\n0x607333be: f0008070    beq.w   +224 (0x607334a2)\n0x607333c2: 47f0        blx     lr\nsuspend point dex PC: 44\nGC map objects:  v2 (r7), v3 (r5), v6 ([sp + #84]), v7 (r6)\n...\n\nAs GC map and mapping tables are inline, don\u0027t dump them.\nAlso dump dex instructions before code.\n\nChange-Id: I9f0c04182a4cda6844027eae22e8151f2827dc99\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": "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": "d83bc36185c8b2a763c79fa364b5387faa26c669",
      "tree": "128211da40646cb37526b0723b59767a4fba403a",
      "parents": [
        "c8982582778cc1571b65519e1112441be59a5f83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 17:43:13 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 17:45:36 2012 -0700"
      },
      "message": "Disassembly support for Thumb16 load/store single data item.\n\nChange-Id: Iecb4230860bafe084d8808adb51f83a426cf91d6\n"
    },
    {
      "commit": "9af8940be07c83b150c6922fa341b854daf37455",
      "tree": "3a6302f1500ad1e625632f3d826d89ad82f52b82",
      "parents": [
        "581b2ea85d9b382f6b14efadc9d2d36b526ef7c5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 11:29:35 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 11:29:35 2012 -0700"
      },
      "message": "Support for disassembly of dsb, ldrex and strex.\n\nAlso print IT conditions for 32bit thumb operations.\n\nChange-Id: Ie696dd7057730962efb791ba55041a2a70d1a975\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": "1ca98499b837491f2519ca7d7d42354a0dbd45a2",
      "tree": "3dc254a33a6052478101f50500e07d7f90adcc6c",
      "parents": [
        "a47468765b3c314b4b76959e3976af4f012bc533"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 12 17:21:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 12 17:29:48 2012 -0700"
      },
      "message": "Fix ARM disassembly of LDR/STR offsets, always include the sign in branch offsets.\n\nExamples:\n\n            0x60cdd80c: e599c1e4    ldr     r12, [r9, #484]  ; pDeliverException\n\n            0x60cdd7c4: 1a00000b    bne     +44 (0x60cdd7f8)\n            0x60cdd804: eaffffef    b       -68 (0x60cdd7c8)\n\nI now believe the entire disassembly of our JNI stubs.\n\nChange-Id: Ibf4ae7e767054e78b8e763cb20eea6b73fb6f0e7\n"
    },
    {
      "commit": "ebbc5779756bc73df286254eb62641af2c12b771",
      "tree": "a2cfb45c633be3763b78364cdff50b5eca81fffd",
      "parents": [
        "e2645d3e2db211bfd75775a2185c135ff387161a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 17:00:08 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 17:00:08 2012 -0700"
      },
      "message": "CBNZ disassembly.\n\nChange-Id: I7ee05fd1c5ae9465094dca0f25e5da5357064ff7\n"
    },
    {
      "commit": "d86261ed72e4fb294f602e1831306612291b0f24",
      "tree": "822900e7da746a64747e0d829ee938eccc516814",
      "parents": [
        "61a9c617f9690b0132580efa2062de88845450dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 11:23:23 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 11:23:23 2012 -0700"
      },
      "message": "Sign-extend ARM B targets.\n\nExamples:\n\n            0x60cdd7c4: 1a00000b    bne     44 (0x60cdd7f8)\n\n            0x60cdd804: eaffffef    b       -68 (0x60cdd7c8)\n\nChange-Id: Id8c895dcd6153654975e652fa28638a15e00b538\n"
    },
    {
      "commit": "3d71d0799748aac23ce5935d61b909bec6e96461",
      "tree": "e9df4425b3f6aeb889c0e30d0a54fb667b8a70ea",
      "parents": [
        "836eb8086a58cefb2cd7c31df86ac071f80f0fda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 18:28:35 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 18:28:35 2012 -0700"
      },
      "message": "Improve ARM disassembler to cope with JNI stubs.\n\nAlso decode r9-relative loads/stores, and add the Thread::state_ offset.\n\nAlso lose the implicit \u0027s\u0027 on the test instructions, and don\u0027t show the\ndestination register for those instructions, since they don\u0027t use it.\n\nExamples:\n\n            0x60cdd718: e599c060    ldr     r12, [r9, #96]  ; top_sirt_\n\n            0x60cdd754: e589c06c    str     r12, [r9, #108]  ; state_\n\n            0x60cdd760: e35c0000    cmp     r12, #0\n\n            0x60cdd7c4: 1a00000b    bne     44 (0x60cdd7f8)\n\n            0x60cdd814: e1200070    bkpt    #0\n\nChange-Id: I4afa9f47267daefded46211d62718fd7fb87cf97\n"
    },
    {
      "commit": "105afd2bd8f9f0ddfcfcb4b8db9f356ee82ae8cd",
      "tree": "fc5b59d5cd6f5ad4dccbe42c19fbd71e86271cef",
      "parents": [
        "b92bcabcbb28f69fe99e1c2f2e5559ab2c47aa60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 15:04:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 15:04:25 2012 -0700"
      },
      "message": "Fancy disassembly of Thumb2 IT blocks.\n\nExample:\n\n            0x60ce6ea4: 4291        cmp     r1, r2\n            0x60ce6ea6: bf0e        itee    eq\n            0x60ce6ea8: 2001        movseq  r0, #1\n            0x60ce6eaa: 1c10        movne   r0, r2\n            0x60ce6eac: 47f0        blxne   lr\n            0x60ce6eae: 1c06        mov     r6, r0\n\nChange-Id: I85deae2e471b8bfc513281be421e0bd46c1b60a0\n"
    },
    {
      "commit": "5b9b1bc168e1198e287cf013254c89389efca70d",
      "tree": "b14c088555ea020e4af8645b4a862f164a88f9d8",
      "parents": [
        "d3fb569391be72184248a78bd1d920ecf5bc3b55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 22:51:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 22:51:43 2012 -0700"
      },
      "message": "Disassemble PC relative literals.\n\nChange-Id: I9b60e0efc9e311c085abb60dc867407ee17dc61b\n"
    },
    {
      "commit": "66a3fca76997b2d33900faf3ef0cf8226d3a0b58",
      "tree": "7d873bd2e579724595c73dec765082b1edc41f71",
      "parents": [
        "01f3c329ccb521c3beeafeb81b6be9b5abc4e12e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 19:51:34 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 09 21:04:52 2012 -0700"
      },
      "message": "Add extra 32bit Thumb2 disassembly.\n\nChange-Id: Ib3d6937a768d6ce9f4b81f7fd4e071acdfe48bb7\n"
    },
    {
      "commit": "28fa76d17d741238da86dbdb47f721ae97c9eac8",
      "tree": "de34f96fbbda6d650db267bd595a20191b9a07cf",
      "parents": [
        "82914b6164fd0109531391975389e4f0ff6832c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 17:31:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 17:59:35 2012 -0700"
      },
      "message": "A dirty (but useful) hack to decode thread offsets in disassembly.\n\nPlus more readable x86 formatting.\n\nAlso fix a bug decoding LDR (immediate, Thumb) encoding T1.\n\nChange-Id: I95c79d3fb4d912d1ef386b5843abd37d3652a476\n"
    },
    {
      "commit": "0f3c55331439970e01af67f80ac117c473bc04cf",
      "tree": "cfa28ad2a58af1ffddb0a2ce90443ad4606743c3",
      "parents": [
        "273cf36d199cf73de3cf61a559ad27c9d23f9825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "message": "Kill constants.h and fix some copyright headers.\n\nChange-Id: I51c04d731d6de035328781d8ac134ad6fcf49897\n"
    },
    {
      "commit": "c7fe4e080563a5c1fe7d84781bccecee2ce9392d",
      "tree": "057f1cbab00d3d4c3faac02aec5fbdc242384f76",
      "parents": [
        "630e77d4648093ce9870c7558d78edea24eab06d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 21:36:21 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 21:36:21 2012 -0700"
      },
      "message": "Disassembler support for vcmp.\n\nChange-Id: I8600522fe36848a6f5d0c12cff5edfa650a5cbb5\n"
    },
    {
      "commit": "630e77d4648093ce9870c7558d78edea24eab06d",
      "tree": "fdab55746260381ee42d63ca023c01524226fa18",
      "parents": [
        "9d86214cbd595cb432c81572bcf3595349b87c99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 19:20:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 29 19:18:56 2012 -0700"
      },
      "message": "Move all ARM register dumping to operator\u003c\u003c style.\n\nJust a step towards doing something more useful with \"[r9, #396]\"...\n\nChange-Id: I256865a9a53fafc76e17ea2f952949ce95339ef9\n"
    },
    {
      "commit": "087b2419f432c7d1c32da27c528af4701adb6abd",
      "tree": "361fc03562e2fb6aa73c7eb5858931faeec52c16",
      "parents": [
        "16da88c70c4bdbd97b8482be8b42103a52f22d59"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 21 01:30:32 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 21 01:30:32 2012 -0700"
      },
      "message": "Extra Thumb2 disassembly, including strb.\n\nChange-Id: Ic36a5836e2c79ff412466b1dada1622df4b7fd8a\n"
    },
    {
      "commit": "ad03ef509d5145d74752a0b3f5c87d99db225786",
      "tree": "428da78ce427cad518df1e5c792119bf4b44cee8",
      "parents": [
        "9c044ce5f76e9bfa17c4c1979e9f8c99ae100695"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 19:34:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 19:34:47 2012 -0700"
      },
      "message": "Disassembly of Thumb2 data processing instructions.\n\nChange-Id: I7e7dbf1fdac7335b01035d35c9fd950176d2d400\n"
    },
    {
      "commit": "cbf0b61f5415e96a76284deff87e7cb9aba022b9",
      "tree": "20dbb10c2f76a362764347bfe0021af5ed20a344",
      "parents": [
        "48c6081a230d89599379590612ed638f1c7b4f99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 16:23:47 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 16:23:47 2012 -0700"
      },
      "message": "Make our ARM and Thumb2 disassemblers look more like objdump(1).\n\nSorry BBC BASIC, but your time has passed...\n\nChange-Id: Ib3b269714eaad1ae8b7945627ade98edc1b4047a\n"
    },
    {
      "commit": "77405796564c6c1353807cda18b28678a719bd68",
      "tree": "948781c769760d71c7aff4e8db57aa5a9e311372",
      "parents": [
        "f8bbb8448c733e9e3ad43aad69774c37888329b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:22:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:46:59 2012 -0700"
      },
      "message": "Rewrite the invoke stubs to use JValue[]s.\n\nThe tests were only testing the static stubs, so extend the tests to include\nnon-static stubs too.\n\nAlso add just enough of an ARM disassembler to disassemble the invoke stubs.\n\nChange-Id: If71dfb66b8b8188f9d871914f0eaf1013c9993b9\n"
    },
    {
      "commit": "40627dbd27b3c9e2cf32768882d9859ce71ef015",
      "tree": "5dc265a1a3fda7c75679c5c6a5cb55d2bd3ada90",
      "parents": [
        "11f9d2130e938511efceb6d2a4793cee7dfdde35"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 04 17:31:09 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 04 20:08:54 2012 -0800"
      },
      "message": "Disassembler support for branches.\n\nChange-Id: Ifc6b0177a984b972c54ac5e3a86ab874fcc9d747\n"
    },
    {
      "commit": "3a5c1ce3f11805a3382046f699c8fb1410a602b3",
      "tree": "74d7f28a910d4670de71d9edc2e9af3b56d31636",
      "parents": [
        "41f05df8aeba13e853a22820a0f4bf094233e2d9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 29 10:06:46 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 02 15:47:32 2012 -0800"
      },
      "message": "Extra verbosity and disassembler for oatdump\n\nDisassembler for thumb2 instructions.\nPrint outlying methods for ART files.\nFind oat code methods that require trampolines.\nFix accounting of code and which file contains which bytes.\nDump oat meta-data.\n\nChange-Id: I10f52a4841f57a3f65d61ce0d1bb71bb4eb9f595\n"
    }
  ]
}
