)]}'
{
  "commit": "cfc32a1efb464205885e18e503bcb7051c307008",
  "tree": "703383b9e61d647c8b63e10a2f04c085b3aa01d2",
  "parents": [
    "c6a623adaa0ac4ea6b148172aaa466f287b1d8ae"
  ],
  "author": {
    "name": "Andy Polyakov",
    "email": "appro@openssl.org",
    "time": "Wed Dec 27 11:55:34 2017 +0100"
  },
  "committer": {
    "name": "Andy Polyakov",
    "email": "appro@openssl.org",
    "time": "Thu Dec 28 19:37:43 2017 +0100"
  },
  "message": "ec/curve25519.c: \"double\" ecdhx25519 performance on 64-bit platforms.\n\n\"Double\" is in quotes because improvement coefficient varies\nsignificantly depending on platform and compiler. You\u0027re likely\nto measure ~2x improvement on popular desktop and server processors,\nbut not so much on mobile ones, even minor regression on ARM\nCortex series. Latter is because they have rather \"weak\" umulh\ninstruction. On low-end x86_64 problem is that contemporary gcc\nand clang tend to opt for double-precision shift for \u003e\u003e51, which\ncan be devastatingly slow on some processors.\n\nJust in case for reference, trick is to use 2^51 radix [currently\nonly for DH].\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee0634fe86a475d5bc5da54281afa903a1bab31a",
      "old_mode": 33188,
      "old_path": "crypto/ec/curve25519.c",
      "new_id": "d1c725fa39749144626d3d2095055f6f7b698b85",
      "new_mode": 33188,
      "new_path": "crypto/ec/curve25519.c"
    }
  ]
}
