)]}'
{
  "commit": "45140a57675ecb4b0daee71bf145c24dbdf9429c",
  "tree": "2d53ceff6ba8454498c177d3ee38e910c285ac87",
  "parents": [
    "a8eb6e19991d1a7a6a7b04ac447548d30d75eb4a"
  ],
  "author": {
    "name": "Kirill Batuzov",
    "email": "batuzovk@ispras.ru",
    "time": "Thu Feb 05 13:37:22 2015 +0000"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Thu Feb 05 13:37:22 2015 +0000"
  },
  "message": "target-arm: check that LSB \u003c\u003d MSB in BFI instruction\n\nThe documentation states that if LSB \u003e MSB in BFI instruction behaviour\nis unpredictable. Currently QEMU crashes because of assertion failure in\nthis case:\n\ntcg/tcg-op.h:2061: tcg_gen_deposit_i32: Assertion `len \u003c\u003d 32\u0027 failed.\n\nWhile assertion failure may meet the \"unpredictable\" definition this\nbehaviour is undesirable because it allows an unprivileged guest program\nto crash the emulator with the OS and other programs.\n\nThis patch addresses the issue by throwing illegal instruction exception\nif LSB \u003e MSB. Only ARM decoder is affected because Thumb decoder already\nhas this check in place.\n\nTo reproduce issue run the following program\n\nint main(void) {\n    asm volatile (\".long 0x07c00c12\" :: );\n    return 0;\n}\n\ncompiled with\n  gcc -marm -static badop_arm.c -o badop_arm\n\nSigned-off-by: Kirill Batuzov \u003cbatuzovk@ispras.ru\u003e\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bdfcdf169ce9227ae47da98462787d91ae40e8e7",
      "old_mode": 33188,
      "old_path": "target-arm/translate.c",
      "new_id": "2c1c2a70851c852b9671b0f39347d7e9c86452b9",
      "new_mode": 33188,
      "new_path": "target-arm/translate.c"
    }
  ]
}
