)]}'
{
  "commit": "e569c7e25d9d75d21323fa10566786de74dff4bf",
  "tree": "3b2db7330b7fb900661dc088b767686372b5b554",
  "parents": [
    "8cbb5f8f204d188211b340412cc0dd4d5b09649a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Jan 26 17:29:08 2019 +0000"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Mon Jan 28 20:40:06 2019 +0000"
  },
  "message": "Add ABI testing for 32-bit x86.\n\nThis is much less interesting (stack-based parameters, Windows and SysV\nmatch, no SEH concerns as far as I can tell) than x86_64, but it was\neasy to do and I\u0027m more familiar with x86 than ARM, so it made a better\nsecond architecture to make sure all the architecture ifdefs worked out.\n\nAlso fix a bug in the x86_64 direction flag code. It was shifting in the\nwrong direction, making give 0 or 1\u003c\u003c20 rather than 0 or 1.\n\n(Happily, x86_64 appears to be unique in having vastly different calling\nconventions between OSs. x86 is the same between SysV and Windows, and\nARM had the good sense to specify a (mostly) common set of rules.)\n\nSince a lot of the assembly functions use the same names and the tests\nwere written generically, merely dropping in a trampoline and\nCallerState implementation gives us a bunch of ABI tests for free.\n\nChange-Id: I15408c18d43e88cfa1c5c0634a8b268a150ed961\nReviewed-on: https://boringssl-review.googlesource.com/c/34624\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e940f7d5fca193c1ff336864191dccd69c64bdb3",
      "old_mode": 33188,
      "old_path": "crypto/CMakeLists.txt",
      "new_id": "a3cdc089448cb46d52a1d1d7f873bc969d8a1d12",
      "new_mode": 33188,
      "new_path": "crypto/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "025a32d3b469465122a2102497efbd5f3947c289",
      "old_mode": 33188,
      "old_path": "crypto/abi_self_test.cc",
      "new_id": "5352b80f4c670041d073662b9d67d440f14da477",
      "new_mode": 33188,
      "new_path": "crypto/abi_self_test.cc"
    },
    {
      "type": "modify",
      "old_id": "54827ca25fd1a150e37bd9e94841d9193d364b73",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/gcm_test.cc",
      "new_id": "c1b2c9f59595019446d7b2fe59ec3a143f70d2bd",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/gcm_test.cc"
    },
    {
      "type": "modify",
      "old_id": "370d455a271f7ea0483fbe6fb790f5bff56448d1",
      "old_mode": 33188,
      "old_path": "crypto/test/abi_test.h",
      "new_id": "4ff42d1a7bcc3f14b10ea06f0068b802224e02b2",
      "new_mode": 33188,
      "new_path": "crypto/test/abi_test.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "569a3dd78f0f69024495ecd2743ee71af3f9e1e4",
      "new_mode": 33261,
      "new_path": "crypto/test/asm/trampoline-x86.pl"
    },
    {
      "type": "modify",
      "old_id": "4af9b2a06e179f9fe564267f4bb99938f99b3369",
      "old_mode": 33261,
      "old_path": "crypto/test/asm/trampoline-x86_64.pl",
      "new_id": "57d70b2c6cfcdc696884518a8a882f896e7302ff",
      "new_mode": 33261,
      "new_path": "crypto/test/asm/trampoline-x86_64.pl"
    }
  ]
}
