)]}'
{
  "commit": "b6bca9c6dde177f641137d2991aa677997c54c67",
  "tree": "e75c4536ab7a13bc55430d677710c0961ee12d6c",
  "parents": [
    "03d1b7c544851d9f44df1e9ff21839742e08c819"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Apr 04 00:50:59 2024 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat May 11 08:10:43 2024 +0000"
  },
  "message": "Align perlasm SEH directives with gas/clang-assembler\n\nperlasm broadly uses gas syntax. gas and clang-assembler already have\nSEH directives. From what I can tell, no one ever properly documented\nthis, but this mail describes this. LLVM\u0027s test data also has examples.\nhttps://sourceware.org/legacy-ml/binutils/2009-08/msg00193.html\n\nFirst, we named ours based on the MASM directives and prepended \".seh_\".\ngas says \"endprologue\" instead of \"endprolog\", \"savexmm\" instead of\n\"savexmm128\", and \"stackalloc\" instead of \"allocstack\".  Since perlasm\nmostly looks like gas, I\u0027ve switched to the gas spellings.\n\nSecond, we made .seh_endprologue implicit because it\u0027s always\nimmediately after the last directive. Both MASM and clang-assembler make\nit explicit. Synthesizing an .seh_endprologue for those syntaxes would\nrequire buffering the up the whole function, so just require it be\nexplicit in the source.\n\nThe last difference is that gas says \".seh_proc name_of_function\". I\u0027ve\nnot aligned on that one because MASM actually integrates it into the\nPROC line. You add the FRAME keyword or not depending on whether it\u0027s a\nframe function. To make the MASM output easier, I think we need to\ndiverge from both gas and what we\u0027ve currently done. I\u0027ll resolve that\nin a follow-up change.\n\nAlong the way, fix a couple of instances where the _CET_ENDBR got put on\nthe wrong side of the SEH directive. I don\u0027t think that macro works on\nWindows anyway, so it\u0027s moot. But if it did emit anything, it should be\nincluded in the prologue.\n\nBug: 571\nChange-Id: I39701a952a654afe6bfc8b3b908ca8fe65d6f1a1\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68292\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82e46d48a65c9fc7a6d53f598e18066c7805039a",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl",
      "new_id": "eabaa1b9671dc7c64c2750cf6d45f96234d92cba",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl"
    },
    {
      "type": "modify",
      "old_id": "4a850f479bd149c036387e50d2be65cbc3f1ad0e",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl",
      "new_id": "bdfbe04d7beda2f77466d9d7667e7c1480ecef38",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl"
    },
    {
      "type": "modify",
      "old_id": "33ee1cbabb69f3950616c74b97f92adac167001f",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/asm/ghash-x86_64.pl",
      "new_id": "c026d8f9dfb450102f8a2863efae4c3b2921c012",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/asm/ghash-x86_64.pl"
    },
    {
      "type": "modify",
      "old_id": "9fb1de19c61ae927c0dc9684cba545d26d93cefb",
      "old_mode": 33261,
      "old_path": "crypto/perlasm/x86_64-xlate.pl",
      "new_id": "5b7705d4e4acde941baabc11612b3acf0da333c1",
      "new_mode": 33261,
      "new_path": "crypto/perlasm/x86_64-xlate.pl"
    },
    {
      "type": "modify",
      "old_id": "53b4bcd67b11c88b3024cef540f5bcc7e2158b13",
      "old_mode": 33261,
      "old_path": "crypto/test/asm/trampoline-x86_64.pl",
      "new_id": "d8d2be2821027bddbe3f7be5e3404bd31333b9c1",
      "new_mode": 33261,
      "new_path": "crypto/test/asm/trampoline-x86_64.pl"
    },
    {
      "type": "modify",
      "old_id": "d7a2665e4a5040d620cbd070164d6df22be3138e",
      "old_mode": 33188,
      "old_path": "gen/bcm/aesni-gcm-x86_64-win.asm",
      "new_id": "7564a1cf00e89780f98e73bcc2b3a710549137c9",
      "new_mode": 33188,
      "new_path": "gen/bcm/aesni-gcm-x86_64-win.asm"
    },
    {
      "type": "modify",
      "old_id": "84c5d40bd386660d66a839f184e87dd95f6f3f96",
      "old_mode": 33188,
      "old_path": "gen/bcm/ghash-ssse3-x86_64-win.asm",
      "new_id": "a8be60ed84b9f20436349505b73d440fb1bc033d",
      "new_mode": 33188,
      "new_path": "gen/bcm/ghash-ssse3-x86_64-win.asm"
    },
    {
      "type": "modify",
      "old_id": "909d65966198e40c7cc47198eb81598394accf56",
      "old_mode": 33188,
      "old_path": "gen/bcm/ghash-x86_64-apple.S",
      "new_id": "496129882764ecb47e743fc81733cfc76e3811c1",
      "new_mode": 33188,
      "new_path": "gen/bcm/ghash-x86_64-apple.S"
    },
    {
      "type": "modify",
      "old_id": "22429a67b4478a5f0da21c4336d0a8ddaafd72b1",
      "old_mode": 33188,
      "old_path": "gen/bcm/ghash-x86_64-linux.S",
      "new_id": "e00bb9fda582e1b8f03f3b454ff4d2b135366c64",
      "new_mode": 33188,
      "new_path": "gen/bcm/ghash-x86_64-linux.S"
    },
    {
      "type": "modify",
      "old_id": "41b189a2bedacd9c6ec2bb599d0ef0173d73ad18",
      "old_mode": 33188,
      "old_path": "gen/bcm/ghash-x86_64-win.asm",
      "new_id": "bd4d691bd0fd4fcf307d6058bb672d5f70f1c19b",
      "new_mode": 33188,
      "new_path": "gen/bcm/ghash-x86_64-win.asm"
    },
    {
      "type": "modify",
      "old_id": "7c76d2d744c3425e0df844a010e5c16a788d6962",
      "old_mode": 33188,
      "old_path": "gen/test_support/trampoline-x86_64-apple.S",
      "new_id": "f618dacd1fac7d42f8ba665dd65fc6307b9a51c9",
      "new_mode": 33188,
      "new_path": "gen/test_support/trampoline-x86_64-apple.S"
    },
    {
      "type": "modify",
      "old_id": "93af8b9480ed7d9a36d27957ad4f725c5095f827",
      "old_mode": 33188,
      "old_path": "gen/test_support/trampoline-x86_64-linux.S",
      "new_id": "8557e9e4f72409c3e330503887ba31cce59f1377",
      "new_mode": 33188,
      "new_path": "gen/test_support/trampoline-x86_64-linux.S"
    },
    {
      "type": "modify",
      "old_id": "ae04cbed4030618d8e6f8dc2827a926d1a61a10a",
      "old_mode": 33188,
      "old_path": "gen/test_support/trampoline-x86_64-win.asm",
      "new_id": "dca395782c6c76ac9e54278472f06d8bbcf5bddb",
      "new_mode": 33188,
      "new_path": "gen/test_support/trampoline-x86_64-win.asm"
    }
  ]
}
