)]}'
{
  "commit": "c524b5f2f665d0bcdc0e98212d10e968c57762df",
  "tree": "340dab92b44d12750172c87ae47be6e753ee11f9",
  "parents": [
    "f6ca448ab70c52e923b7010aecdf7be9c0d4d4fc"
  ],
  "author": {
    "name": "Jeff Law",
    "email": "jlaw@ventanamicro.com",
    "time": "Wed Oct 11 16:30:05 2023 -0600"
  },
  "committer": {
    "name": "Jeff Law",
    "email": "jlaw@ventanamicro.com",
    "time": "Wed Oct 11 16:31:11 2023 -0600"
  },
  "message": "[RFA] Fix for mcore simulator\n\nI was looking for cases where a GCC patch under evaluation would cause test\nresults to change.  Quite surprisingly the mcore-elf port showed test\ndifferences.   After a fair amount of digging my conclusion was the sequences\nbefore/after the patch should have been semantically the same.\n\nOf course if the code is supposed to behave the same, then that points to\nproblems elsewhere (assembler, linker, simulator).  Sure enough the mcore\nsimulator was mis-handling the sign extension instructions.  The simulator\nimplementation of sextb is via paired shift-by-24 operations. Similarly the\nsimulator implements sexth via paired shift-by-16 operations.\n\nThe temporary holding the value was declared as a \"long\" thus this approach\nworked fine for hosts with a 32 bit wide long and failed miserably for hosts\nwith a 64 bit wide long.\n\nThis patch makes the shift count automatically adjust based on the size of the\ntemporary.  It includes a simple test for sextb and sexth.  I have _not_ done a\nfull audit of the mcore simulator for more 32-\u003e64 bit issues.\n\nThis also fixes 443 execution tests in the GCC testsuite\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53cfdad050b4d3b4cbb6e938f160a85a50074bb8",
      "old_mode": 33188,
      "old_path": "sim/mcore/interp.c",
      "new_id": "48d9ff8645a786d221513195840be16e56777821",
      "new_mode": 33188,
      "new_path": "sim/mcore/interp.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5500f7abe67cf7f9e789b83cbe0583cbe0bac477",
      "new_mode": 33188,
      "new_path": "sim/testsuite/mcore/sextb.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97279c49ed43e783bc51bb247e70d33e0c0cd4b4",
      "new_mode": 33188,
      "new_path": "sim/testsuite/mcore/sexth.s"
    }
  ]
}
