)]}'
{
  "commit": "12316ab445eef5317391a94bef733fa6ff175173",
  "tree": "e2e8fc69cd888477eb155c68279e2ad32c5b0d0d",
  "parents": [
    "7cb8df579329b70cd4ede09d6d228636b8e31e89"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Dec 11 21:23:27 2023 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jan 26 18:15:01 2024 +0000"
  },
  "message": "sha: Move Armv7 dispatching to C (reland)\n\nThis is a reland of\nhttps://boringssl-review.googlesource.com/c/boringssl/+/64749, which was\nreverted in\nhttps://boringssl-review.googlesource.com/c/boringssl/+/65328 due to\nissues in Arm mode (i.e. not Thumb mode) builds that target Armv6+\ninstead of Armv7+.\n\nThe issue was that sha256_block_data_order_nohw has slightly different\nsizes depending on __ARM_ARCH. Prior to moving the dispatch, the sizes\nworked out such that they were always encodable in ADR. After moving the\ndispatch, the instructions got shorter, such that the Armv7+ build still\nworked, but the Armv6+ build needed to encode an offset of 0x1060\n(previously 0x1080), which does not fit.\n\nSee https://alisdair.mcdiarmid.org/arm-immediate-value-encoding/ for\ndetails on Arm\u0027s very fussy immediate value encoding. It\u0027s not the only\nform used for ADR (Thumb2 works very differently), but it\u0027s the\napplicable one here.\n\nWhile we could shuffle things around, this is all far too fragile. Just\nuse the LDR; ADD pattern we used for the other function. ADRL would\navoid a load (it splits the offset into two constants without a constant\nbank), but that\u0027s a pseudo-instruction that\u0027s only supported by gas.\nclang-assembler didn\u0027t want to implement it. Android have a macro at\nhttps://android.googlesource.com/platform/ndk/+/refs/heads/master/docs/ClangMigration.md#arm,\nbut it didn\u0027t work for me when I tried it. Also, searching around, it\nsounds like ADRL in gas only works in Arm mode and not Thumb mode?\n\nWe could probably work through all that, but the compiler emits constant\nbanks on 32-bit Arm all the time. (I got this pattern from Clang\u0027s\noutput.) This is probably not worth the trouble.\n\nBug: 673\nChange-Id: I165544764a931b293aa66fb3fc9bb8f01eeb8092\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/65808\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c52b546f7255a56e14aa5fc94f755c4d3123d3c0",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/asm/sha1-armv4-large.pl",
      "new_id": "532a81b0b43aafcd37986404f22593506230154a",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/asm/sha1-armv4-large.pl"
    },
    {
      "type": "modify",
      "old_id": "fa82f3c24eb35ce265439ba296809f76e071b6a3",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/asm/sha256-armv4.pl",
      "new_id": "99b8b2a79f209ece934b788f77d5fbaab28b15cc",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/asm/sha256-armv4.pl"
    },
    {
      "type": "modify",
      "old_id": "f52b5b0e8b4b677292f5c530a66762e3b62cda84",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/asm/sha512-armv4.pl",
      "new_id": "f2d1d22fa570af21526bb8acf287bf502dc53784",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/asm/sha512-armv4.pl"
    },
    {
      "type": "modify",
      "old_id": "7c15b2c6bf067a87c897edadb8ce77ea65ed68aa",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/internal.h",
      "new_id": "0c05d73a1400328c102586c51826cfcf5249622d",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/internal.h"
    },
    {
      "type": "modify",
      "old_id": "7b267e3df71e4bdb94b45f6244faf26623f9fddb",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha1.c",
      "new_id": "7a972660cb0e0d63ac5c4f11c341fdd9509b9f81",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha1.c"
    },
    {
      "type": "modify",
      "old_id": "0b0aca22feb310e02f901da7c550ac51c32ee3d4",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha256.c",
      "new_id": "8cedc5f1989763f95208b4d4743eefe10c3a2022",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha256.c"
    },
    {
      "type": "modify",
      "old_id": "0f4142ca26fd2c4811efac82561defa7c0068cc7",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha512.c",
      "new_id": "d31ab719795b67db265768ff1bc3d2c841dd4d08",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha512.c"
    },
    {
      "type": "modify",
      "old_id": "22856f80fec9da2143d74b20d5f034f2ba76486b",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha_test.cc",
      "new_id": "671c170f984ec745644ee2976a816ec17110dd24",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha_test.cc"
    }
  ]
}
