)]}'
{
  "commit": "eb6dce11fca29245eafdde890dbf46ee2e7661bf",
  "tree": "66bf21e0855cabe5f9f851c4419caf2086178bee",
  "parents": [
    "0edfd2985b3ce036bcee5e5d3518eab317018b4d"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Fri Jul 08 17:37:07 2022 +0930"
  },
  "committer": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Sat Jul 09 21:48:02 2022 +0930"
  },
  "message": "gas: tc-tic54x.c hash tables\n\nCleaning up the subsym_hash memory is a real pain.  Keys and values\nentered into the table are quite diverse.  In some cases the key is\nallocated and thus needs to be freed, in others the key is a const\nstring.  Values are similar, and in some cases not even a string.\nTidy this by inserting a new subsym_ent_t that describes key/value\ntype.  This meant the math_hash table was no longer needed.  The patch\nalso tidies how math functions are called, those that are supposed to\nreturn int now no longer return their value in a float.\n\n\t* config/tc-tic54x.c (math_hash): Delete.\n\t(subsym_proc_entry): Move earlier, make proc a union, merge with..\n\t(math_proc_entry): ..this.  Delete type.\n\t(math_procs): Merge into subsym_procs.\n\t(subsym_ent_t): New.  Use this type in subsym_hash..\n\t(stag_add_field_symbols, tic54x_var, tic54x_macro_info): ..here..\n\t(md_begin, subsym_create_or_replace, subsym_lookup): ..and here..\n\t(subsym_substitute): ..and here.  Adjust subsym_proc_entry\n\tfunction calls.  Free replacement when not returned.\n\t(subsym_get_arg): Adjust subsym_lookup.\n\t(free_subsym_ent, subsym_htab_create ): New functions, use when\n\tcreating subsym_hash.\n\t(free_local_label_ent, local_label_htab_create): Similarly.\n\t(tic54x_remove_local_label): Delete.\n\t(tic54x_clear_local_labels): Simplify.\n\t(tic54x_asg): Use notes obstack to dup strings.\n\t(tic54x_eval): Likewise.\n\t(subsym_ismember): Likewise.\n\t(math_cvi, math_int, math_sgn): Return int.\n\t(tic54x_macro_start): Decrement macro_level before calling as_fatal.\n\t(tic54x_md_end): New function.\n\t* config/tc-tic54h.c (tic54x_md_end): Declare.\n\t(md_end): Define.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ebefcf1c83c2f6324beb70526c3cfb39e3a35f12",
      "old_mode": 33188,
      "old_path": "gas/config/tc-tic54x.c",
      "new_id": "9bc4fa57033c01f00bcda9b454b22cca305fb9d6",
      "new_mode": 33188,
      "new_path": "gas/config/tc-tic54x.c"
    },
    {
      "type": "modify",
      "old_id": "d32e0bc095b500d8faec87c5069e6adb97bce1d2",
      "old_mode": 33188,
      "old_path": "gas/config/tc-tic54x.h",
      "new_id": "431895d1e4e1db75ce39461bb75b21e7b028881f",
      "new_mode": 33188,
      "new_path": "gas/config/tc-tic54x.h"
    }
  ]
}
