)]}'
{
  "commit": "7e53e3ddf6dff200098e112c5370ab16d2d5dbd1",
  "tree": "7e4f87dbd0608d6557a88832c315d397e85c7f10",
  "parents": [
    "768e7b329c0be22035da077fe76221dd0a47103b"
  ],
  "author": {
    "name": "Daniel Henrique Barboza",
    "email": "dbarboza@ventanamicro.com",
    "time": "Thu Mar 14 14:56:58 2024 -0300"
  },
  "committer": {
    "name": "Alistair Francis",
    "email": "alistair.francis@wdc.com",
    "time": "Fri Mar 22 15:16:54 2024 +1000"
  },
  "message": "target/riscv: always clear vstart in whole vec move insns\n\nThese insns have 2 paths: we\u0027ll either have vstart already cleared if\nvstart_eq_zero or we\u0027ll do a brcond to check if vstart \u003e\u003d maxsz to call\nthe \u0027vmvr_v\u0027 helper. The helper will clear vstart if it executes until\nthe end, or if vstart \u003e\u003d vl.\n\nFor starters, the check itself is wrong: we\u0027re checking vstart \u003e\u003d maxsz,\nwhen in fact we should use vstart in bytes, or \u0027startb\u0027 like \u0027vmvr_v\u0027 is\ncalling, to do the comparison. But even after fixing the comparison we\u0027ll\nstill need to clear vstart in the end, which isn\u0027t happening too.\n\nWe want to make the helpers responsible to manage vstart, including\nthese corner cases, precisely to avoid these situations:\n\n- remove the wrong vstart \u003e\u003d maxsz cond from the translation;\n- add a \u0027startb \u003e\u003d maxsz\u0027 cond in \u0027vmvr_v\u0027, and clear vstart if that\n  happens.\n\nThis way we\u0027re now sure that vstart is being cleared in the end of the\nexecution, regardless of the path taken.\n\nFixes: f714361ed7 (\"target/riscv: rvv-1.0: implement vstart CSR\")\nSigned-off-by: Daniel Henrique Barboza \u003cdbarboza@ventanamicro.com\u003e\nReviewed-by: Alistair Francis \u003calistair.francis@wdc.com\u003e\nReviewed-by: LIU Zhiwei \u003czhiwei_liu@linux.alibaba.com\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nMessage-ID: \u003c20240314175704.478276-5-dbarboza@ventanamicro.com\u003e\nSigned-off-by: Alistair Francis \u003calistair.francis@wdc.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c16a9f5b3057f8f5245c4c30207a29ae25260b8",
      "old_mode": 33188,
      "old_path": "target/riscv/insn_trans/trans_rvv.c.inc",
      "new_id": "52c26a78346f1b69dd2ea3916c31352a3aaec40f",
      "new_mode": 33188,
      "new_path": "target/riscv/insn_trans/trans_rvv.c.inc"
    },
    {
      "type": "modify",
      "old_id": "34ac4aa80891efa44f0e65b5d2fb9ab7964504f4",
      "old_mode": 33188,
      "old_path": "target/riscv/vector_helper.c",
      "new_id": "bcc553c0e2c3aaaa0e28264ad9d8a1df5c2964a7",
      "new_mode": 33188,
      "new_path": "target/riscv/vector_helper.c"
    }
  ]
}
