)]}'
{
  "commit": "49fffa58f7e6da777d10fe77663bc7c8f531fe7f",
  "tree": "9b2efafe99b733a62bffb45b61c965a7a80979cc",
  "parents": [
    "7fb56b98937a2feef5a3e12d8b00506ff4d132be"
  ],
  "author": {
    "name": "Jeff Law",
    "email": "jeffreyalaw@gmail.com",
    "time": "Wed Apr 06 11:06:53 2022 -0400"
  },
  "committer": {
    "name": "Jeff Law",
    "email": "jeffreyalaw@gmail.com",
    "time": "Wed Apr 06 11:06:53 2022 -0400"
  },
  "message": "Fix \"bins\" simulation for v850e3v5\n\nI\u0027ve been carrying this for a few years.   One test in the GCC testsuite is\nfailing due to a bug in the handling of the v850e3v5 instruction \"bins\".\n\nWhen the \"bins\" instruction specifies a 32bit bitfield size, the simulator\nexhibits undefined behavior by trying to shift a 32 bit quantity by 32 bits.\nIn the case of a 32 bit shift, we know what the resultant mask should be.  So\nwe can just set it.\n\nThat seemed better than using 1UL for the constant (on a 32bit host unsigned\nlong might still just be 32 bits) or needlessly forcing everything to\nlong long types.\n\nThankfully the case where this shows up is only bins \u003csrc\u003e, 0, 32, \u003cdest\u003e\nwhich would normally be encoded as a simple move.\n\n\t* testsuite/v850/allinsns.exp: Add v850e3v5.\n\t* testsuite/v850/bins.cgs: New test.\n\t* v850/simops.c (v850_bins): Avoid undefined behavior on left shift.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4cc461c30fd62f774788dd4bde9ad19a54d7d9cb",
      "old_mode": 33188,
      "old_path": "sim/testsuite/v850/allinsns.exp",
      "new_id": "ee22a5d93b72b70e1dcabb78dbd6c75f0b38c7c6",
      "new_mode": 33188,
      "new_path": "sim/testsuite/v850/allinsns.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dedc5ceaafd5417d917bc20b3583469106ff420b",
      "new_mode": 33188,
      "new_path": "sim/testsuite/v850/bins.cgs"
    },
    {
      "type": "modify",
      "old_id": "d2640577fc81c20b1ae9ec4e1395d33aa1c03932",
      "old_mode": 33188,
      "old_path": "sim/v850/simops.c",
      "new_id": "e9a5d489d887b29f019d7ce51c5e527eae37a17e",
      "new_mode": 33188,
      "new_path": "sim/v850/simops.c"
    }
  ]
}
