)]}'
{
  "commit": "26cac19a0d622afc91cd52a002921074bccc6a27",
  "tree": "543fdabf46799fd3045a8cad090682692dc6e824",
  "parents": [
    "334f080ab3c1bfbb13601a4f404b9c97e2294eb9"
  ],
  "author": {
    "name": "Simon Dardis",
    "email": "simon.dardis@mips.com",
    "time": "Fri Mar 16 22:21:00 2018 +0000"
  },
  "committer": {
    "name": "Simon Dardis",
    "email": "simon.dardis@mips.com",
    "time": "Fri Mar 16 22:21:00 2018 +0000"
  },
  "message": "Backporting 325651::\n------------------------------------------------------------------------\nr325651 | sdardis | 2018-02-21 00:05:05 +0000 (Wed, 21 Feb 2018) | 34 lines\n\n[mips] Spectre variant two mitigation for MIPSR2\n\nThis patch provides mitigation for CVE-2017-5715, Spectre variant two,\nwhich affects the P5600 and P6600. It provides the option\n-mindirect-jump\u003dhazard, which instructs the LLVM backend to replace\nindirect branches with their hazard barrier variants.\n\nThis option is accepted when targeting MIPS revision two or later.\n\nThe migitation strategy suggested by MIPS for these processors is to\nuse two hazard barrier instructions. \u0027jalr.hb\u0027 and \u0027jr.hb\u0027 are hazard\nbarrier variants of the \u0027jalr\u0027 and \u0027jr\u0027 instructions respectively.\n\nThese instructions impede the execution of instruction stream until\narchitecturally defined hazards (changes to the instruction stream,\nprivileged registers which may affect execution) are cleared. These\ninstructions in MIPS\u0027 designs are not speculated past.\n\nThese instructions are used with the option -mindirect-jump\u003dhazard\nwhen branching indirectly and for indirect function calls.\n\nThese instructions are defined by the MIPS32R2 ISA, so this mitigation\nmethod is not compatible with processors which implement an earlier\nrevision of the MIPS ISA.\n\nImplementation note: I\u0027ve opted to provide this as an\n-mindirect-jump\u003d{hazard,...} style option in case alternative\nmitigation methods are required for other implementations of the MIPS\nISA in future, e.g. retpoline style solutions.\n\nReviewers: atanasyan\n\nDifferential Revision: https://reviews.llvm.org/D43487\n\n------------------------------------------------------------------------\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_50@327755 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fcef881fa0aef3f67a610524a0031c7cf1abdf37",
      "old_mode": 33188,
      "old_path": "include/clang/Basic/DiagnosticDriverKinds.td",
      "new_id": "1b7dc6a4d053acba9c74217709808ea586deaa09",
      "new_mode": 33188,
      "new_path": "include/clang/Basic/DiagnosticDriverKinds.td"
    },
    {
      "type": "modify",
      "old_id": "96cac8720c6a706245ea6fd91e1210cac2e3298c",
      "old_mode": 33188,
      "old_path": "include/clang/Driver/Options.td",
      "new_id": "3a622bf516fac89015a4e4edcb51c8abd2987d81",
      "new_mode": 33188,
      "new_path": "include/clang/Driver/Options.td"
    },
    {
      "type": "modify",
      "old_id": "62d038e489a165a78eaafbdda8e96b1d0d1c39c9",
      "old_mode": 33188,
      "old_path": "lib/Basic/Targets.cpp",
      "new_id": "08cb333efb71dd4e95eeb5e177f54410de533884",
      "new_mode": 33188,
      "new_path": "lib/Basic/Targets.cpp"
    },
    {
      "type": "modify",
      "old_id": "b45dcd6db678075cd28057592686a3fba7c18e48",
      "old_mode": 33188,
      "old_path": "lib/Driver/ToolChains/Arch/Mips.cpp",
      "new_id": "2d236edc93f78f4766102338da559ace5135847d",
      "new_mode": 33188,
      "new_path": "lib/Driver/ToolChains/Arch/Mips.cpp"
    },
    {
      "type": "modify",
      "old_id": "0b788660948c4e86dac9cc8be55e8d5e36665248",
      "old_mode": 33188,
      "old_path": "lib/Driver/ToolChains/Arch/Mips.h",
      "new_id": "87aecaba41ec9887640c6d9cdaf4d3dfbf3acbb5",
      "new_mode": 33188,
      "new_path": "lib/Driver/ToolChains/Arch/Mips.h"
    },
    {
      "type": "modify",
      "old_id": "b228a2d5781d426dc696dba9b2272a0bf518d2c4",
      "old_mode": 33188,
      "old_path": "test/Driver/mips-features.c",
      "new_id": "dfc7c062512afce9998409f753d067579a0d97b3",
      "new_mode": 33188,
      "new_path": "test/Driver/mips-features.c"
    }
  ]
}
