)]}'
{
  "log": [
    {
      "commit": "a836bc9760419af4a515f96c66100a39e865f3b9",
      "tree": "3719f9a8ee66ca734fdb62fa77dae0b60e45ae3c",
      "parents": [
        "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 25 16:30:53 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 09 12:58:25 2014 +0100"
      },
      "message": "Support proxy method in StackVisitor::GetThisObject\n\nAdds function artQuickGetProxyThisObject which returns the \u0027this\u0027\nobject of the proxy method using the QuickArgumentVisitor. Since\nproxy methods have the same layout than the kRefsAndArgs runtime\nmethod and \u0027this\u0027 is the 1st method argument, it is located in the\nfirst GPR.\n\nBug: 17965861\nChange-Id: Ic6ef6c83b9a549c25f9929d5e00ffe1d3a9a36f0\n"
    },
    {
      "commit": "00f1527007381a0cbf1a2b36b956cb3ddac906cb",
      "tree": "23ada8c25751de12e3f4229f18885667897d05c2",
      "parents": [
        "384f729a465d0ab3a76faa7ec8fa05ced82b4a85"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 16:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 16:55:46 2014 -0800"
      },
      "message": "Fix artQuickResolutionTrampoline.\n\nMistakenly updating dex method index of the non-receiver method.\n\nChange-Id: I42296e344a53e001bf37414852cd9f23f629ca40\n"
    },
    {
      "commit": "e0a02dabedd7db2c511a513fb48d7e39ed3dd9c0",
      "tree": "70ee0e4caa2cc26c661b6cb0231b8423506e50fa",
      "parents": [
        "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:10:53 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:21:56 2014 -0800"
      },
      "message": "Move FindDexMethodIndexInOtherDexFile into ArtMethod.\n\nMove FindDexMethodIndexInOtherDexFile out of MethodHelper into ArtMethod in\npreparation for the removal of MethodHelper.\nTidy ClassLinker::ResolveMethod so that all exception paths flow through the\nexception pending assertion.\nTidy artQuickResolutionTrampoline to be more explicit about variable names and\nonly update the dex cache if necessary.\n\nChange-Id: I3e48eb4f6c1291533067c1b53efe90c53bfcaea8\n"
    },
    {
      "commit": "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99",
      "tree": "b4c2a4435800222fa740a5ae57fa217b6aed0875",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:49 2014 -0800"
      },
      "message": "Remove MethodHelper from the interpreter.\n\nUse ShadowFrame to get the executing method to avoid a handle for the current\nmethod.\nVarious associated bits of header file clean-up and removal of an unnecessary\nuse of MethodHelper in CompilerDriver.\n\nChange-Id: I3b6f4413701e8fc6b0c58b0041a0dd15472bedaa\n"
    },
    {
      "commit": "124cd8f768436e082ca0dfed8f1e4f4713220e44",
      "tree": "c81d24102cfc8a0346dc7ed67ace964ebcd6fa8c",
      "parents": [
        "da4b7e8979e9b7de634aecee62da6ce867ccaa8d",
        "735b8559d6dd26c610d4b97d72f25a092d9c8947"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Nov 22 01:32:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 22 01:32:30 2014 +0000"
      },
      "message": "Merge \"Add JNI trampoline for mips32.\""
    },
    {
      "commit": "a7dd0386f35c0ba4aef3f5b16bc84c6f4e2fc702",
      "tree": "86bcc8c05fb3f868dbdae3dcacbf95de880d4d64",
      "parents": [
        "af6dad6cbb6685f92d7274f9e8c45baa98232c79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 20 17:08:58 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 21 10:11:41 2014 -0800"
      },
      "message": "Fix oatdump to use OatHeader pointer size\n\nBug: 18473190\nChange-Id: If505b4f62105899f4f1257d3bccda3e6eb0dcd7c\n\n(cherry picked from commit c934e483ceabbd589422beea1fa35f5182ecfa99)\n"
    },
    {
      "commit": "2d7210188805292e463be4bcf7a133b654d7e0ea",
      "tree": "7705a3bf841ae44b2396728fa22ed0b5dcb44dbf",
      "parents": [
        "e0491682d101c69bf88c3c24a965312129cbfa38"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 10 11:08:06 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 18 12:27:37 2014 -0800"
      },
      "message": "Change 64 bit ArtMethod fields to be pointer sized\n\nChanged the 64 bit entrypoint and gc map fields in ArtMethod to be\npointer sized. This saves a large amount of memory on 32 bit systems.\nReduces ArtMethod size by 16 bytes on 32 bit.\n\nTotal number of ArtMethod on low memory mako: 169957\nImage size: 49203 methods -\u003e 787248 image size reduction.\nZygote space size: 1070 methods -\u003e 17120 size reduction.\nApp methods: ~120k -\u003e 2 MB savings.\n\nSavings per app on low memory mako: 125K+ per app\n(less active apps -\u003e more image methods per app).\n\nSavings depend on how often the shared methods are on dirty pages vs\nshared.\n\nTODO in another CL, delete gc map field from ArtMethod since we\nshould be able to get it from the Oat method header.\n\nBug: 17643507\n\nChange-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8\n\n(cherry picked from commit e832e64a7e82d7f72aedbd7d798fb929d458ee8f)\n"
    },
    {
      "commit": "6990bdab0322da35bb6f38c79b21c241a4347f89",
      "tree": "dc5886085d369f19464f129dc60a256dfdb96a69",
      "parents": [
        "7bfb3f8b1748b5bf7e217a1337176ad488dca66a",
        "8315ee03dbee3c48881191b3aedb108d1b626c0b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Nov 17 16:08:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 17 16:08:02 2014 +0000"
      },
      "message": "Merge \"Fix DCHECK in artInstrumentationMethodEntryFromCode\""
    },
    {
      "commit": "8315ee03dbee3c48881191b3aedb108d1b626c0b",
      "tree": "1eaf9f87f3ada579c10cdd82c7a261592516e0a2",
      "parents": [
        "d45f76e59bf8342491ca02d64721537e06c79f43"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Nov 17 16:10:44 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Nov 17 16:13:41 2014 +0100"
      },
      "message": "Fix DCHECK in artInstrumentationMethodEntryFromCode\n\nWe do use the quick to interpreter bridge for deoptimized method. So\nmove the DCHECK only in the else case.\n\nBug: 18170596\nChange-Id: Ife83fd71da7490196ada694a4227b43a9ecbf577\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "e17945650e860f133c75c0e3abd5f5342a053499",
      "tree": "b8bd0be64bead5fed72c7c6bc57b7a5e2dc20e27",
      "parents": [
        "78a3233313260665fe82ba56257855e043bca3d4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 22:26:32 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 22:26:32 2014 -0800"
      },
      "message": "ART: Fix some redundant declarations\n\nRefactor entrypoint initialization such that there is a large set\nof common extern \"C\" declarations for quick entrypoints.\n\nChange-Id: Iae8548e5f7ebbf51dc6c55c4283fa89437e18c98\n"
    },
    {
      "commit": "78a3233313260665fe82ba56257855e043bca3d4",
      "tree": "46622bf088b3f30d2c6d8a5b548519137c88c867",
      "parents": [
        "fe50a0f644bf57a92612d08ad21dc4ea5a2f652a",
        "277ccbd200ea43590dfc06a93ae184a765327ad0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 05 02:42:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 05 02:42:56 2014 +0000"
      },
      "message": "Merge \"ART: More warnings\""
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "7dc9c81aee48928bd7a723fd9a4caed63d196f8f",
      "tree": "1bc2eebab5f3c7536c24324d3e1dbfd75cc7b25b",
      "parents": [
        "de2db523960444ca8abd175814374cb3782f1632"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 04 15:10:55 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 04 15:10:55 2014 -0800"
      },
      "message": "Fix build.\n\nChange-Id: I7c6657bdc31e57c144999d4a3f8c2836c3d90403\n"
    },
    {
      "commit": "de2db523960444ca8abd175814374cb3782f1632",
      "tree": "408c85fcf5f889b2cb81a8ee9b6dd1746b4c1aa8",
      "parents": [
        "cc19cb6845f427036513e155d50c11533933c63f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 04 14:43:18 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 04 14:43:18 2014 -0800"
      },
      "message": "Fix mac build.\n\nChange-Id: I228cdb0b25cd0f2c5e745a87a97aa8fd3c8a160a\n"
    },
    {
      "commit": "575e78c41ece0dec969d31f46be563d4eb7ae43b",
      "tree": "16906df0ba0912a6cb01b3139ba7c60d5f9d09b7",
      "parents": [
        "2998e9cdc9f19c30c4944a4726ed9f147de79ebd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "message": "ART: Replace COMPILE_ASSERT with static_assert (runtime)\n\nReplace all occurrences of COMPILE_ASSERT in the runtime tree.\n\nChange-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "735b8559d6dd26c610d4b97d72f25a092d9c8947",
      "tree": "49f4bf27ba2c332b74a70a6c4f3d9938cb07720b",
      "parents": [
        "57b4d1c44e246dfd4aaef2d23b20a696a0c5e57e"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Oct 31 12:21:40 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Oct 31 12:29:40 2014 -0700"
      },
      "message": "Add JNI trampoline for mips32.\n\nThis patch allows the browser to come up.\n\nChange-Id: Icad9da868be76d6a08e615807fad8678ac0a110f\n"
    },
    {
      "commit": "3e3364e267117462894e0c3b7d9b413b25d28057",
      "tree": "b5f96ac99323be3e210156de8d97a61af7e1a19c",
      "parents": [
        "c57a66d5aadfd682c63e34ec1b1f304260f8c333",
        "2c4257be8191c5eefde744e8965fcefc80a0a97d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 25 00:14:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 25 00:14:26 2014 +0000"
      },
      "message": "Merge \"Tidy logging code not using UNIMPLEMENTED.\""
    },
    {
      "commit": "5667fdbb6e441dee7534ade18b628ed396daf593",
      "tree": "a06fe0a79b3465571556d13f509daf1f664fc614",
      "parents": [
        "b62ff579cd870b0bf213765b07d7b404d15ece7b"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Thu Oct 23 18:29:55 2014 +0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 16:27:22 2014 -0700"
      },
      "message": "ARM: Use hardfp calling convention between java to java call.\n\nThis patch default to use hardfp calling convention. Softfp can be enabled\nby setting kArm32QuickCodeUseSoftFloat to true.\n\nWe get about -1 ~ +5% performance improvement with different benchmark\ntests. Hopefully, we should be able to get more performance by address the left\nTODOs, as some part of the code takes the original assumption which is not\noptimal.\n\nDONE:\n1. Interpreter to quick code\n2. Quick code to interpreter\n3. Transition assembly and callee-saves\n4. Trampoline(generic jni, resolution, invoke with access check and etc.)\n5. Pass fp arg reg following aapcs(gpr and stack do not follow aapcs)\n6. Quick helper assembly routines to handle ABI differences\n7. Quick code method entry\n8. Quick code method invocation\n9. JNI compiler\n\nTODO:\n10. Rework ArgMap, FlushIn, GenDalvikArgs and affected common code.\n11. Rework CallRuntimeHelperXXX().\n\nChange-Id: I9965d8a007f4829f2560b63bcbbde271bdcf6ec2\n"
    },
    {
      "commit": "2c4257be8191c5eefde744e8965fcefc80a0a97d",
      "tree": "9db3e1f1c60f2df29638ba3ce9d5d5bb8b26ca2c",
      "parents": [
        "98c271d517bc4d25fc6879b4b8e35ea93885d9e2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:20:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:23:42 2014 -0700"
      },
      "message": "Tidy logging code not using UNIMPLEMENTED.\n\nChange-Id: I7a79c1671a6ff8b2040887133b3e0925ef9a3cfe\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "1428dce77b8b0e8ec3e3665d816678df1253fc10",
      "tree": "f62d5189cce057ad579f9ca7ee44f10ffa57cb53",
      "parents": [
        "6207b2b0c299798fd5213bb3d6c05e5b978747e8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 15:02:15 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 15:02:15 2014 -0700"
      },
      "message": "Const-ify functions/variables in trampoline entrypoints.\n\nChange-Id: I777600c7362ab3c1dd65a695e36a4633b43033fe\n"
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "b7f1c06737c14cccca91153c714f58d99c69adcc",
      "tree": "9a7a9ba2131f45cc9c91111e88fb8f14dc516e0c",
      "parents": [
        "6055bccdffcda19542775c7042a06508cd8f90ca",
        "59c07060a6fbb93e455b44f00098cafb8e7e26cc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 22:24:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 10 22:24:24 2014 +0000"
      },
      "message": "Merge \"Work around ICE bugs with MIPS GCC and O1.\""
    },
    {
      "commit": "59c07060a6fbb93e455b44f00098cafb8e7e26cc",
      "tree": "e6db8fc4af24aa1704be0cd516d27340ae3ecae5",
      "parents": [
        "b2a7ec2ad3f24c4094185cbf87bd0a39f727ffe7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 13:03:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 15:01:21 2014 -0700"
      },
      "message": "Work around ICE bugs with MIPS GCC and O1.\n\nAlso, work around GCC warning bugs where array accesses with explicit\nbounds checks are flagged as being out-of-bounds. Significantly, clean-up\nthe HandleScope so the array accesses don\u0027t appear out-of-bounds at compile\ntime.\n\nChange-Id: I5d66567559cc1f97cd0aa02c0df8575ebadbfe3d\n"
    },
    {
      "commit": "647b1a86f518d8db0331b3d52a96392b7a62504b",
      "tree": "7370f795ef3c7fbdd2695d23bc6f8171f40f43f1",
      "parents": [
        "acfbbd4df2fc1c79a7102587bebf398f95b5e5de"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 11:02:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 12:26:02 2014 -0700"
      },
      "message": "Fix 2 new sets of clang compiler warnings.\n\nFix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.\nIn the case of -Wfloat-equal the current cases in regular code are deliberate,\nso the change is to silence the warning. For gtest code the appropriate fix is\nto switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.\nThe -Wmissing-noreturn warning isn\u0027t enabled due to a missing noreturn in\ngtest. This issue has been reported to gtest.\n\nChange-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "832336b3c9eb892045a8de1bb12c9361112ca3c5",
      "tree": "0e8696869a28ee0dee34d130b586b1bf6f072d6e",
      "parents": [
        "f1f05d303988a5c071c87b760056be8358276c94"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 15:35:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 16:00:31 2014 -0700"
      },
      "message": "Don\u0027t copy fill array data to quick literal pool.\n\nCurrently quick copies the fill array data from the dex file to the literal\npool. It then has to go through hoops to pass this PC relative address down\nto out-of-line code. Instead, pass the offset of the table to the out-of-line\ncode and use the CodeItem data associated with the ArtMethod. This reduces\nthe size of oat code while greatly simplifying it.\nUnify the FillArrayData implementation in quick, portable and the interpreters.\n\nChange-Id: I9c6971cf46285fbf197856627368c0185fdc98ca\n"
    },
    {
      "commit": "5ad97daa3112ca626e3fbf2bf08971977344c3c3",
      "tree": "a470901bdeea004fd2ef526241853a167b1c0a02",
      "parents": [
        "72f961813dcb915542b9ae957aed040082d3e40a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Oct 06 10:46:14 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Oct 06 10:47:18 2014 -0700"
      },
      "message": "Handlerize methods across some GC points.\n\nBug: 12687968\nChange-Id: I0d5b0a78488ba76db4d25991d8db95b24bb624e9\n"
    },
    {
      "commit": "c8ccf68b805c92674545f63e0341ba47e8d9701c",
      "tree": "fb360323538cb242ebf7c5c0aca27d3a0bce0abb",
      "parents": [
        "fcabfbe577c0fd40910b565beb681bd4b66f6c5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:07:43 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:13:48 2014 -0700"
      },
      "message": "ART: Fix some -Wpedantic errors\n\nRemove extra semicolons.\n\nDollar signs in C++ identifiers are an extension.\n\nNamed variadic macros are an extension.\n\nBinary literals are a C++14 feature.\n\nEnum re-declarations are not allowed.\n\nOverflow.\n\nChange-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a\n"
    },
    {
      "commit": "76433275dbe39e5ced1c223b006d1b900b1937f6",
      "tree": "a72c101defa86ceff8b633cf2eaa606c87f783eb",
      "parents": [
        "88adf36315237947d3a5d10b28fdf8b9da7794a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 14:32:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 19:54:39 2014 -0700"
      },
      "message": "Optimize get/set reflection performance\n\nSpeedups mostly from reducing how often access checks are needed,\nand adding more inlining, and adding templates.\n\nField_getInt from ~850ns -\u003e 350ns.\nField_setInt from ~900ns -\u003e 370ns.\n\nBug: 14063288\n\n(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)\n\nChange-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8\n"
    },
    {
      "commit": "5a4b8a236030460651a3136397d23ca6744e7eb7",
      "tree": "0e43891398e416d3fa77c7de391bf4db4408e8ee",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:30:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 19:50:12 2014 -0700"
      },
      "message": "ART: Rename Handle hierarchy\n\nBring the names in line with normal OO principles: ConstHandle\nbecomes Handle, and Handle becomes MutableHandle.\n\nChange-Id: I0f018eb7ba28bc422e3a23dd73a6cbe6fc2d2044\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    },
    {
      "commit": "64ad14dbe2225441fb7734bf6d89358d96692eea",
      "tree": "8992ebe906a4a0040502132aa9c77628a0a5ced6",
      "parents": [
        "688d4a42ff5ab3bcb28d516afcb80b79c392e8e4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 19 14:23:13 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 25 10:36:26 2014 -0700"
      },
      "message": "Support running without a boot image.\n\nBug: 17000769\n\nChange-Id: I6404d5050c8a2f4ee6e70d58532eb25ee9de248e\n"
    },
    {
      "commit": "3842ad76aaeb80e0bb6b02c5f7dc4674533ef872",
      "tree": "e1ae14a0dcbc45d8afa239c309d9b87235d90034",
      "parents": [
        "7469b6c96a7f67c9a230faede204ef6bf62b1596",
        "54accbca0b549b1b1ad3ef09655dad438bc1e104"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 14 16:31:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 12 11:30:17 2014 +0000"
      },
      "message": "Merge \"Fix bugs in the x86 and arm versions of generic JNI.\""
    },
    {
      "commit": "54accbca0b549b1b1ad3ef09655dad438bc1e104",
      "tree": "6354bddae9e09476380b9351b6c1a84636ac8154",
      "parents": [
        "e39a5e1ced3d2b87974c646678dd719c02a9a010"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 03:40:45 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 14 17:18:53 2014 +0100"
      },
      "message": "Fix bugs in the x86 and arm versions of generic JNI.\n\nAlso fix the run script of 116-nodex2oat to use the non-prebuild\nscript for target.\n\nBug: 17000769\n\nChange-Id: I439fcd710fb8bb408f3288ff8fb34fef23890adb\n"
    },
    {
      "commit": "648d7112609dd19c38131b3e71c37bcbbd19d11e",
      "tree": "54062831327c660acb309e877e8d8df9ba0c2d5d",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 25 16:15:27 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 13 09:01:41 2014 -0700"
      },
      "message": "Reduce stack usage for overflow checks\n\nThis reduces the stack space reserved for overflow checks to 12K, split\ninto an 8K gap and a 4K protected region.  GC needs over 8K when running\nin a stack overflow situation.\n\nAlso prevents signal runaway by detecting a signal inside code that\nresulted from a signal handler invokation.  And adds a max signal count to\nthe SignalTest to prevent it running forever.\n\nAlso reduces the number of iterations for the InterfaceTest as this was\ntaking (almost) forever with the --trace option on run-test.\n\nBug: 15435566\n\nChange-Id: Id4fd46f22d52d42a9eb431ca07948673e8fda694\n"
    },
    {
      "commit": "05d2ab2cdfca840fbff9e2d0a308b854c13d81a7",
      "tree": "70695194ca6ab29e53ef9eb2f2da3fa2ca22a514",
      "parents": [
        "8b2e9cde4aa3dc96b903c9eee3a7b3b7ee8422e4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 06 16:27:52 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 06 16:27:52 2014 -0700"
      },
      "message": "ART: Build fix for dex_cache rework\n\nA formerly public method is now private.\n\nChange-Id: I9834cfcf651ab2f3553633cad45ea4ed05f3e4c7\n"
    },
    {
      "commit": "269c3360f8e69e9faf8bc8a51fd87ae7adadfb59",
      "tree": "e6b96c5a139999feb13176f6a12f034cba6dd9f5",
      "parents": [
        "2524ffd731a3d173c9b0ad8f7b3e4a89d692aab6",
        "58a5af8568d224ca7eccf2483396ff9862f8d1ee"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 06 22:58:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 17:20:04 2014 +0000"
      },
      "message": "Merge \"ART: Add guards to the dex cache and its shortcuts\""
    },
    {
      "commit": "58a5af8568d224ca7eccf2483396ff9862f8d1ee",
      "tree": "4dfac17316970040e079244523b9b1e2ea163f05",
      "parents": [
        "1b192268f167f603fc372f02f9067f3ce5d82daf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 31 16:23:49 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 06 15:57:05 2014 -0700"
      },
      "message": "ART: Add guards to the dex cache and its shortcuts\n\nDo not return fields, methods or classes if the (declaring) class is\nerroneous.\n\nBug: 16692788\nChange-Id: If43c2414ad0eb22db5eba7cf66396c7f16c26597\n"
    },
    {
      "commit": "2524ffd731a3d173c9b0ad8f7b3e4a89d692aab6",
      "tree": "bb0b679ae6d874296d2c957730b3fae12d5f0e2a",
      "parents": [
        "57cd9d3bda952ee2c2cf977fb1e26a0a954e1bab",
        "eb1e929c0d6e312beb313ec108e611f1e74ff45c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 06 22:36:17 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 05 00:30:25 2014 +0000"
      },
      "message": "Merge \"Implement TLAB fast paths in artAllocObjectFromCode.\""
    },
    {
      "commit": "eb1e929c0d6e312beb313ec108e611f1e74ff45c",
      "tree": "cfed2ffd201efd68b5d184e536dff0bb270c6c61",
      "parents": [
        "7aaa8dbfbcde7f58564b42044892891559669838"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 06 12:41:15 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 06 12:41:15 2014 -0700"
      },
      "message": "Implement TLAB fast paths in artAllocObjectFromCode.\n\nGSS/TLAB GC speedup on N4 (ms):\n\nMemAllocTest 2963 -\u003e 2792\nBinaryTrees  2205 -\u003e 2113\n\nAlso, measured wth -XX:IgnoreMaxFootprint to invoke GC less often\n(only when the bump pointer space is filled rather than based on the\ntarget utilization):\n\nMemAllocTest 2707 -\u003e 2590\nBinaryTrees  2023 -\u003e 1906\n\nTODO: implement fast paths for array allocations.\n\nBug: 9986565\nChange-Id: I73ff6327b229704f8ae5924ae9b747443c229841\n"
    },
    {
      "commit": "f0a3f09c3d54646166a55c05a6b39c7dd504129c",
      "tree": "35a76479f1b774ae100727547a48da5bc0878e66",
      "parents": [
        "484e2c2d3531e5bb36f0e1e12f26c708939c6579"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 24 16:26:09 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 06 12:49:57 2014 -0700"
      },
      "message": "Fix proxy tracing and enable tests that now work with tracing.\n\nAlso updates proxy_test to generate an image for GetQuickOatCodeFor.\n\nBug: 16386215\nChange-Id: Ie7daad3d73ea7b60187bc1e7037ade0df8277107\n"
    },
    {
      "commit": "8df73882c60451e7f789bf9b1f3db2d7dc228640",
      "tree": "1be3d2c3d4bfa3a0a189d15c98c36926c812e7f1",
      "parents": [
        "01be6e3c4e4f083842ac9a6f8f9e6c2c937b8a15",
        "167cc7c33f7100e3f7acc1594c066daa0122e27a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 29 08:36:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 23 19:30:00 2014 +0000"
      },
      "message": "Merge \"Revert \"Fix proxy tracing and enable tests that now work with tracing.\"\""
    },
    {
      "commit": "167cc7c33f7100e3f7acc1594c066daa0122e27a",
      "tree": "d265344c32c5bf37d356fcb4871f57a1250d16b6",
      "parents": [
        "0398e171f206cd3b140a358ac31b0a3760380df1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 29 08:33:44 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 29 08:33:44 2014 +0000"
      },
      "message": "Revert \"Fix proxy tracing and enable tests that now work with tracing.\"\n\nThis reverts commit 0398e171f206cd3b140a358ac31b0a3760380df1.\n\nChange-Id: I1346ab01485cc7207be0ecb4d8788c500c0df903\n"
    },
    {
      "commit": "0398e171f206cd3b140a358ac31b0a3760380df1",
      "tree": "db5b34142d812f95581a864b681940efc94c6945",
      "parents": [
        "e5647289ccc7dafd8b91771a7bd1cd19416aed66"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 24 16:26:09 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 28 18:33:04 2014 -0700"
      },
      "message": "Fix proxy tracing and enable tests that now work with tracing.\n\nBug: 16386215\nChange-Id: Iec2a372c921caceb050c6baf72d48b3d822899a4\n"
    },
    {
      "commit": "984305917bf57b3f8d92965e4715a0370cc5bcfb",
      "tree": "c463ecec05eed70e2d9e5e0083e8a556581b1333",
      "parents": [
        "98cc1e552c2ccbe5d51bc81d49e79119280f5416"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Jul 27 19:44:50 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 28 09:15:48 2014 -0700"
      },
      "message": "ART: Rework quick entrypoint code in Mir2Lir, cleanup\n\nTo reduce the complexity of calling trampolines in generic code,\nintroduce an enumeration for entrypoints. Introduce a header that lists\nthe entrypoint enum and exposes a templatized method that translates an\nenum value to the corresponding thread offset value.\n\nCall helpers are rewritten to have an enum parameter instead of the\nthread offset. Also rewrite LoadHelper and GenConversionCall this way.\nIt is now LoadHelper\u0027s duty to select the right thread offset size.\n\nIntroduce InvokeTrampoline virtual method to Mir2Lir. This allows to\nfurther simplify the call helpers, as well as make OpThreadMem specific\nto X86 only (removed from Mir2Lir).\n\nMake GenInlinedCharAt virtual, move a copy to X86 backend, and simplify\nboth copies. Remove LoadBaseIndexedDisp and OpRegMem from Mir2Lir, as they\nare now specific to X86 only.\n\nRemove StoreBaseIndexedDisp from Mir2Lir, as it was only ever used in the\nX86 backend.\n\nRemove OpTlsCmp from Mir2Lir, as it was only ever used in the X86 backend.\n\nRemove OpLea from Mir2Lir, as it was only ever defined in the X86 backend.\n\nRemove GenImmedCheck from Mir2Lir as it was neither used nor implemented.\n\nChange-Id: If0a6182288c5d57653e3979bf547840a4c47626e\n"
    },
    {
      "commit": "b551fdcda9eb128c80de37c4fb978968bec6d4b3",
      "tree": "62942f412f2275e2e9188f71c370cd95ec91e17f",
      "parents": [
        "2815f1242c6c3ea1fc2df7bb5e4bd1924f4e75f7"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Fri Jul 25 11:49:42 2014 +0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 29 00:38:14 2014 -0700"
      },
      "message": "AArch64: Clean up CalleeSaveMethod frame and the use of temp registers.\n\nCalleeSaveMethod frame size changes :\nSaveAll : 368 -\u003e 176\nRefOnly : 176 -\u003e 96\nRefsAndArgs : 304 -\u003e 224\n\nJNI register spill size changes :\n160 -\u003e 88\n\nIn the transition assembly, use registers following the rules:\n1. x0-x7 as temp/argument registers.\n2. IP0, IP1 as scratch registers.\n3. After correct type of callee-save-frame has been setup, all registers\nare scratch-able(probably except xSELF and xSUSPEND).\n4. When restore callee-save-frame, IP0 and IP1 should be untouched.\n5. From C to managed code, we assume all callee save register in AAPCS\nwill be restored by managed code except x19(SUSPEND).\n\nIn quick compiler:\n1. Use IP0, IP1 as scratch register.\n2. Use IP1 as hidden argument register(IP0 will be scratched by\n trampoline.)\n\nChange-Id: I05ed9d418b01b9e87218a7608536f57e7a286e4c\n"
    },
    {
      "commit": "9791bb427fd812c1268edab6fb3ac7b82ad9fb93",
      "tree": "9467ee834502643a3b8b2261f0242a5f58ad61f9",
      "parents": [
        "ebe8f799c5053f85adffee23cb46851efebbfd92",
        "d9cb8ae2ed78f957a773af61759432d7a7bf78af"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 16 23:28:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 16 16:25:15 2014 +0000"
      },
      "message": "Merge \"Fix art test failures for Mips.\""
    },
    {
      "commit": "d9cb8ae2ed78f957a773af61759432d7a7bf78af",
      "tree": "884d76d6e47193f704a7c7cb27c9a6c1ed2b49f3",
      "parents": [
        "ebaca192314e21d26b97646fa962e468ff07b893"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jul 09 14:28:35 2014 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Tue Jul 15 18:39:57 2014 -0700"
      },
      "message": "Fix art test failures for Mips.\n\nThis patch fixes the following art test failures for Mips:\n003-omnibus-opcodes\n030-bad-finalizer\n041-narrowing\n059-finalizer-throw\n\nChange-Id: I4e0e9ff75f949c92059dd6b8d579450dc15f4467\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "98d1cc8033251c93786e2fa8c59a2e555a9493be",
      "tree": "f0a76b8fff060ee484af09028da65a8339d57057",
      "parents": [
        "aebf3cda094f34cf846d19a7724bdc8005267c95"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 15 17:02:16 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 11 17:17:10 2014 -0700"
      },
      "message": "Improve performance of invokevirtual/invokeinterface with embedded imt/vtable\n\nAdd an embedded version of imt/vtable into class object. Both tables start at\nfixed offset within class object so method/entry point can be loaded directly\nfrom class object for invokeinterface/invokevirtual.\n\nBug: 8142917\nChange-Id: I4240d58cfbe9250107c95c0708c036854c455968\n"
    },
    {
      "commit": "eab674a87b32794ae2c5e7d238292e56804de09d",
      "tree": "642a8d49d4a57954115355aa9884044047471faf",
      "parents": [
        "49ab79da140b9ae79f9efca70c42eeaa84e361ff",
        "320deb2ebe5cce96ca2779875c82853182326685"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 11 13:36:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 10 20:14:56 2014 +0000"
      },
      "message": "Merge \"Fix missing single-step event\""
    },
    {
      "commit": "c380191f3048db2a3796d65db8e5d5a5e7b08c65",
      "tree": "56f7f5fc60f8445ead63cd43faf06b9e1dfda6b2",
      "parents": [
        "cba6b1fc88fd54c35211fd49a7a7501cfcdaa170"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Tue Jul 08 17:21:53 2014 +0700"
      },
      "committer": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Thu Jul 10 13:31:47 2014 -0700"
      },
      "message": "x86_64: Enable fp-reg promotion\n\nPatch introduces 4 register XMM12-15 available for promotion of\nfp virtual registers.\n\nChange-Id: I3f89ad07fc8ae98b70f550eada09be7b693ffb67\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "320deb2ebe5cce96ca2779875c82853182326685",
      "tree": "53d3e1eae997e09d38e864cf55c6bd4e030a5094",
      "parents": [
        "5fa647d5f663033e4ed3d398aece1f8211d7f460"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jun 11 19:45:05 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jul 10 16:14:16 2014 +0200"
      },
      "message": "Fix missing single-step event\n\nDuring debugging, we used to suspend too lately after a step. It occurred when\nwe were stepping out of an interpreted method into a compiled \"caller\" method.\nThe issue is we did not deoptimize when returning from the interpreted method\nbut only did it when returning from the compiled method. Therefore we were not\nexecuting the rest of the compiled method\u0027s code with interpreter which\nprevents from debugging it.\n\nThis CL fixes this issue by using instrumentation entry/exit stubs when calling\ninterpreted method from compiled code. Therefore, we execute instrumentation\nexit stub when returning from interpreter and are able to deoptimize from this\npoint. This allows to execute compiled method\u0027s code with interpreter and to\ndebug it.\n\nWe now also prevent from reporting method entry/exit twice while instrumenting\ninterpreted methods. We report method entry/exit events only from interpreter.\n\nBug: 14422182\nBug: 11705760\nChange-Id: Ia1175d36202239273083c4e9733c7e9290244090\n"
    },
    {
      "commit": "04c31d2c984d382b4186974fa0a416aecbed2625",
      "tree": "7790a9443b7e5639f2674104514d2e690f6d812f",
      "parents": [
        "0da09a026fb6c612e659dc782312987b4515f472"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 21:44:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 21:44:06 2014 -0700"
      },
      "message": "JNI dlsym lookup fixes.\n\nThread* self is passed on all architectures apart from ARM and ARM64.\nOn x86 restore ebx correctly. Pass self in correct register on x86-64.\nEnsure methods are compiled in jni_compiler_test even if the generic JNI\ntrampoline is present.\n\nChange-Id: If5fdb1de97b78ac5a5cf8d0915c5b82311f23eb9\n"
    },
    {
      "commit": "c200a4abeca91e19969f5b35543f17f812ba32b9",
      "tree": "5912a08310e7ddb4b3907c0dc687006669c0cedd",
      "parents": [
        "73904fed884bf216b51acdc64402c427cc34725b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 16 18:39:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 01 11:06:24 2014 -0700"
      },
      "message": "ART: Rework Generic JNI, add ARM version\n\nRefactors and optimizes Generic JNI. This version uses TwoWordReturn\nto avoid writing to / loading from the bottom of the alloca.\n\nChange-Id: I3287007c976f79c9fd32d3b3a43f2d1371bf4cd3\n"
    },
    {
      "commit": "86797a791d692f81def5c1b5f0918992c49ed122",
      "tree": "09cb46c5aa56e39a6399e3f3620dc2047948b872",
      "parents": [
        "29978887552542e3b7e7792070dad06392377648"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Jun 19 16:17:56 2014 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 30 14:00:23 2014 -0700"
      },
      "message": "AArch64: Add memcmp16() for Arm64; ensure xSELF not clobbered\n\nThis patch modifies memcmp() to memcmp16(). Please note that this\nimplementation of memcmp16() is based on the bionic\u0027s memcmp().\n\nHowever, to reflect a recent specification change, the file has been\nmodified to respect the new String.compareTo() behavior.\n\nA test for memcmp16() has been added. The string_compareto test in\nstub_test has been changed to invoke __memcmp16 in assembly stubs.\n\nAdd artIsAssignableFromCode to the list of native downcalls to\nstore and reload x18. Remove CheckSuspendFromCode, as it is unused.\n\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nChange-Id: Ie0b5425ecfb62906d29a5d02e84c7e07ffb34a11\n"
    },
    {
      "commit": "c3ccc1039e0bbc0744f958cb8719cf96bce5b853",
      "tree": "46be84eae8aba7f1698415752262bc16da72aab6",
      "parents": [
        "3153895d020038cd89311ed6ee241ce9b9f18a59"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 25 11:52:14 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 25 11:55:07 2014 -0700"
      },
      "message": "Fix the Mac build on x86-64.\n\nChange-Id: I4ed3783a96d844de0b0a295df26d0a48c02a3726\n"
    },
    {
      "commit": "6c5cb212fa7010ae7caf9dc765533aa967c95342",
      "tree": "c31c46eb7b284b317455fdab48317de92b81dd28",
      "parents": [
        "241fd1192dfc0f7322660343179f9fc0591ed9ff"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 18 16:07:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 18 16:39:29 2014 -0700"
      },
      "message": "Ensure classes are initialized rather than initializing.\n\nA class can be being initialized on a different thread, in that case other\nthreads should block trying to access the class. The initializing state shows\nthe class is being initialized but not that its safe for other threads to\naccess. Change occurances of IsInitializing to IsInitialized primarily in\nslow-path code.\nBug: 15347354\n\nChange-Id: Ib586d0a385be6086a890dfbf8868d76f16767fac\n"
    },
    {
      "commit": "4d0589c90971e19c25894414ae7da579269e1fe2",
      "tree": "0bb8a8bea051cfee85e26719eaf4045da9fb2132",
      "parents": [
        "69d57a89595c7c0fba7b7f7b7c6b431a92137215"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 16:10:56 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 16:21:33 2014 -0700"
      },
      "message": "ART: Move __memcmp16 from Bionic to ART\n\nHandle __memcmp16 / MemCmp16 in ART. Import assembly implementations\nfor arm and mips from Bionic. Use a generic C version for all other\nplatforms.\n\nRemoves the memcmp16 quick entrypoint, as it is never used. Bump\nthe oat version and update thread.cc and checks to reflect the\nstructural change.\n\nChange-Id: I54a5a1da2a0a43ef271c8aeda0bf2276b8b11ac6\n"
    },
    {
      "commit": "5bf6a77944acdeb0a9464803c70d0c65cf15b68b",
      "tree": "ee66c89cf844201630b47eb0c0c438b88e3ab866",
      "parents": [
        "335b91fb98d8004580e9a58335a873a1874fa5a5",
        "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 10 18:21:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 18:21:32 2014 +0000"
      },
      "message": "Merge \"Change MethodHelper to use a Handle.\""
    },
    {
      "commit": "335b91fb98d8004580e9a58335a873a1874fa5a5",
      "tree": "85fb040c7dc04e7aa2084c715720516a16f923d1",
      "parents": [
        "b399e97154ba5a372134b6fb0b953f3fc85a245e",
        "d58342caa97108ba413bad467c285c0377f138f5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 18:03:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 18:03:26 2014 +0000"
      },
      "message": "Merge \"ART: Add instrumentation stubs for ARM64 and X86-64\""
    },
    {
      "commit": "41c507a9dae44b8329a857da3d9810fab2e9ddc6",
      "tree": "78d2a1f81227ca41c4541be5fd87cacabaf06ed2",
      "parents": [
        "f71f8da2e83fefcec42ad77385c1df62f521ddad"
      ],
      "author": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Thu May 15 16:02:46 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 10:01:01 2014 -0700"
      },
      "message": "ART: Generalize code to find PC for artInvokeInterfaceTrampoline\n\nThis allows to determine target method when the interface method has\nno dex index, now also for X86-64 and ARM64.\n\nAdd constexpr functions to callee_save_frame.h to have compile-time\nsizes of callee-save frames. Add a test that ensures they agree\nwith computations by the corresponding ArtMethod methods.\n\nMove some instruction-set functions into the header file to allow\ninlining them. Move arch-specific pointer sizes and alignment sizes\nout of globals.h to instruction_set.h to reduce dependencies.\n\nChange-Id: I2997592c7dd1f4dd2bd497522c64bd235ae615a6\nSigned-off-by: Alexei Zavjalov \u003calexei.zavjalov@intel.com\u003e\n"
    },
    {
      "commit": "ea248f8b048d904a8fe806b6a52372985945274d",
      "tree": "b5bfacb1e2005a6a9ca7dd5b84f3c6ca129f7286",
      "parents": [
        "608f63bae4ed0dc0cd6462d0df3d15c28f37f0b2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 00:09:42 2014 -0700"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jun 10 10:19:08 2014 -0400"
      },
      "message": "Remove TARGET_REX_SUPPORT define.\n\nChange-Id: I1c3644176c101064261d13b50484d2e3ae456316\n"
    },
    {
      "commit": "779f8c951c0fbe36d4b213113a99541132947bb7",
      "tree": "53bad4e79ad0d5314c7c2d6b95a8bf962ca28018",
      "parents": [
        "5d4a3fedcb18dadba5f50661e2a6d86890adfcbc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 09 18:29:38 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 09 18:29:38 2014 -0700"
      },
      "message": "ART: Generic JNI for x86\n\nAdd the generic JNI trampoline for x86. Small cleanup in the C code.\n\nChange-Id: Icaf9de7c0e5e8d1e6cb1135a54552040344cc5a3\n"
    },
    {
      "commit": "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe",
      "tree": "3d3f667c8232a9c1bb6fe9daea0d364f9ae01d8c",
      "parents": [
        "2e1ca953c7fb165da36cc26ea74d3045d7e272c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 21 17:43:44 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 09 12:46:32 2014 -0700"
      },
      "message": "Change MethodHelper to use a Handle.\n\nAdded ConstHandle to help prevent errors where you modify the value\nstored in the handle of the caller. Also fixed compaction bugs\nrelated to not knowing MethodHelper::GetReturnType can resolve types.\nThis bug was present in interpreter RETURN_OBJECT.\n\nBug: 13077697\n\nChange-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3\n"
    },
    {
      "commit": "d58342caa97108ba413bad467c285c0377f138f5",
      "tree": "957cac4b4c1f4c8a42eb2fb8e32af9249fa3d7a2",
      "parents": [
        "cef85adb4933bbd00ca122aa7357e02c716df326"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 05 14:18:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 09 09:22:29 2014 -0700"
      },
      "message": "ART: Add instrumentation stubs for ARM64 and X86-64\n\nAdds instrumentation stubs necessary for debugger support.\n\nRefactors MethodAndCode to a top-level TwoWordReturn. A function\nhaving a return type of TwoWordReturn will return its two-word\ncontent, either 2x32b or 2x64b, in two registers according to\nthe architecture\u0027s ABI.\n\nBug: 15443938\nChange-Id: Id7e1fbd4ad8eb6f29e23d48903c76f77b28d981a\n"
    },
    {
      "commit": "8550197244d470bf7645075e5400750f2cab4e42",
      "tree": "4fe019c86ffea9de8213e5df33bf5b183ccb6ffe",
      "parents": [
        "cef85adb4933bbd00ca122aa7357e02c716df326",
        "58994cdb00b323339bd83828eddc53976048006f"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Sat Jun 07 18:28:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 07 18:28:59 2014 +0000"
      },
      "message": "Merge \"x86_64: Hard Float ABI support in QCG\""
    },
    {
      "commit": "58994cdb00b323339bd83828eddc53976048006f",
      "tree": "a1ec67c5b04cf99439619bf972a58b6d46dd2823",
      "parents": [
        "9529d6273777ee297a8aa7513e8172775f0496df"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Sat May 17 01:02:18 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Sat Jun 07 01:28:05 2014 +0000"
      },
      "message": "x86_64: Hard Float ABI support in QCG\n\nThis patch shows our efforts on resolving the ART limitations:\n - passing \"float\"/\"double\" arguments via FPR\n - passing \"long\" arguments via single GPR, not pair\n - passing more than 3 agruments via GPR.\n\nWork done:\n - Extended SpecialTargetRegister enum with kARG4, kARG5, fARG4..fARG7.\n - Created initial LoadArgRegs/GenDalvikX/FlushIns version in X86Mir2Lir.\n - Unlimited number of long/double/float arguments support\n - Refactored (v2)\n\nChange-Id: I5deadd320b4341d5b2f50ba6fa4a98031abc3902\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb",
      "tree": "444936c3e3718b692ba7f1981b863190f26b4ed7",
      "parents": [
        "25c4f6a25b3de9b9d7ca5162f1629753a0b7f003"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 05 17:42:53 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 13:12:17 2014 -0700"
      },
      "message": "Change FieldHelper to use a handle.\n\nFixed compaction bugs related to FieldHelper::GetType in:\nartSet32InstanceFromCode\nSetFieldValueImpl\nCheckReceiver\nField_set\ninterpreter::DoFieldPut\nMethodVerifier::VerifyISGet\nMethodVerifier::VerifyISPut\nMethodVerifier::VerifyIGetQuick\n\nBug: 13077697\n\nChange-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72\n"
    },
    {
      "commit": "cf4035a4c41ccfcc3e89a0cee25f5218a11b0705",
      "tree": "323d9e98e6129c67e464a3e6857ee02593a2f2c2",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 28 22:43:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 20:50:49 2014 -0700"
      },
      "message": "ART: Use StackReference in Quick Stack Frame\n\nThe method reference at the bottom of a quick frame is a stack\nreference and not a native pointer. This is important for 64b\narchitectures, where the notions do not coincide.\n\nChange key methods to have StackReference\u003cmirror::ArtMethod\u003e*\nparameter instead of mirror::ArtMethod**. Make changes to\ninvoke stubs for 64b archs, change the frame setup for JNI code\n(both generic JNI and compilers), tie up loose ends.\n\nTested on x86 and x86-64 with host tests. On x86-64, tests succeed\nwith jni compiler activated. x86-64 QCG was not tested.\n\nTested on ARM32 with device tests.\n\nFix ARM64 not saving x19 (used for wSUSPEND) on upcalls.\n\nTested on ARM64 in interpreter-only + generic-jni mode.\n\nFix ARM64 JNI Compiler to work with the CL.\n\nTested on ARM64 in interpreter-only + jni compiler.\n\nChange-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13\n"
    },
    {
      "commit": "055c29fd0f752328981f1b7ccadb1862eecedd40",
      "tree": "4eda9505576549f94e5810a4a45d8356395cf400",
      "parents": [
        "ab5b370e44629332e73ffd66bfe8b8a924236c5c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue May 27 13:59:04 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue May 27 13:59:04 2014 -0700"
      },
      "message": "Art compiler: remove unnecessary sqrt call\n\nFor reasons lost in the mists of time, the Dalvik JIT tested\nthe results of an inlined sqrt for NaN on Arm targets, and then\ncalled an out-of-line routine to recompute if true.  The Quick\ncompiler inherited this behavior.  It is not necessary, and the CL\npurges it (along with the out-of-line sqrt entrypoint).\n\nChange-Id: I8c8fa6feacf9b7c3b9e190dfc6f728932fd948c6\n"
    },
    {
      "commit": "0cd81352a7c06e381951cea1b104fd73516f4341",
      "tree": "fcc8ff9cdeb608d0913097aa1fb64d1879f11ffa",
      "parents": [
        "dfd301f19800a4f168283cf2d0b15b2c09071955"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 16:48:55 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 23 12:55:45 2014 -0700"
      },
      "message": "Revert \"Revert \"Fix an outstanding compaction bug in interpreter.\"\"\n\nFixed the generic trampoline to not use ToJObject when unnecessary.\n\nBug: 15167269\n\nThis reverts commit 3bdb873122964da7937eb070cbcf2ef638a8e459.\n\nChange-Id: I0525d0e0f3afb753c770e1572070a0fa22b02271\n"
    },
    {
      "commit": "3bdb873122964da7937eb070cbcf2ef638a8e459",
      "tree": "3d29123f33853e11adb67bdd6ac56f19ee798a1f",
      "parents": [
        "e09ae0920be57760fb390b6944bce420fa0b5582"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 22:06:51 2014 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 22:06:51 2014 +0000"
      },
      "message": "Revert \"Fix an outstanding compaction bug in interpreter.\"\n\nThis reverts commit e09ae0920be57760fb390b6944bce420fa0b5582.\n\nChange-Id: I48036306130d5ccfec683d0dc3e9a642a02ee9c1\n"
    },
    {
      "commit": "e09ae0920be57760fb390b6944bce420fa0b5582",
      "tree": "acc40266093df4289ffb6728c979cafd6b5114d2",
      "parents": [
        "b8033db2a8dc6f7c7e29b1552177542964f56e44"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 15 12:39:19 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 22 10:47:44 2014 -0700"
      },
      "message": "Fix an outstanding compaction bug in interpreter.\n\nFixed a bug in DoFieldPut where the FieldHelper GetType could cause\nthread suspension which would result in a stale obj.\n\nAdded more handles in the class linker to facilitate moving fiels\nand methods in the future.\n\nRemoved un-necessarly passing handle references since these are value\ntypes and don\u0027t need to be passed by reference.\n\nAdded a special NullHandle type which allows null handles without a\nhandle scope.\n\nChange-Id: I1b51723920a2e4f4f8b2907066f578a3e879fd5b\n"
    },
    {
      "commit": "51f763506c7bb34420242e88e1631550f94d6417",
      "tree": "303449238c72ec7e4e5b24053903c430401f2282",
      "parents": [
        "299d2a2b200a94daa49c4727fd679f4461c083c7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 08:28:48 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 11:12:07 2014 -0700"
      },
      "message": "ART: Add INVOKE_TRAMPOLINE and imt_conflict stub to 64b architectures\n\n\"Generalize\" the return type notion of the interface helpers.\n\nIncludes a simple test for imt_conflict. The other interface\ntrampolines are as of yet untested.\n\nChange-Id: I30fc75f5103766d57628ff22bcbac7c7f81037e3\n"
    },
    {
      "commit": "35aef2ce9d9cbfb37e9b2f6776afce3caed37063",
      "tree": "db1ce2f734a7ff0ad8cd4107a1aef85e7fdf8e0a",
      "parents": [
        "27a2b70f612af9afc0fb5392fb10059f6a0a3569"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Mon May 19 16:19:36 2014 +0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 20 10:44:00 2014 -0700"
      },
      "message": "Fix race condition between GCDaemon and DeleteLocalReference\n\nThere is a race condition between the GCDaemon visiting\nthread local roots starting from the thread\u0027s indirect ref table (IRT)\nand another thread calling JNI::DeleteLocalReference, which is clearing\none of the indirect references.\n\nTo cope with the race condition the DeleteLocalReference used to transit\nfrom suspended to running state by creating a ScopedObjectReference(env).\nBut this transition was removed with the following patch:\nhttps://android.googlesource.com/platform/art/+/ef28b14268ed0f9db0c7bbd571aa514354a360bd%5E!/#F0\n\nIf so the GCDaemon must be careful to work with IRT entries.\n\nThis new patch:\n1. calls the visitor only if the reference is not null. This if-null\n   behavior of ART GC is consistent with what Dalvik GC does.\n2. But this might be not enough for some future sophisticated GC algorithms.\n   For example, if GC moves an object, then the IRT entry must be changed\n   with CAS only if it has not been cleared. So, for the safety reasons\n   the patch put backs the ScopedObjectReference soa(env) to\n   DeleteLocalReference.\n\nOnly one of those two changes would be enough.\n\nmathieuc note: I decided to delete the root null check but kept the\nScopedObjectAccess in DeleteLocalRef and added missing annotations as\nwell as more ScopedObjectAccess in jni internals.\n\nBug: 14626564\n\nChange-Id: I90d4b8494f61404579ecdd2918d1482093d99387\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\nSigned-off-by: Yang Chang \u003cyang.chang@intel.com\u003e\n"
    },
    {
      "commit": "4c1c510bea6f20f4d8b09e15547cd2967ad51c88",
      "tree": "f3d15233294e46db0f43e83997e71a8bb990745e",
      "parents": [
        "fdfe733d8fad10fb8370f468fbd5905416f338fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 14 16:51:16 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 20 14:48:56 2014 +0100"
      },
      "message": "Improve stack walk performance.\n\nMove a few functions from art_method.cc to art_method-inl.h\nand introduce new overloads that take already known partial\nresults; do not rely on the compiler to magically merge the\nidentical but non-trivial paths. The partial results are\nDCHECKed to be correct.\n\nChange-Id: I342c3001bbff08a2bbbb9a7b62ae67188ad8cffc\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "f486778d50fc8afa61330df495e94f4f3ec0e238",
      "tree": "f182c61f9c8cbedcdf481bd6894f52412d1b9337",
      "parents": [
        "8ea5baa10b04e9dbd0f0cf14b0358fe8b956bb2e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 05 11:55:02 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 05 13:57:49 2014 -0700"
      },
      "message": "Add some debugging info for bug 14469172.\n\nChange-Id: Iba7d47b6a697ab61e10dfc9e1c2b8fde24af27be\n"
    },
    {
      "commit": "42fcd9838a87abaf7a2ef86853a5287f86dbe391",
      "tree": "d8ffcfcb9c1997c06c6ef93b551abaa900ebcf8e",
      "parents": [
        "608168b380b741e2c7e1a2b0b568c0738986166b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 22 11:03:52 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 02 10:44:52 2014 +0100"
      },
      "message": "Revert \"Revert \"64bit changes to the stack walker for the Quick ABI.\"\"\n\nThis reverts commit 8d5ead52a92675c258113d3dfa71bf8fceba5d9f.\n\nChange-Id: I6b4774a9bd180de33551975e106322ba1192e6ab\n"
    },
    {
      "commit": "990d46f3333dce06a640ced697ee069330a73d7c",
      "tree": "7caf896723665029823c73e2bec87e6db97ec428",
      "parents": [
        "bf25f7e3a007ecfe4b2bcfa0a9abcb784ff54e26",
        "8a630577ed2d9e9571c3434c505e5de223b23c07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 28 09:09:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 28 09:09:07 2014 +0000"
      },
      "message": "Merge \"Move mapping table and vmap table offsets to OatMethodHeader.\""
    },
    {
      "commit": "8a630577ed2d9e9571c3434c505e5de223b23c07",
      "tree": "106367100c639011f0abb72b3b0e227c0764e8e0",
      "parents": [
        "96c6ab93336b972a38bd2448bcccf19188b8389b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 09 18:45:35 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 25 12:24:46 2014 +0100"
      },
      "message": "Move mapping table and vmap table offsets to OatMethodHeader.\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields mapping table and vmap table.\"\n  https://android-review.googlesource.com/91254\n\nBug: 11767815\nChange-Id: I46ce2067e1ecd915da3890606498e31ffc332813\n"
    },
    {
      "commit": "fd3077e4b9ebadd281777310d26e64443858f653",
      "tree": "c63911af29580ab8c0fc8dd29171e626871449aa",
      "parents": [
        "a08ec9b372d4f5e918b3d68499fbd1731180cd98"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 23 10:32:43 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 10:36:05 2014 +0200"
      },
      "message": "Refactor exception handling for deoptimization\n\nThis CL refactors the exception handling (on the quick side) by isolating the\nsearch of catch handler and the preparation of deoptimization.\n\nWe rename the CatchFinder class to QuickExceptionHandler so it\u0027s less specific\nto catch handler search.\n\nFinding catch handler happens in QuickExceptionHandler::FindCatch. Since the\nCatchBlockStackVisitor resolves exception types, it may cause thread suspension\nand breaks the assertion current thread can\u0027t be suspended. Therefore, we place\nthe exception in a SirtRef (while it is detached from the current thread) and\nremove the thread suspension assertion.\n\nDeoptimization now happens in QuickExceptionHandler::DeoptimizeStack. It uses\nthe new DeoptimizeStackVisitor class to create shadow frames.\n\nWe also add the Thread::GetDeoptimizationException method to get the definition\nof the fake exception in only one place.\n\nChange-Id: I01b19fa72af64329b5c3b6c7f0c3339d2d724978\n"
    },
    {
      "commit": "8d5ead52a92675c258113d3dfa71bf8fceba5d9f",
      "tree": "43f4c2518035b346d7b7ecd46c4b79d1ef45d882",
      "parents": [
        "5cb328362a633302ca0fcdbaa0da7d94069df051"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 22 08:30:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 22 08:30:19 2014 +0000"
      },
      "message": "Revert \"64bit changes to the stack walker for the Quick ABI.\"\n\nThis reverts commit 5cb328362a633302ca0fcdbaa0da7d94069df051.\n\nChange-Id: Icc0ec1a9f15c2e4e9103e732d7ba75a4feb853b1\n"
    },
    {
      "commit": "5cb328362a633302ca0fcdbaa0da7d94069df051",
      "tree": "bf31cf8e9aaab4e7d326cef1d2b8936bca658473",
      "parents": [
        "957e2a2bb9ca9a59b4fb41170b1b1a53e99bed67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 17 14:05:19 2014 +0100"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Apr 18 15:23:34 2014 +0700"
      },
      "message": "64bit changes to the stack walker for the Quick ABI.\n\n- Spill registers have different sizes.\n- The ArtMethod at the bottom of the stack is always of kWordSize.\n\nChange-Id: I92f67ff928477970c393c7146980255d08e8e6af\n"
    },
    {
      "commit": "1dd61ba3081a52c3e2efdc78d64f5c134eea7895",
      "tree": "3d708c62ffacf62d1ecd2019ea7a183411ff5787",
      "parents": [
        "427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c"
      ],
      "author": {
        "name": "Vladimir Kostyukov",
        "email": "vladimir.kostyukov@intel.com",
        "time": "Wed Apr 02 18:42:20 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 07 09:39:16 2014 -0700"
      },
      "message": "ART: A workaround for a wrongly-read caller\u0027s frame\n\nThe quick-trampoline treats caller\u0027s frame in a different way\nthen it was formed by quck-invoke stub for hard float ABI targets\nsuch as x86_64 and aarch64. The patch workarounds the issue of\nwrongly-read stack arguments due to no contract between quick-invoke\nstub and quick-trampoline/shadow-frame-builder regarding the reg-\nspill area.\n\nChange-Id: I302f212b4ea5e38632527a5ace03f136b21ef806\nSigned-off-by: Vladimir Kostyukov \u003cvladimir.kostyukov@intel.com\u003e\n"
    },
    {
      "commit": "ad61517890168ff6ed19063cc8032a9c033d135b",
      "tree": "7bc9f0fa28eaedef854527c85cb15ff3d0afea8f",
      "parents": [
        "e8b4bbcef44f7fe76896850b2f5750cd46b1ade0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 04 16:20:13 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 04 16:28:13 2014 -0700"
      },
      "message": "Fix wrong handling of Generic JNI not finding native method.\n\nCode did not properly call JNIMethodEnd, such that locks etc\nwhere not correctly handled.\n\nAdd a test case to jni_compiler_test.\n\nChange-Id: If2d5c628517d65a56dd6bb5c4cabdff77c7664a1\n"
    },
    {
      "commit": "0bf8b9ca3899a2913948d02fa17ce5fbe3e7af54",
      "tree": "f1e4ab44932f5ef11af271b8bb69a24953104fb2",
      "parents": [
        "839f43a40c9fe170266f42a9726c02195c73d043"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 04 09:55:27 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 04 10:04:47 2014 +0100"
      },
      "message": "Please clang by making explicit instantiations non-static.\n\nChange-Id: I4112bf62c69b4f28ca369c4bf3c626be43692afd\n"
    },
    {
      "commit": "8689a0a0f266dde073fe7b328c3ceeaa1b23276a",
      "tree": "2fa121695151511832acc8691b9a4d7d1b71a82d",
      "parents": [
        "541dd231f9a7282f7fd1092349a322dc67bafaf2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 04 09:26:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 04 09:35:11 2014 +0100"
      },
      "message": "Explicitly instantiate artInvokeCommon to please analysis tool.\n\nChange-Id: I5c078a197c5026e9bd886d0ba1e188054b5ffa75\n"
    },
    {
      "commit": "5f3ded46a1da26f6a51cad16d421ca2fdc0f23ad",
      "tree": "e5d44213563093b8435dc1fc025b5114a93ab189",
      "parents": [
        "0537c5ea92a4fb60a04024cc2b7247f08a3d9096"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 03 15:25:30 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 03 16:34:46 2014 -0700"
      },
      "message": "Restore the args in the invoke trampoline slow paths.\n\nPreviously, there were errors caused by not restoring the args for\nthe slow path in artInvokeInterfaceTrampoline and artInvokeCommon. The\nslow path in artInvokeInterfaceTrampoline occurs when you attempt\nto do an interface dispatch of a method in another dex file. The slow\npath in artInvokeCommon occurs when the method in dex cache is not\nalready resolved.\n\nSince FindMethodFromCode may resolve a method, it can occasionally\ncause thread suspension/GC. If a moving GC occurred at this point it\nresulted in this_object being invalid after the trampoline returned\nthe code pointer. This caused a native crash in one of the money runs\nsince there was an unbundeled app which did a List.iterator call.\n\nBug: 12934910\nChange-Id: Ib454faad14bef0d7732a6d7f1ca5803472d502a6\n"
    },
    {
      "commit": "dd7624d2b9e599d57762d12031b10b89defc9807",
      "tree": "c972296737f992a84b1552561f823991d28403f0",
      "parents": [
        "8464a64a50190c06e95015a932eda9511fa6473d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 17:43:00 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 08:24:16 2014 -0700"
      },
      "message": "Allow mixing of thread offsets between 32 and 64bit architectures.\n\nBegin a more full implementation x86-64 REX prefixes.\nDoesn\u0027t implement 64bit thread offset support for the JNI compiler.\n\nChange-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147\n"
    },
    {
      "commit": "b95a5345ae4217b70ca36f0cced92f68dda7caf5",
      "tree": "d9c76db71eb8dd3a668643781eefe6152888fd1d",
      "parents": [
        "66e4c3e96dccdec7423d673ad6bbf7821a776651"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Mar 12 13:32:32 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 19 17:17:55 2014 -0700"
      },
      "message": "AArch64: Add arm64 runtime support.\n\nAdds support for arm64 to ART. Assembler stubs are sufficient for\ndown calls into interpreter. JNI compiler and generics are not finished.\n\nBasic Generic JNI functionality.\n\nChange-Id: I4a07c79d1e037b9f5746673480e32cf456867b82\n"
    },
    {
      "commit": "53b8b09fc80329539585dcf43657bc5f4ecefdff",
      "tree": "cac0f82fbb89bd907104e3fed6c36203e11a3de0",
      "parents": [
        "0dea9872082bc3e576ed6cefed86b0d6c0c45ffd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 23:45:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 11:28:10 2014 -0700"
      },
      "message": "Refactor reflective method invocation.\n\nMove invocation code out of JNI internal into reflection, including ArgArray\ncode. Make reflective invocation use the ArgArray to build arguments rather\nthan allocating a jvalue[] and unboxing arguments into that.\nMove reflection part of jni_internal_test into reflection_test.\nMake greater use of fast JNI.\n\nChange-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057\n"
    },
    {
      "commit": "9a6a99aaac2e4c973e0bc71075f196b8b084100f",
      "tree": "ec82d1b0a85232f98dad95ade6120c63160e1347",
      "parents": [
        "ba3c292374282b658ddfd188a8bba565240036a0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 14 07:52:20 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 14 07:52:20 2014 -0700"
      },
      "message": "Remove small duplicate code in Generic JNI handling, add comments\n\nChange-Id: Ib276fa63b6a00480eaaff6c352d37917c61e966c\n"
    }
  ],
  "next": "90546836312adda54f28b700f25ff29ec8becdf8"
}
