)]}'
{
  "commit": "75f74f0dbe086c239b4b0cc5ed75b903ea3e663f",
  "tree": "c6774128934667d1c82a6e458d9a4233574a95a4",
  "parents": [
    "c381a04313e7c0fb04246b1ff711e0b5726de6c0"
  ],
  "author": {
    "name": "Hollis Blanchard",
    "email": "hollisb@us.ibm.com",
    "time": "Wed Nov 05 09:36:16 2008 -0600"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Wed Dec 31 16:52:21 2008 +0200"
  },
  "message": "KVM: ppc: refactor instruction emulation into generic and core-specific pieces\n\nCores provide 3 emulation hooks, implemented for example in the new\n4xx_emulate.c:\nkvmppc_core_emulate_op\nkvmppc_core_emulate_mtspr\nkvmppc_core_emulate_mfspr\n\nStrictly speaking the last two aren\u0027t necessary, but provide for more\ninformative error reporting (\"unknown SPR\").\n\nLong term I\u0027d like to have instruction decoding autogenerated from tables of\nopcodes, and that way we could aggregate universal, Book E, and core-specific\ninstructions more easily and without redundant switch statements.\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "96d5de90ac5abc50d0daed7bf4cd56ed1800a1d3",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/kvm_ppc.h",
      "new_id": "aecf95d5fede973f171236b57ae8a85ab371f4c8",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/kvm_ppc.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a634c0c4fa7e550214119e9b94a219beb73164da",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/44x_emulate.c"
    },
    {
      "type": "modify",
      "old_id": "5152fe5b2a9baa5788733003892f4aa3a3b1b7fb",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/44x_tlb.c",
      "new_id": "bb6da134cadbb7346d4057bc0a1d4be16e6e4eba",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/44x_tlb.c"
    },
    {
      "type": "modify",
      "old_id": "357d79ae549380de7570ba80c4bbc7fa4f4acca9",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/44x_tlb.h",
      "new_id": "b1029af3de20ca51fb4e0997ed704de9bd7bd55b",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/44x_tlb.h"
    },
    {
      "type": "modify",
      "old_id": "f5e33756f31810c8af0df9ae58a0449014a293e8",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/Makefile",
      "new_id": "f045fad0f4f1c52d4180c254d4462f298728f99b",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/Makefile"
    },
    {
      "type": "modify",
      "old_id": "138014acf3cf84ff0687d731123c105b7230187d",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/booke.c",
      "new_id": "ea630095e2805988dd0a3dc8c8bf33bec1e8b0d9",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/booke.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f694a4b2dafa11720b9ee5f6188e69826e24469f",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/booke.h"
    },
    {
      "type": "modify",
      "old_id": "5fd9cf779be51a0ab94a48dc7c6d259a5dfe8950",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/emulate.c",
      "new_id": "30a49f8c49b2391a75318a95a70eecfc624464a4",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/emulate.c"
    }
  ]
}
